Adventures with ASUS netbook (1225C), GMA500 drivers, and Unity on 12.10/12.04.1

Recently I’ve bought a netbookASUS Eee 1225C (summary: 11-inch 1366×768 screen, 1.6GHz dual-core processor, 2GB RAM, GMA500 integrated graphics, 9h battery, 250GB HDD). In several countries it ships with Ubuntu pre-installed, but this is not the case in Poland. I could either to buy it with MS Windows 7 or without any OS, and of  course the choice was simple (not because of the no-OS version being 350 PLN = about 110$ cheaper).

But getting it to run Ubuntu was a bit of adventure.

Many sources report that in 12.10 GMA500 support works out of the box, and in 12.04 requires some manual tuning. So I started by downloading 12.10 daily biuld (a bit before beta2) and tried to install it from USB stick. No luck. The live-usb system would hang about 10 seconds after boot, and I was unable to find any reason for that. And when it managed to boot up, I was welcomed with a black screen. Not a very optimistic beginning. But I am used to troubles with graphic drivers (my other machine has an ATI Radeon HD), so I tried text-mode installation by using minimal netboot ISO (still 12.10). I was disappointed that default bootable USB  creator was unable to install the netboot ISO, so I used Unetbootin instead.

This time installation progressed successfully. I always get a bit sentimental when I see debian-installer :) Having finished installation, I had to install ubuntu-desktop package to get fully usable installation. Reboot and I saw the unity-greeter in 1024×768 resolution. Not my native, it should be a bit better. Then, I logged into Unity…

As you know, in 12.10 Unity2D is no more present. There are good reasons for it, and I do not want to complain about that. Instead Unity2D, the classic Unity uses CPU to render animations  & graphics instead of GPU if hardware acceleration is not available (which clearly is the case with GMA500). Therefore I saw full Unity on my netbook, all animations were just as we know them, but… they lagged unbearably, and CPU usage was constantly 100%. That makes a lot of sense, as CPU has to do all the graphics stuff, so I expect the result I saw was not surprising. But I couldn’t stand waiting 20 secs for Dash to open, and battery life being decreased by 80%. I looked if there are any ways to disable fancy effects in Unity, but I didn’t find anything significant. Don’t get me wrong, I am a great fan of Unity, and will certainly continue using it on my other, more powerful machine, but as for netbook experience it needs to get a bit more efficient. Therefore, I decided to use 12.04.1 instead, so that I could use Unity2D.

The installation went much smoother. Well, 12.04 is stable, so I did not expect it to hang during installation. Live-USB of standard Ubuntu desktop ISO and in few moments the process was complete. Holding my breath I rebooted… success! Unity2D worked perfectly, very responsive and resource-saving. With a working desktop I felt a bit more comfortable – but one problem persisted – I was unable to use the native resolution (1366×768) and was forced to work  on a smaller 1024×768. “Either kernel or xorg does not get on well with my GMA500” – I thought.

The time has come to search the web. There is quite a lot of HowTos on the web that concern common problems with GMA500, but none of them explained my problems with resolution. I tried lots of boot arguments, that includes any combination of nomodeset, framebuffer, console=tty1, vb.handsoff and several more. I played with GRUB’s gfxmode and gfxpayload. No luck.  I tried manually messing up Xorg.conf, but the intel driver always failed and VESA was used instead. I tried manually defining new modes with xrandr – that didn’t work at all. For some reason psb_gfx kernel module that works in 12.04 as the driver for GMA500 was not in use and I could not get it to work, though I tried really hard. I spent several days on that part, giving up from time to time, just to return to the problem on the next opportunity :)

Ubuntu Wiki claims that since Linux 3.3.4 the driver (renamed to gma500_gfx)works out of the box. So I tried downloading 3.4 kernel from mainline PPA. To my surprise it performed even worse, and eventually I have noticed it ships without psb_gfx nor gma500_gfx modules. Not much use for me. And I spent more time googling, examining Xorg logs, dmesg, hardware info, inspecting framebuffer capabilities and more.

But this adventure has a happy ending. Although it took me a week to figure out everything, I am now using awesome native 1366×768 resolution. Want to know the trick? I installed kernel from quantal backported to precise that is available in PPA https://launchpad.net/~ubuntu-x-swat/+archive/q-lts-backport. Despite this PPA is not to be used by end users, I found it to be the only way to get the most of my integrated graphics :) That plus the fbdev Xorg driver and I could finally admire the awesome 1366×768 in 11 inches. I will most probably apt-pin some of these packages to ensure they do not get updated to anything that for some reason does not work anymore.

One last thing was to add acpi_osi=Linux acpi_backlight=vendor to boot parameters, otherwise display brightness was not adjustable.

That all makes a lot of sense. I use 12.04 to have Unity2D, with quantal’s kernel that has gma500_gfx. I must say that despite this hassle the experience is oveally awesome! I love how Unity behaves on a netbook, and I love the 10h battery time under mild load.

Disclaimer – the above is not a guide nor explanation of GMA500 possible troubles. It’s just my story, if you encounter similar problems, better consult other sources and use this article just as an inspiration ;)

14 Responses to “Adventures with ASUS netbook (1225C), GMA500 drivers, and Unity on 12.10/12.04.1”

  1. MK Says:

    Interesting adventure, thanks for writing it down. I’ve edited the wiki page to remove the statement about Linux 3.3.4.

  2. MK Says:

    Wait a sec, Asus 1225C is not a GMA500 netbook. It has newer PwerVR core integrated with Intel’s Cedar Trail. A driver for it should now be in Precise proposed, check out the bug report: https://bugs.launchpad.net/ubuntu/+bug/1025720.

    • Rafał Cieślak Says:

      That’s interesting! Seller’s details claimed that this very model I bought has a configuration that includes a GMA500 (which did not surprise me, as many weird models can be found in Poland), and so I assumed all the time. How can I check it to be sure? Neither lshw nor lspci gave me any hints.

    • Rafał Cieślak Says:

      And, by the way, the drivers you mentioned (I remember having tried them) are 32bit only, and as far as I know they will never be released for 64bit.

  3. MK Says:

    Here’s the output I get from ‘lspci -nn’ on Dell Mini 1010 with Precise 12.04.1 (no PPAs):

    00:02.0 VGA compatible controller [0300]: Intel Corporation System Controller Hub (SCH Poulsbo) Graphics Controller [8086:8108] (rev 07)

    Not sure how that will come out, so here’s a pasebin link: http://pastebin.ubuntu.com/1250436/

    Dell Mini 1010 is a netbook from 2009, definitely a GMA500 machine.
    Post your VGA line, then we can search for product and vendor IDs.

  4. mathewchacko Says:

    I was in similar a situation, with 12.04 LTS it was adveturous to make it work. But the 12.04.1 fixed the issue for me with driver installation option in “Additional Drivers” tool.

    • Rafał Cieślak Says:

      Yay, the cedarview proprietary drivers are are indeed available in Ubuntu repositories, but they are available only for 32 bit systems, and probably there never will be a 64bit version.

    • MK Says:

      @mathew, how does the driver work for you? I hear it’s 2d only, is that right? Any advantages over gma500_gfx?

      @Rafal, why do you want a 64bit OS? It’s not like it has 4GB of RAM or more. Are you planning to compile a lot of kernels on that netbook?

  5. Phantom Says:

    Hi,
    Excelent article, and dual monitor on ubuntu 12.10 are working well on GMA 500??


Leave a comment