ACPI Suspend, devd and rc.suspend

George Hartzell hartzell at alerce.com
Tue Mar 28 17:18:58 UTC 2006


Ben Jencks writes:
 > "Kevin Oberman" <oberman at es.net> writes:
 > 
 > >> From: George Hartzell <hartzell at alerce.com>
 > >> Date: Mon, 27 Mar 2006 20:17:59 -0800
 > >> Sender: owner-freebsd-mobile at freebsd.org
 > >> 
 > >> Norberto Meijome writes:
 > >>  > On Mon, 27 Mar 2006 09:45:27 -0800
 > >>  > Ben Jencks <ben-freebsd-mobile at bjencks.net> wrote:
 > >>  > [...]
 > >>  > >
 > >>  > > In order to make this work on my T43p, I set dev.acpi_ibm.0.events=1,
 > >>  > > so that Fn-F4 generates an acpi_ibm event (which is handled by devd)
 > >>  > > rather than a suspend event (which tells the kernel to suspend
 > >>  > > straightaway). I have the block
 > >>  > > 
 > >>  > > notify 10 {
 > >>  > >         match "system"          "ACPI";
 > >>  > >         match "subsystem"       "IBM";
 > >>  > >         match "notify"          "0x04";
 > >>  > >         action "/usr/sbin/zzz";
 > >>  > > };
 > >>  > > 
 > >>  > > in my devd.conf, so that it calls zzz, which does the right thing.
 > >>  > > 
 > >>  > 
 > >>  > cool, that's EXACTLY what I was after :) thx man
 > >> 
 > >> Is there any way to hook up 
 > >> 
 > >>   hw.acpi.lid_switch_state: S3
 > >> 
 > >> so that it also runs through devd and can run zzz?
 > >> 
 > >> The atheros wireless card in my T42p doesn't wake up properly when I
 > >> suspend/resume from X, but if I use vidcontrol to switch to a
 > >> different virtual terminal on suspend and back on resume then it works
 > >> just fine.
 > >> 
 > >> I've add a couple of hacks in /etc/rc.{suspend,resume}, but they're
 > >> not called on a lid close event.
 > >
 > > You might want to look at a couple of sysctls: hw.acpi.reset_video and
 > > hw.syscons.sc_no_suspend_vtswitch. these might help.
 > >
 > > I am pretty sure that hooks to the lid switch are possible, but I don't
 > > think code has been put in FreeBSD to do it.
 > 
 > I see ACPI events when I hit my lid switch, so if you set
 > hw.acpi.lid_switch_state=NONE (the default, AFAICT), you should be able
 > to use another devd hook.
 > [...]

Yep, you're right!  Now that I have lid_switch_state=NONE I'm seeing
the acpi events and devd can field them for me.

g.




More information about the freebsd-mobile mailing list