API to turn off the display

James Green jim at thebadger.org
Thu Jan 29 15:27:10 PST 2004


On Thu, 2004-01-29 at 19:40, Jesse Guardiani wrote:
> James Green wrote:
> 
> [...]
> 
> > Interestingly, however, is that:
> > # sysctl hw.acpi.video.lcd0.active=0 &&  acpiconf -s 1
> > 
> > will turn off the LCD and suspend gracefully, whereas
> > # xset -display :0 dpms force off && sysctl hw.acpi.video.lcd0.active=0
> > && acpiconf -s 1
> > 
> > just locks everything up... (discovered by adding the commands to
> > /etc/rc.suspend and getting a lock up)
> 
> What about from SSH? I've found that things sometimes need a bit of a delay
> to work properly from /etc/rc.suspend.

I have found that too. I did most of my testing over ssh, until I setup
a serial login console (boot -h, and appropriate line in /etc/ttys) , so
I could see any messages that I might be missing... and I could not
reproduce the hang. Suspended without any problem at all. Tried booting 
with the -h and I could reproduce the hang every time.

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...


James



More information about the freebsd-current mailing list