Lenovo Ideapad S10-3
I recently got a Lenovo Ideapad S10-3 and of course nuked the default Windows 7 OS off it straight away to be replaced with Ubuntu ;-)
First I booted in on an Ubuntu 11.04 USB stick to test functionality and everything worked perfectly out of the box, except that it would not resume after standby. Also I later discovered that the wifi hardware switch causes the wifi to stop working, and the only way to get it working again is not open up the whole unit and take out the CMOS backup battery to restore the unit to factory defaults.
These problems are no where near as major as having to use Windows so I proceeded with a full installation! I nuked all the partitions to use the entire disk for Ubuntu. One thing to note regarding partition sizes is that for hibernate to work correctly there needs to be about twice the amount of physical RAM available in the swap partition. By default it only reserved 2GB, but my netbook has 2GB of RAM, so I used a custom configuration with 5GB for the swap partition.
Contents
Resume problem
To try and fix the resume problem I first installed the most recent version of s2ram, but note that before running ./configure, you'll need to apt-get install pcutils-dev libx86dev. This did not fix the problem though, so I instead had to do the following to change the suspend action to hibernate. See also s2ram at OpenSUSE for some good information on the s2ram utility.
Resume problem fixed!
Thanks a million to Nathan Nutter who worked out that the "nohpet" option can be added to the /boot/grub/menu.lst file (or grub.cfg in Ubuntu 9.10 onwards). I found the solution today (04/12/11) when I got a notification from this linlap.com forum post, but actually it was resolved back in June in the Launchpad bug-tracker here. In the line that specifies the kernel, disk and boot options, you need to specify the device that the system should resume back on to, and the "nohpet" option as in the following example snippet:
You can find the device your root partition is running on using df -h. Apparently if this method fails, you can also try "intel_idle.max_cstate=0" instead of "nohpet".
Resume issue resumes
For some reason the problem started again, but using the second option of "intel_idle.max_cstate=0" has fixed it, but only when used in conjunction with the other option! I also found that a better way of adding the kernel options is adding them to the GRUB_CMDLINE_LINUX_DEFAULT parameter in /etc/default/grub and then executing sudo update-grub. This method adds the option to all the configurations rather than just when booting from the recent kernel. It turns out that stating the device to resume to was unnecessary, so my line in /etc/default/grub is as follows:
Mint to the rescue
I recently installed Linux Mint on my computer because it was the only popular distro that had a recent enough kernel to support the touch-screen. The most bleeding-edge Ubuntu distro at the time did have a recent enough kernel, but the OS was too buggy and unstable to be useful for my needs. Mint on the other hand is so up to date with the kernel that the last three stable versions have had a recent enough kernel to support the touch-screen.
So I thought it would be worth trying Linux Mint out on Beth's Ideapad to see if the modern kernel would support its method of standby/resume, and sure enough it worked perfectly out of the box!
Wifi switch problem
After the wifi hardware switch on the side has been used to disable the wifi, the wifi will no longer be able to be activated after the next reboot. The onlt way to fix this is to restore the unit to factory settings. This sounds quite straight forward, but is unfortunately quite tricky. A good explanation can be found in this LaunchPad post. The procedure worked for me and I took some photos along the way which may be of some extra help.
The last photo shows some rolled up paper jammed into the space in the wifi switch so that it can't be moved into the off position again.
See also
- ZDNet - Linux on the Lenovo S10-3s
- Suspend info at Debian.org