Monday, November 05, 2007

Gutsy Gibbon, Suspend to Ram: Support More Open Source

Great page on how to compile your kernel so that you too can use Gutsy and get Sleeping and Hibernation to work.

So I've been fighting Gutsy Gibbon for 4 eight-hour days. What is my fight about? Well it turns out that my laptop uses ATI drivers for it's GL graphic goodness. Gutsy comes shipped with Compiz AIGLX support, in hindsight being something more of a requirement. In any case, when one enables the proprietary (8.37.something) driver it all works brilliantly. Screensavers are fast, you can draw your gnome-terminals with flare and true compositing. It's just so dang pretty. Oh and cairo-clock pops up and wiggles.

It all goes swimmingly until you decide to sleep for the night on your laptop. Then the real fun begins. What happens, you might ask? Well the computer drops to a black screen with a blinking cursor followed by perpetual darkness. Never reaching that happy "I've suspended my operation, boss"-pulsing light that says you can pack up and go home without concern of heat damage or what have you, you are stuck watching and waiting.

Why is this? Well day 1 I thought it was just slow, so I decided to hit the power key until it turned off. Day 2, mostly the same thing. Day 3 I found out about SLUB.

What's SLUB? Well It's a neat way of doing things in the linux kernel that Gutsy, but not feisty, has. Technical, I know, but it turns out that the fglrx driver was designed to work on the old (read: feisty) version which was called SLAB. The end result is that when it is time to sleep things don't talk to each other correctly. This, in turn, means one of two things: fancy graphics or use of the open source driver.

The current open source driver "ati" on this laptop quickly showed me the reason why people make sure that important hardware is fully supported before buying into any one machine. When "ati" is coupled with the AIGLX-compiz set up, it doesn't draw fast, scrolling in firefox causes the load on the machine to go to 100% (seriously, scroll down a page, watch your CPU report you are using 100% of it), move something left or right and it's like you are back in 1999 on a video card with 4M of memory.

So, faced with this evidence I decided that, well, there had to be some forum goers that would have the exact (read: simple to give to a new user, or implement as an old one) solution. Well, the above link is as good as it gets. You either recompile your kernel to use SLAB (and lose the AIGLX fun), use the Open source driver or get graphic goodness and never be able to have sessions saved between power events.

Now why am I mentioning this? Is this just a "Ubuntu sucks" rant? No. What the real problem is that the driver from ATI is a superb piece of work, useful in all ways, but it's closed source. The bug post on launchpad for Ubuntu rates this getting fixed as a wishlist because it relies entirely on ATI going in and getting a new SLUB-enabled version posted for them to integrate into the operating system. If it had been entirely open source, someone could have taken it and recompiled it to be SLUB using (or altered the source if needed) and the release would have been flawless.

Me, I'm stuck thinking "Keep gutsy for the updated packages or blow away 3 years of ubuntu install for Debian, or install Feisty".

Powered by ScribeFire.

No comments: