Your Linux Data Center Experts

In general my system on FC3 was working fairly well. However, I did have one rather big problem. I couldn't reliably suspend after the upgrade. I had set “acpi=off” in the kernel command line which allowed me to suspend, but the xorg X server was not at all happy. I had tried retro-grading to XFree86 from FC1, which had worked great for so long, there were dependency issues that looked like they would start to get hairy.

My system has an Intel i830 video chip-set, and when I would do a regular suspend it would come back up with the X display all garbled. I tried all the normal tricks such as changing to a VTY before doing the suspend, but none of them resolved the problem.

My final resolution, after futzing around for a very long time, was to do software suspend. Thanks to lots of help from Kevin, who has had no choice but to use Software Suspend since getting his last laptop (it has no APM or hardware suspend ability). He is regularly building software suspend kernels and has them at http://www.scrye.com/~kevin/swsusp-kernel/.

One trick with FC3 is that you have to set up the initrd so that it triggers the resume. I'm also having a weird problem where software suspend does not recognize the “swapwriter” unless I echo a 0 out to the “disable_swapwriter” proc file (even though the value that's already in there is 0).

So, to get it working I have to do the following:

rm -rf /tmp/foo
mkdir /tmp/foo
cd /tmp/foo
gunzip </boot/initrd-2.6.9_softwaresuspend_2.1.5.3.img | cpio -ivd
<Modify the "init" file as described below>
find . | cpio -o -c | gzip -9 >/boot/initrd-2.6.9_softwaresuspend_2.1.5.3.img

The modification involved adding the following two lines to the “init” script after the “insmod xfs.ko” line. I'm using XFS for my root file-system, you may have an “insmod jfs.ko” or “insmod ext3.ko” line.

echo 0 > /proc/software_suspend/disable_swapwriter
echo > /proc/software_suspend/do_resume

Note: there must a space before and after the > in the above lines. The script is run using “nash”, which does not have output redirection. The “echo” built-command in nash optionally takes a “>” argument, and if present the following argument is the file name the output is written to. This messed me up for a while.

With these changes, I'm able to successfully suspend.

I carry my laptop everywhere with me, so the ability to suspend is more than just a nice feature – it's a requirement. Not being able to suspend means that I either have to leave my laptop at home, or plan to be by power every few hours. With software suspend, it's the best. It's a fast resume exactly back to where I was, but when it's suspended it doesn't use ANY power. None at all.

I used to have software suspend working in the past, and was really happy with it. That was over 2 years ago, though. It was really stable for a while, and then totally broke and has been under heavy development since. Hopefully this one will be similarly stable to my previous APM suspend. I could suspend about 50 to 100 times before I had a problem.

comments powered by Disqus

Join our other satisfied clients. Contact us today.