Recently I’ve bought a netbook – ASUS 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 ;)
September 29, 2012 at 9:39 pm
Interesting adventure, thanks for writing it down. I’ve edited the wiki page to remove the statement about Linux 3.3.4.
September 29, 2012 at 9:51 pm
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.
September 29, 2012 at 10:02 pm
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.
September 29, 2012 at 10:19 pm
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.
September 29, 2012 at 11:18 pm
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.
September 29, 2012 at 11:24 pm
Alright! http://pastebin.ubuntu.com/1250463/ and the VGA line is “VGA compatible controller [0300]: Intel Corporation Atom Processor D2xxx/N2xxx Integrated Graphics Controller [8086:0be1] (rev 09)”. To me it says only about the processor :)
September 30, 2012 at 12:31 am
Ah, what you have there is likely a PowerVR SGX545 (aka GMA36xx).
http://www.anandtech.com/show/5273/intels-atom-n2600-n2800-d2700-the-heart-of-the-2012-netbook
http://www.imgtec.com/news/Release/index.asp?NewsID=516
GMA500 (aka PowerVR SGX535), bundled with Intel’s Z5xx CPU series was part of the Menlow platform.
http://www.anandtech.com/show/2449
It was probably not detected correctly by the 3.2 and 3.4 kernels, and hence didn’t work. I think a newer kernel should detect it and load gma500_gfx (or whatever it’s called) out of the box.
September 30, 2012 at 12:41 am
A newer kernel indeed loads gma500_fgx, as the one I’m using currently is 3.5. I would be really interested in how you have converted my VGA line from lspci into GMA36xx? :-) I’m gonna look into how all that changes now that I know this is actually a GMA36xx. Luckily not much can be better now :) Huge thanks!
September 30, 2012 at 12:54 am
You get lots of hits with GMA3600 when googling for PowerVR SGX 545, and PowerVR SGX 545 is what’s bundled with D2xxx/N2xxx Atoms.
October 1, 2012 at 7:16 am
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.
October 1, 2012 at 6:48 pm
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.
October 2, 2012 at 2:18 pm
@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?
October 3, 2012 at 6:54 pm
@MK, driver works fine for me. Yes the support is only for 2d. its smooth and fine.
October 25, 2012 at 1:12 pm
Hi,
Excelent article, and dual monitor on ubuntu 12.10 are working well on GMA 500??