Rafael J. Wysocki (a suspend maintainer) has written an article speaking about the current status of suspend and hibernation support in Linux, its design, know problems, and future development. “Below is a document describing the current state of development of the suspend and hibernation infrastructure: how it works, what known problems there are in it and what the future development plans are (at least as far as I am concerned).”
Even if a big vendor like Dell picks up Ubuntu, suspend and hibernate are glaring flaws in Linux that will prevent widespread acceptance of non-Microsoft systems.
“Even if a big vendor like Dell picks up Ubuntu, suspend and hibernate are glaring flaws in Linux that will prevent widespread acceptance of non-Microsoft systems.”
The whole point of a big vendor picking up linux, is that it would be there responsibility to make sure they put hardware into a linux machine, and have everything work.
So if a particular motherboard did not work with ACPI linux, then either that motherboard will not be included (using a differnt one), or the maker of the motherboard, would be force to create the correct drivers for it to be sold with a linux desktop.
so having dell pick up ubuntu would be a huge help for making acpi work in linux.
I personally am using an hp pavillion zv5000. It took some minor config file changes to get it to work, but I haven’t had a single problem with it. It’s actually been on/hibernating multiple times a day for past 2 months without a single problem. the wifi even disables itself on sleep, and wakes back up and reconnects on wake.
I personally am using an hp pavillion zv5000. It took some minor config file changes to get it to work, but I haven’t had a single problem with it. It’s actually been on/hibernating multiple times a day for past 2 months without a single problem. the wifi even disables itself on sleep, and wakes back up and reconnects on wake.
Same here, using a Compaq Presario v2310. After a little fiddling around it works flawlessly.
Presario v2552us and Ubuntu Fiesty here. Just works. No fiddling. Wifi disconnects and reconnects without hassle.
Hmm, on my several laptops, currently an Averatec 2460 and my girlfriends iBook G4 suspend/hibernation never works reliable. Sometimes it does, sometimes it won’t wake up – which makes it unusable. I really hope for some major improvement here.
Sorry to say this, but the only improvement you can hope for is if you get a better laptop.
Averatec are really bad. The company even changed its name just to “fly” under people’s “radar”.
I don’t see them sold around here any more so looks like the retailers smartened up and stopped carrying them.
Actually, I’m very happy with my Averatec. It’s small, leightweight, silent, the display is good. The only negative thing is the lid, it makes noise when you open/close it. Besides that, I don’t regret buying one. My next one will be a Dell M1330 or a new Sony Vaio (the small ones) though.
It still is useless for me. I have gone through several laptops with no sucessful standby. Only one laptop had a sucessful hibernate, which I found useless, since it took almost as long as a full bootup. My current desktop, a Core 2 Duo from Dell fails also. It goes to sleep, but video borks on wakeup. Under Windows it sleeps in 1-2 seconds and wakes up in about 5 seconds, no problems.
Personally, I believe as long as the process is dependent on all the drivers cooperating perfectly, it will always be a very hit-and-miss process. There must be a standard way for drivers to cooperate with this process – and all the drivers must be required to do so or not be allowed at all (maybe modprobe fails!).
This is a very serious issue. Laptops without sleep are a joke. Even desktops should sleep to save on power. Linux needs to bump the priority on this and spend a little less time on supporting 1000 processors. And no more time should be spend arguing between kernel devs and user space folks about this. Git ‘r done!!
Hence why I’ve never bothered with Linux on a laptop.
Pun intended?
I wish it was intentional, but it sure fits. Use GIT, CVS, SVN, PVCS … just get the code in there!
I have an HP dv9000, and it works great about 95% of the time, even with compositing turned on.
But I may just have a blessed laptop or something, because I don’t get any of those vista bugs everyone complains about either.
What about the other 5%?
Not that little if you ask me.
I guess I’m also blessed on Linux (well Ubuntu specifically), as power management works perfectly on mine (well at least suspend, I never hibernate so I have no clue if it works, just suspend on lid close, and I’m closer to 100%). On Windows XP, after suspend, the screen backlight will not go on without weird FN key combinations that are somewhat random if it will go back on or not. It actually had the same problem with Linux until g-p-m implemented a workaround for the “hardware bug” about a year back. Now its flawless in Linux, but Windows XP still doesn’t work. My laptop won’t run Vista at all…
I thought the problems were getting more rare now as long as there is a nvidia card inside, I know I had big problems with this laptop when I was on Gentoo and the early Ubuntu’s, but it was fixed before 6.06 (I think for 5.10 if I remember right) and has worked great since.
Not sure how my desktop does with suspend on Linux, never tried really, never had an interest. I think mythtv will wake from suspend to record, so maybe if it is reliable, I can use it to save power (and reduce heat output which would actually be the nice part)
Edited 2007-07-28 04:52
The problem is, 95% or even “close to 100%” is not acceptable – it must work 100% IN ALL CASES, because those 5% where it does not work will surely happen when you have an important unsaved document open and close the lid – and then it won’t wake up.
I’ve got a dv9000 as well and I’d agree that it works 95% for suspend in linux, I might even take it further and say 97 or 98%.
But 100% doesn’t happen, regardless of the OS. You might think it does, but it doesn’t, so believing it does will at some point set you up for failure. My work laptop, an HP with XP, fails to suspend probably 5% of the time, which would put it in the same percentile as my personal HP laptop. I’ve pretty much ruled the suspend failures in my work laptop to being related to Lotus Notes and a process that refuses to let go of whatever it’s supposed to let go of, but that is irrelevant. It’s a pisser to close my laptop at work, throw it in my bag and then drag it out at home and find it either frozen or blue screened, but it happens. Rarely, but it happens.
I’ve also experienced cases with my old Dell Inspiron failing to suspend in XP (although admittedly very rare, maybe a half dozen times over four years) and my home desktop system (also an HP, much more recent, and borks more frequently, I try to suspend the system and it locks up and needs a hard-reset, maybe 15-20% of the time).
In as much as linux can complain they’re trying to accomodate an MS-tainted ACPI standard, Microsoft has to contend with third-party drivers and applications that don’t necessarily conform to spec. Neither situation is their fault, but they both have to live with the repercussions.
Plus, Lotus Notes sucks, so don’t ever use or accept a job where they rely on it.
I have many, many more problems hibernating and sleeping XP than I do linux on the same hardware. Many times XP won’t sleep at all, or resumes in my lappy bag – often it totally crashes on resume from suspend. I don’t have any of these issues with linux – the worst I can remember from recent history is that certain devices don’t come back online after a resume.
I’m not saying that the linux hib/sleep doesn’t need improvement, but I am saying that you are mistaken if you think that MS has it nailed. I will also say that I cannot remember ever having a hib/sleep related issue with an apple product, but that’s not really a big surprise, is it?
who suspends/hibernates any laptop/OS combination without SAVING EVERYTHING first???
I’m not saying that they shouldn’t aim to 100%, but you need to work on those Ctrl-S reflexes and make them happen every 60-120 seconds at most 🙂
Edited 2007-07-30 01:06
Speaking as one of XO laptop tester (for those who don’t know, it is OLPC), the machine with the latest development build is able to fully suspend/resume using only HAL and the kernel from Fedora 7 without resorting to suspend2. So far only Fedora 7 (including its XO variant), RHEL5 and Mandriva 2007 support that feature. IMHO, the hal quirk approach is much better than using suspend2. For details:
http://people.freedesktop.org/~hughsient/quirk/
Is it activated in Fedora 7, because I have Fedora 7 installed but it fails to suspend here (maybe my fault, who knows)?
Edited 2007-07-27 21:55
First step is to consult
http://people.freedesktop.org/~hughsient/quirk/quirk-suspend-index….
what went wrong with the suspend of your system. Next time, provide the specification of the system you use to ease the process. If the problem still occurs, submit a bug report to freedesktop.org about hal.
FWIW, you can use the hal quirks db on Debian too, by installing the pm-utils package. That has nothing to do with suspend2 or not, though.
suspend2 is for suspend to disk (hibernate). The quirks stored in the hal db (fdi files) are mostly to work around broken vga graphics adapters, which need a kick to get properly reinitialized after suspend to ram.
And no more time should be spend arguing between kernel devs and user space folks about this
How “arguing between devs and user space folks about this” is going to stop or improve suspend is a mistery to me. What the h*ll does userspace cares about this? Bringing random, unproved FUD from the anti-Linux (which now is trendy in OSNews, apparently) threads here, I guess?
This is pretty much a kernel thing. And it’s NOT easy, many efforts have been put in this but the only-microsoft-compatible, unstandard hardware is not so easy to make work as it looks. Proof: Excluding Windows, only Linux has managed to produce a half-working suspend version for standard PC hardware. There’s Mac OS X too, but that one is designed for a very small subset of hardware.
Edited 2007-07-27 21:18
http://lwn.net/Articles/153609/
Also, this is a first for me – I am apparently part of the anti-Linux thread on OSNews. My friends would find that pretty funny. I love Linux (a song I thing Joan Jett should sing by the way), and healthy criticism is a good thing.
[EDIT: added note about “anti-Linux” comment.
Edited 2007-07-27 21:30
The guys that implement uswsusp are exactly the same people who write the kernel suspend implementation. There’re no “userspace folks”. They are all of them “devs”, and they don’t need to argue with “userspace people”. If Linux is going to use uswsusp or tuxonice is the least of the problems, if you read the doc.
healthy criticism is a good thing.
No disagreement here. Healthy criticism is great.
Actually, the last I read from Linus he felt both were inadequate and that something else needed to be done – someing entirely new, even. Maybe I am remembering wrong.
Eh, guys, this *is* what Con Kolivas suggested a few stories back (http://osnews.com/story.php/18334/Fork-a-Kernel-Kill-an-OS-and-Revo…). And you guys all flamed him down for that, remember?
My Inspiron 8200 has great suspend on Feisty. Actually I wasn’t expecting it to work at all, since I’m using the Nvidia binary drivers, and since I’ve heard so many stories about suspend in Linux, but I didn’t even have anything to set up. Next time I buy a laptop, I’ll just try if it works, else I’ll send it back. It’s just too convenient.
I got a Dell linux laptop, and suspend works almost perfectly the 1st two times. (Sometimes the headphone jack will stop correctly cutting out the speakers after a resume) The problem occurs on the 3rd resume in a row without rebooting, at which point it never wakes up. I may try disabling the NVIDIA drivers to see if that fixes it.
I haven’t had perfect luck on Windows either. My previous laptop would hardly ever successfully hibernate because of a known bug with Windows hibernation on machines with 2GB of RAM. It would suspend correctly, though, which is all I really ever use.
Linux needs to bump the priority on this and spend a little less time on supporting 1000 processors
I for one am happy that i can run linux on my SPARC and other machines. Not everyone lives in an intel-only world.
There must be a standard way for drivers to cooperate with this process – and all the drivers must be required to do so or not be allowed at all
The design doc gives a good overview of this process. Each driver class, type, and bus type can define up to four callbacks: .suspend(), .suspend_late(), .resume_early(), and .resume(). The drivers, their types, and their callbacks execute in a specific order. Any error codes returned during suspend cause the process to abort and all steps to be undone in reverse to restore the working system.
However, it is up to the driver to register the callbacks and do whatever they need to do at the various stages of the suspend/resume cycle. If the driver doesn’t do what it needs to do and returns success (or doesn’t register a required callback), then the system breaks.
So there is simply no way to “verify” that a driver will properly suspend/resume until it fails. There really isn’t any way around this kind of design, either. I used to maintain a kernel component that worked in a similar way, so I’ve given this a lot of thought. You can fail as gracefully as possible. That’s the best-case scenario.
… is ATi again!
Thanks to the tombola ATi driver suspend-to-ram functionality comes and goes with kernel and driver versions on my Thinkpad Z61m. The latest working combo I’ve found for this laptop is kernel 2.6.20 with fglrx driver 8.35.5. More recent combo, anyone?
Thanks ATi for being the single most important obstacle for Desktop Linux!
From the article:
“There also is the alternative hibernation framework TuxOnIce maintained by Nigel Cunningham, which is more feature-rich than the current in-kernel hibernation code. It therefore seems reasonable to incorporate at least some of the more advanced TuxOnIce features into the in-kernel code. I believe that by combining TuxOnIce with the current in-kernel hibernation implementation we can obtain a relatively simple, but powerful and solid hibernation framework, so I am going
to work in this direction, after the separation of the suspend-specific and hibernation-specific device handling is done at the core and device class/device
type/bus type level.”
TuxOnIce was formally known as Suspend2. I am looking forward to compression and full page cache saves in swsusp. I do like Suspend2 more than swsusp, but it requires such a large patch onto the kernel that is not always compatible with other drivers/patches.
They also really need to work on video/LCD backlight resuming. Lately I have had success with my Dell 700m, but I think that is due to intel’s open source and recently improved video drivers (with automatic resolution detection and widescreen support).
“””
I do like Suspend2 more than swsusp, but it requires such a large patch onto the kernel that is not always compatible with other drivers/patches.
“””
Unfortunately, it appears that Nigel may be getting ready to make the same critical tactical error that Con did, by threatening to abandon his code if he does not get his way. Who in their right mind would accept a large invasive patch into mainline from a maintainer who is making “I’m thinking about quitting” noises?
http://lwn.net/Articles/242786/
I hope he chooses to be more careful, so that the patches can be judged on technical merit instead of defaulting to the one that is most likely to have an ongoing maintainer.
Edited 2007-07-27 21:46
It’s true that hibernation and suspend are not yet up to par, the advantages of GNU/Linux on laptops, and desktops are still better for the average desktop user. Linux is more stable and reliable, and uses less system resources than the “more popular” OS. Web browsing is easier, writing documents is easier, email is much easier, as is multimedia. I know I’m off topic a bit, and I know others will disagree, but I’m a “Linux Zealot” because I’ve used it for over three years, and it is far more user friendly than WinXP, I can’t comment on Vista as I don’t expect to use it. I don’t know if there will ever be a “year of the Linux Desktop” for the masses, but for me the Linux desktop is now, and “suspend/hibernate” is not enough of an issue to me. It will be resolved, I can wait.
Funny thing is on older laptops, APM works like a charm. All of my older laptops go to sleep fine with ‘apm -s’. ACPI really has been a disaster (in my opinion). I wonder what the big gain was that caused the switch to ACPI. Anybody know?
I wonder what the big gain was that caused the switch to ACPI. Anybody know?
There was an article here a couple of weeks ago talking about ACPI on Linux: http://www.osnews.com/story.php/18264/ACPI-in-Linux-Myths-vs.-Reali…
Basically, ACPI gives the OS more control and APM isn’t supported any more by some hardware and will soon be dropped by others.
Edited 2007-07-27 19:59
Agreed.
APM works out of the box on my Thinkpads with either OpenBSD or FreeBSD. In fact, as far as ACPI goes, I have found that while FreeBSD’s ACPI supports fewer laptops than Linux, for those that it does support it works really, really well. ACPI suspend-to-ram works perfectly on my two Thinkpads using FreeBSD after some minor configuration in /etc/sysctl.conf.
I wonder what the big gain was that caused the switch to ACPI. Anybody know?
ACPI does more than APM does. ACPI handles things like allocating i/o ports & irqs to hardware devices. It’s more aware of the entire system than APM was and therefore can manage power better.
Cool, now I understand. That must be why my laptop likes to sleep, it just won’t wake up. Much less power consumed that way ;}
I think they should change the name from sleep state to coma state!
…it’s Windows XP that can’t do much useful besides hibernate. My only gripe with Ubuntu was that I had to modify some config to make it resume wireless automatically without reopening a control panel. Otherwise, I shut the lid and it does the rest.
Reopen, and counting the time it takes to reenter my password, it’s less than ten seconds to return to a fully functional desktop. But as others have pointed out, hibernation is almost as slow as rebooting whereas in Windows it’s much faster.
Having read the article, I have a clearer understanding how Windows and Ubuntu on a dual-boot system can maintain separate hibernation swapspaces (which makes switching from Ubuntu into Windows a little faster).
Edited 2007-07-27 21:54
Just as Linux gets Desktop usability nailed, the world turns to laptops. Already laptop sales exceed those of desktops in the consumer market.
No excuses, no its the fault of the hardware/driver/kernel/user space systems. Just get it done.
In response to a prior poster, the benefits of linux on a laptop without proper suspend/hibernate/resume are not sufficient to warrant adoption of linux unless the user needs some other linux only provided feature such as the ability to run X applications remotely or some linux only application or flat can’t afford windows or a mac.
On my Acer Aspire, with OpenSUSE hibernation works rather well. I get a dialog box saying that hibernation has failed, but I wonder if that is due to the wireless. With two clicks the wireless works perfectly, up and running – everytime.
It is otherwise with the preinstalled WinXP, here I must perform a repair of the wireless connection 1/4 of the time. And sometimes I’m forced to perform a restart.
On my X2 driven desktop it is the other way around. There is no problem putting the box to sleep, but the X always dies in the waking up process (Perhaps it is the nVidia drivers) – while McVista works flawless.
I suspect that most of these hibernation problems is due to the individual ACPI implementations of the different hardware manufactors.
And the fact that most hardware manufactorers do not dare to support anything else but the latest wonder from Redmond.
As long as suspend/resume does not work reliably, desktop Linux will remain a dream.
I own a Dell Lattitude 505 which had suspend resume working since Fedora Core 4. With Fedora 7 the functionality stopped working. The laptop wakes up but
none of the “quirks” in http://people.freedesktop.org/~hughsient/quirk/
can induce it to turn the screen back on.
I downgraded to FC6 but in a few months this will be EOL and then what? Maybe by then suspend/resume will be working in F7. Or maybe not. Or maybe it will be working only to break again with the next minor kernel release.
Very frustrating.
Michel
Hibernate already works with suspend2/tux-on-ice patch if you have hibernate-scripts installed and properly configured.