My suspend woes on linux are over! I regret to say that I have it working in OpenSuse 10.3 rather than in Kubuntu as I wanted. Perhaps I can get it to work once Kubuntu 7.10 is released. For now, I leave you with what I had to do in order to get this to work.
OpenSuse 10.3 uses Pm-utils for all its power management. This is located in /usr/lib/pm-utils/. Under this folder is a lot of configuration files. The folder we’re concerned with is sleep.d. So under here we need to add a script to be called once it is loaded: 11ipw3945.
Create this file with the following contents:
#!/bin/sh
case "$1" in
hibernate|suspend)
/sbin/lsmod | grep -q ipw3945 || exit 0
{ /sbin/service ipw3945d stop && /sbin/modprobe -r ipw3945 ; } 2>>/dev/null ;;
thaw|resume)
{ /sbin/modprobe -r ipw3945 && /sbin/modprobe ipw3945 && /sbin/service ipw3945d start ; } 2>>/dev/null ;;
*)
;;
esac
exit $?
Once that script is created, give it execute rights with this command: sudo chmod +x 11ipw3945. That’s it!
What’s happening is that it will use the modprobe command to stop and start ipw3945 to enable wireless support.
Hopefully I can do the same in Kubuntu.