API to turn off the display
James Green
jim at thebadger.org
Sat Jan 31 04:36:08 PST 2004
Hi Randy,
On Sat, 2004-01-31 at 05:33, Randy Bush wrote:
> >
> > Recompiled the kernel with:
> > options SC_NO_SUSPEND_VTYSWITCH
> >
> > and now it all works!
> >
> > I added to rc.suspend:
> >
> > xset -display :0 dpms force off
> > sleep 3
> > sysctl hw.acpi.video.lcd0.active=0
> > sleep 1
> > sysctl hw.acpi.cpu.throttle_state=1
> >
> > and to rc.resume:
> >
> > sysctl hw.acpi.cpu.throttle_state=8
> > xset -display :0 dpms force on
> > sysctl hw.acpi.video.lcd0.active=1
> >
> > The order of DPMS and ACPI is important. This works on both the console
> > and in X. Next up is to add in ataidle...
>
> this helps a LOT. but ...
>
> i can suspend once and resume once. after that, it will not suspend
> with lid or button.
AFAIK, only acpiconf calls the rc.suspend and rc.resume scripts (please
correct me if I am wrong!), so the above method only really works if you
use acpiconf to suspend and the power switch to resume. I find it mostly
works using acpiconf -s 1 to suspend, and then closing the lid. It
resumes on lid switch open, but does not run rc.resume.
I have also tried calling scripts from devd to process the lid switch
events, however the rc.suspend scripts does not get called until after
resume (and it seems after rc.resume!). I have not tried it yet, but it
should be possible to call just rc.resume from devd for the lid switch
open event only.
James
More information about the freebsd-current
mailing list