22 January 2010

Suspend and hibernation on Asus F5SL

What I liked in Windows was reliability of suspend/hibernate functionalities. I used to move my laptop from place to place only putting it into sleep mode or sometimes into hibernation. I did it also overnight. The main advantage was of course that all the programs on the systems were just like I left them so I could continue my work.

Unfortunately on Ubuntu (Karmic Koala) I had no luck with my laptop. First problem I had was that one of CPU cores was 100% utilized after resume and CDROM did not work. The other problem was that sleep, hibernation and then resume was really slow as compared to Windows systems.

scsiadd
Solving the problem with 100% CPU utilization. First I just removed my CD-ROM drive from laptop and it worked;) Of course this is not the best solution. I could not solve the problem completely so I just found some workaround - remove CD-ROM device upon sleep/hibernation. In order to be able to do that scsiadd package is required

sudo apt-get install scsiadd

then instructions for removing and adding device in my laptop were (scsi device id = 2 in my case):

sudo scsiadd -r 2 0 0 0
sudo scsiadd -a 2 0 0 0

Both command work before suspending the machine but once it was suspended it is not possible to add the CD-ROM back. I'll post if I find better solution but up to now it is all I can get with my F5SL.

In order to automate the removal of CD-ROM upon suspend I've written the following script /etc/pm/sleep.d/10_cdrom:
#!/bin/sh

case "$1" in
resume|thaw)
scsiadd -a 2 0 0 0
;;
suspend|hibernate)
scsiadd -r 2 0 0 0
exit 0 # necessary since 'scsiadd -r' might return error and disallow suspending
;;
esac
tuxonice
The problem with slow and unstable suspend/hibernation/resume I solved by installing tuxonice. Now suspend is as fast as in Windows XP/7 and so far equally reliable. The only problem I still have is with resume - sometimes resume hangs and I need to restart my computer and then it continues to resume. Don't know the problem yet but hopefully the computer still resumes.

Tuxonice requires some kernel patches, but appropriate kernel version can be found on the web page http://www.tuxonice.net/downloads/. There are also repositories, for Ubuntu Karmic add following line to /etc/apt/sources.list:
deb http://ppa.launchpad.net/tuxonice/ppa/ubuntu karmic main

Next just install the modified kernel. I also downloaded Userspace UI from their page since the Ubuntu's one did not work for me. I compiled the version tuxoniceui_text since it was enough. Finally I changed a line in /etc/pm/config.d/00sleep_module:
# The sleep/wake system to use. Valid values are:
# kernel The built-in kernel suspend/resume support.
# Use this if nothing else is supported on your system.
# uswsusp If your system has support for the userspace
# suspend programs (s2ram/s2disk/s2both), then use this.
# tuxonice If your system has support for tuxonice, use this.
#
# The system defaults to "kernel" if this is commented out.
SLEEP_MODULE="tuxonice"

Now finally suspend and hibernation works on my laptop!

Check also http://pziemniak.blogspot.com/2010/01/ethernet-and-wifi-not-working-after.html for other suspend issues.

No comments:

Post a Comment