Open Source

Linux Achilles' heel: Suspend/Hibernate


I've been working with Linux for ten years now. I have seen issues come and I have seen them go. But there's one issue that has always surprised me because it just seems to never go away: Suspend/Hibernate. I am always so surprised about this because it just seems like a fundamental issue on laptops - and let's face it, laptops are standard issue for many people - you close the lid, the laptop suspends.

But without suspend or hibernate working, if you are untethered from power cables (you know, like a laptop should be capable of), your Linux laptop will not suspend when you close that lid and your battery will just continue to drain. And on those rare pieces of hardware that suspend/hibernate "just works" you might find, when you bring that laptop out of hibernate, that your wireless doesn't work without a hard reboot.

Fundamental systems here.

Now before I continue I will say that I understand the difficulties: variations between pieces of hardware, closed drivers, etc. But the Linux crowed is a crafty lot that have managed to get around a lot of issues. Take for instance the use of ndiswrapper for many wireless cards. Nicely done trick that shows there's little that can stop a Linux developer with a need. But it seems to me that hibernate and suspend IS a need that should be given a high priority.

And it seems it is starting to gain some traction. There's a new site called the Ubuntu Brainstorm that allows users to add ideas for Ubuntu and vote up or down ideas that are already posted (as well as comment on ideas). If you take a look at the site you will see that the suspend/hibernate issue is the very top of the list (right above "Provide a simple graphical interface to manage _any_ type of network connection" - interesting that issue being right behind suspend/hibernate seeing as how they can easily be seen as going hand in hand.)

I have experienced Linux on a few laptops in my days. I have seen suspend/hibernate work intermittently on Apple iBooks and I have seen it not work at all on many others. I have had a laptop come to me directly from the maker, installed with Linux, and see suspend/hibernate not work at all. To me this goes beyond a "feature request" and quickly reaches a "critical bug". Think about it: if Linux is to ever be seriously adopted into the corporate world it is going to have to take laptops very seriously. Without laptops big business would get nothing done. And without suspend/hibernate working properly Linux will be lucky if it sees only a tinkerers interest in the corporate world.

Now I am a zealot for Linux. I profess its wonder every where I go. But there are some issues that some times have me choking back my praise. When a possible new users says "What do you mean it won't let my lap top go to sleep?" I don't have it in me to say "It's a struggle between the hardware vendors and blah blah blah." Do you think the average user cares? No. All they care about is that their laptop battery isn't drained when they're not using it and it's not plugged in (that and their wireless comes back to life when they open the lid of their laptop.)

I think one of the reasons this bothers me so much is that not only is it fundamental issue it's a critical issue that is only now gaining traction (at least in the Ubuntu scene.) It also bothers me because I have attempted to install apmd (advanced power management daemon) only to find that power management wasn't in the kernel. A kernel on a laptop that didn't have power management rolled in. What gives? Fundamental people!

Have you ever experienced this issue? And better yet, have you ever managed to get suspend/hibernate to work on a laptop? If so, share your knowledge with us. Maybe from this discussion the Linux kernel developers might come up with a bright idea and get it rolled into the latest, greatest kernel.

About

Jack Wallen is an award-winning writer for TechRepublic and Linux.com. He’s an avid promoter of open source and the voice of The Android Expert. For more news about Jack Wallen, visit his website getjackd.net.

Editor's Picks