[ltp] T42p + suspend2 + acpi + hotplug Ultrabay working (fwd)

Michael Gaber linux-thinkpad@linux-thinkpad.org
Sun, 17 Apr 2005 16:37:29 +0200


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

David A. Desrosiers wrote:
> 	Through much testing this morning, I decided to try to get 
> suspend2 working instead of apm. It required me to have some ACPI 
> hooks enabled to trap events, so I could trigger on them. Based on my 
> experience with ACPI, I was hesitant, but as long as I'm not using 
> ACPI itself to suspend, I'm probably safe.
> 
> 	(If anyone has questions about what I've configured, what my 
> various system files that govern these changes look like, etc. just 
> let me know, and I'll try to provide more detail here).
> 
> 	The results were successful, and my laptop suspends to swap in 
> about 2 seconds, and comes back out of suspend in about 4 seconds. 
> There is one minor buglet, where my wallpaper in X gets corrupted 
> coming out of suspend (24bpp, non-ATI driver), but that's very minor.
> 
> 	So then I moved onto harder things, getting hot-swappable 
> support for my Ultrabay devices (a second IDE sled and the standard 
> CD/DVD+/-RW drive.
> 
> 	First, I tried using idectl and hdparm directly, but that 
> didn't turn out so well. For those who want to try it, I used the 
> following in my eject event:
> 
> 	/bin/sync && /bin/sync
> 	/usr/bin/idectl 1 off
> 	/sbin/hdparm -b0 /dev/hdc
> 
> 	..and the following in my "insert" event: 
> 
> 	/sbin/hdparm -b1 /dev/hdc
> 	/usr/bin/idectl 1 on
> 	/usr/bin/idectl 1 rescan
> 
> 	While that did bring up an 'hdc' device, it was completely 
> unusable to any userland application, and was throwing all kinds of 
> errors in the logs (723M of logs in only a few seconds, EEK!).
> 
> 	Dead end there.
> 
> 	So then I tried the 'hotswap' package, with greater success: 
> 
> 	In my "eject" event, I have: 
> 
> 	/bin/sync && /bin/sync
> 	/usr/bin/hotswap -c 1 unregister-ide
> 
> 	..and the following in my "insert" event: 
> 
> 	/bin/sleep 2
> 	/bin/sync && /bin/sync
> 	/usr/bin/hotswap -c 1 rescan-ide
> 
> 	This worked perfectly, and lets me put my secondary IDE drive 
> in the Ultrabay _or_ the DVD/CD drive. There's one problem though, and 
> I believe it lies deep in the kernel... once you unregister the IDE 
> interface, you lose DMA, and you can't get it back until/unless you 
> reboot with a device in the bay that supports DMA. Ugh.
> 
> 	For me, this is a blocker. Once I hot-swap the Ultrabay, the 
> entire machine gets jerky, like a strobe light. The mouse jerks 
> around, the sound jerks around, everything goes haywire, since DMA was 
> disabled. It brings the machine to its knees. Near-success, but still 
> a dead-end there (I tried this with a 2.6.11.7 kernel, FWIW).
> 
> 	The next thing was to get cpufreq properly working, so I can 
> save on battery life by keeping the laptop down to 600Mhz most times, 
> until I'm either using vmware or building software. 
> 
> 	This involved a quick change to the governor I was using in 
> the kernel, and one userland binary to switch the "ondemand" governor 
> to "on". That was a quick and easy change, and as I type this, the 
> cpufreq applet shows 600Mhz.
> 
> 	One more thing I wanted to try, was getting multichannel audio 
> support working through dmix (via alsa). After some minor changes to 
> the userland apps I use to play audio (mplayer, xine, xmms, ogle), 
> everything worked out great, and now I have multiple audio channels 
> available simultaneously.
> 
> 	For me, this means I can be listening to music streams, and 
> also have my text-to-speech plugins for xchat and gaim available at 
> the same time as well, so I don't have to keep switching virtual 
> desktops to check when/if people are talking to me.
> 
> 	Lastly, keyboard hotkeys, and this is partly where I'm stuck 
> at the moment.. I've got the "Back" and "Forward" keys working fine 
> via xmodmap, but I can't seem to hook suspend2 into Fn-F12 or suspend 
> to RAM (via acpi, potentially deadly on my particular hardware) to 
> Fn-F4. Bluetooth (Fn-F5) works (always has, without acpi), Fn-F7 works 
> (always has, even without acpi or any event trapping), and the various 
> other hotkeys work... except Fn-F4 to suspend to RAM and Fn-F12 to 
> hibernate to disk.
> 
> 	Anyone know how to do that? 
>  
> 
> David A. Desrosiers
> desrod@gnu-designs.com
> http://gnu-designs.com

fn-f4 generates an acpi-event button/sleep, which can be caught...
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.1 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org

iD8DBQFCYnSoGulvCdQndLcRAgFIAKCZOT3S57nL4UgUSUfk5e3J+P4LywCfWPHj
zN5IjuPr0lb2SiFhQ2hNTls=
=sk3q
-----END PGP SIGNATURE-----