acpi S3 progress

Justin Georgeson justin.georgeson at gmail.com
Sun Nov 14 19:48:11 UTC 2004


I offer advance apologies for the long post. I have a Dell Inspiron
2600 which I'm trying to get ACPI S3 and S4 suspend modes working on.
I've made some progress with S3, so I thought I'd post a summary.
First off, without any tweaking running 'echo -n "mem" >
/sys/power/state' puts the machine into suspend. Hitting the power
button wakes and it resumes without any display. This laptop uses the
Intel i830M graphics chipset, and it needs to POST to bring back the
display. There is an apt repo at
http://www.srcf.ucam.org/~mjg59/laptops/ with an application called
video_post written by someone at Intel. I grabbed the source, compiled
it, and put the video_post binary in /sbin. I also added a driver
option to my xorg.conf for the i810 driver: "VBERestore" "true". Now
comes the meat of getting this going.

For some reason, there are no events or scripts in /etc/acpi. I copied
over some stuff from Ubuntu (which is where I found the above apt repo
with ACPI suspend dpkg packages). Before worrying about hooking up
events with actions, I just wanted to get a script written to do the
suspend. Since I intend on getting both S3 and S4, I get the
prepare.sh, suspend.sh/hibernate.sh, resume.sh split that the Ubuntu
stuff has.

My prepare.sh stops acpid (don't know why, Ubuntu stuff had it), loops
to ifdown interfaces (currently just eth1), loops to unload modules
(button and uhci_hcd), calls fgconsole to remember what console we're
on, and then calls 'chvt 12' to avoid problems during resume, in case
we're on an X console.

The suspend.sh script simply calls prepare.sh, 'echo -n "mem" >
/sys/power/state', and resume.sh.

The resume.sh script calls video_post, loads the modules unloaded in
prepare, runs ifup on the interfaces ifdowned in prepare.sh, calls
'hwclock --hctosys' to reset the time, calls chvt to return to what
fgconsole returned in prepare.sh, and starts acpid.

The good thing is that the display is being restored perfectly. The
bad thing is that my usb mouse dies (loading uhci_hcd should have
fixed that) and all the IP routing table is nuked so I have no network
connectivity afterward. I tried stopping the PCMCIA service in
prepare.sh and starting it in resume.sh to fix the network problem
(pcmcia wifi nic w\ prism chip using orinoco_cs driver) but that
didn't help.

-- 
; Justin Georgeson
; "Free the mallocs, delete the news"
; http://www.openoffice.org
; http://www.boycott-riaa.com




More information about the users mailing list