The software suspend 220.127.116.11 kernel that Kevin built me last month has been working really well. However, I haven't been able to build new drivers off it, one of which I really want to use is the hostap driver. The orinoco driver is reliable, but doesn't support scanning in the stock kernel, and it's really nice to see what networks are around. In building a new kernel, I decided to see if I could figure out what it would take to get the “make rpm” from the kernel.org package to also build a package which would allow building drivers.
I had limited success on the RPM front. I got it to build a “kernel-build” RPM, and tried to get it to prune out a few hundred megabytes of stuff it might not need, but didn't end up with a “/lib/modules/version/build/” directory which I could build hostap from, it seemed. That'll require some further work.
The new kernel I built was a kernel.org kernel 2.6.9 with the software suspend 18.104.22.168 software suspend patches in it. I had a bit of problems rebooting into it. First of all, it was failing during boot saying that it couldn't open the console. Seems that even if you have your root file-system driver built in these days, you still need the initrd so that it can mount up the devfs.
The next issue I ran into was that the stock initrd does not enable the softwaresuspend triggers, so it wasn't resuming. I modified the initrd as mentioned in my previous message (linked above). After that it seemed to work fine. I've only done 4 or 6 suspends, but so far so good.
I decided to just kludge “/sbin/mkinitrd” for the time being to add the following lines after the “done” at line 690:
# activate software suspend cat >> $RCFILE <<EOF echo 0 > /proc/software_suspend/disable_swapwriter echo > /proc/software_suspend/do_resume EOF
I should figure out the right way to do this in “nash” and make a patch to the stock “mkinitrd” package to include in KRUD.
Software suspend is working extremely well. I had a system uptime of nearly 20 days on my laptop, probably averaging 2 to 3 suspend/resume cycles per day. The only problems I've had with that kernel were when I pulled my CDMA card without first stopping the PPP daemon working with that device. That would lock up the machine hard. I've now set up a script to use with sudo that I call from a gkrellm button to fire up the suspend, since my power button doesn't seem to be sending events. I just click in the right place in the gkrellm, and it stops my CDMA card, if it's active, and then initiates the suspend.comments powered by Disqus