December 11, 2003

FreeBSD on laptop with apmd config

在notebook上的apmd設定,使得我的nb不再一睡不醒囉^^

在這裡說了一些關於apm的使用,最重要的是文章後面那個/etc/apmd.conf的設定


The APM (Advanced Power Management) BIOS provides support for various power management features like standby, suspend, hibernation, CPU clock slow down etc. and is available under FreeBSD 4.X and FreeBSD 5.X.

To enable APM support, you can compile a kernel with power management support (device apm0 on FreeBSD 4.X and device apm on FreeBSD 5.X). A kernel module for APM is available under FreeBSD 5.X, to simply load the APM kernel module at boot add the line apm_load="YES" to /boot/loader.conf.

On FreeBSD 5.X, you also have to set hint.apm.0.disabled="0" in /boot/device.hints.

You can start APM at boot time by having apm_enable="YES" in /etc/rc.conf. You may also want start the apmd(8) daemon by adding apmd_enable="YES" to /etc/rc.conf, which takes care of various APM events that are posted to the BIOS, so you can have your laptop suspend/resume by pressing some function key on the keyboard or by closing/opening the lid.

The APM commands are listed in the apm(8) manual page. For instance, apm -b gives you battery status (or 255 if not supported), apm -Z puts the laptop on standby, apm -z (or zzz) suspends it. To shutdown and power off the machine, use shutdown -p. Again, some or all of these functions may not work very well or at all.

You may find that laptop suspension/standby works in console mode but not under X (that is, the screen does not come on again); if you are running FreeBSD 5.X, one solution for this might be to put options SC_NO_SUSPEND_VTYSWITCH in your kernel configuration file and recompile your kernel. Another workaround is to switch to a virtual console (using Ctrl+Alt+F1 or another function key) and then execute apm(8). You can automate this with vidcontrol(1), if you are running apmd(8). Simply edit /etc/apmd.conf and change it to this:

apm_event SUSPENDREQ {
exec "vidcontrol -s 1 < /dev/console";
exec "/etc/rc.suspend";
}

apm_event USERSUSPENDREQ {
exec "vidcontrol -s 1 < /dev/console";
exec "sync && sync && sync";
exec "sleep 1";
exec "apm -z";
}

apm_event NORMRESUME, STANDBYRESUME {
exec "/etc/rc.resume";
exec "vidcontrol -s 9 < /dev/console";
}

以上節錄自http://www.freebsd.org/doc/en_US.ISO8859-1/articles/laptop/article.html
也可以從這裡得到

Posted by skychaser at December 11, 2003 07:21 PM
Comments