Minimal sample custom devd.conf ( was Re: IBM T30 and suspend/resume capability )

Norberto Meijome <[email protected]>
Newsgroups gmane.os.freebsd.devel.mobile
Message-ID <20060825190556.0e913ec5@localhost>
On Thu, 24 Aug 2006 17:14:01 +0200
Fabian Keil <[email protected]> wrote:

> > nice one :) do u know if this works for other Thinkpad models? I'm on a much
> > newer  Z60m here - acpi works fine, suspend is much more reliable after I
> > wrote my own suspend script called by devd, but hibernation is something
> > I'd be interested in.
> 
> AFAIK there are two types of suspend to disk, one that heavily depends
> on the BIOS to do the work and one that doesn't. FreeBSD currently only
> supports the first one while modern laptops usually only support the second.

gotcha :) I would guess mine is supported by BIOS: (S4 )


hw.acpi.supported_sleep_state: S3 S4 S5
hw.acpi.power_button_state: S5
hw.acpi.sleep_button_state: S3
hw.acpi.lid_switch_state: NONE
hw.acpi.standby_state: S1
hw.acpi.suspend_state: S3

> 
> BTW: what exactly does your devd script do?

Nothing major really... I was getting some crashes on resume, and the default
acpi_ibm behaviours for the fn- keys weren't too much of my liking... so what I
did (for the archives... hopefully it'll be useful for someone else)

1) added to /etc/sysctl.conf
--
# Needed for custom ACPI control
# This will pass ACPI events to devd after acpi_ibm.
#    Custom devd config can be found in /usr/local/etc/devd
dev.acpi_ibm.0.events=1
---

2) ensured /etc/devd.conf contains in the options { } section:
 directory "/usr/local/etc/devd";


3) Created a ayiin.conf file in /usr/local/etc/devd  (ayiin = name of
machine... anything would work really), with the following lines
----
notify 10 {
## Fn-F4 : Suspend
        match "system"          "ACPI";
        match "subsystem"       "IBM";
        match "notify"          "0x04";
        action "/bin/sh -c /home/betom/bin/do_acpi_suspend.sh";
}; 


notify 10 {
## Closing lid : powerdown LCD with radeon tool
        match "system"          "ACPI";
        match "subsystem"       "Lid";
        match "notify"          "0x00";
        action "/usr/local/bin/radeontool light off; /usr/local/bin/radeontool
dac off"; };

notify 10 {
## Opening lid : power up LCD with radeon tool
        match "system"          "ACPI";
        match "subsystem"       "Lid";
        match "notify"          "0x01";
        action "/usr/local/bin/radeontool light on; /usr/local/bin/radeontool
dac off"; };  

notify 10 {
## Fn-F2 - Lock
        match "system"          "ACPI";
        match "subsystem"       "IBM";
        match "notify"          "0x02";
		action "/usr/X11R6/bin/xscreensaver-command -lock";
        #action "/bin/sh -c /home/betom/bin/do_acpi_x_lock.sh";
};  
------------------------------- end of /usr/local/etc/devd/ayiin.conf

4) Created /home/betom/bin/do_acpi_suspend.sh as follows:
----
#!/usr/local/bin/bash

# switch to first VC
vidcontrol -s 1 < /dev/ttyv0

# make sure we sync all the disk buffers ... in case we die on resume, this
minimises problems with fsck
sync 
sync
sleep 3
sync
sync
sleep 1
sync
zzz
----

and that's about it... I want to customise detaching devices ( hdac.ko from
multimedia@ usually dies after resume, but it's not so easy to handle, as
several apps keep the mixer / pcm open... in particular flash plugin in
firefox... ), but i havent done any more yet.

Anyway, some notes : 
on resume, the console stays on VC1, so I simply have to do Alt-F9 and I'm back
in X. When I used to run on MODE_24 (text mode), I'd get the actual console.
Now I'm running on MODE_279 (1024x768x16), so I get a soft-white screen
instead.. possibly related to this in dmesg on resume
Aug 23 09:44:37 ayiin kernel: vga0: failed to save state (nbytes=4)


The FnF2 call xscreensaver-command-lock needs me to have xhost +local: set in
my session script (devd runs as root, so it normally cannot execute on my X
Session).

Since I switched to custom devd msg handling, i've lost the bluetooth device  -
Fn-F5 (radio on) would attach the bt device... i'll have to configure that, or
maybe run
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-mobile
To unsubscribe, send any mail to "[email protected]"
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.