2nd part of content updating:
- Update APM part for 4.X and 5.X - Add a new ACPI section. Most of changes coming from: PR: docs/53292 Submitted by: Lukas Ertl <l.ertl@univie.ac.at>
This commit is contained in:
parent
3c016cfd26
commit
f1cec86967
Notes:
svn2git
2020-12-08 03:00:23 +00:00
svn path=/head/; revision=17381
1 changed files with 125 additions and 19 deletions
|
@ -159,25 +159,130 @@
|
||||||
FreeBSD. If you are lucky, some functions may work reliably;
|
FreeBSD. If you are lucky, some functions may work reliably;
|
||||||
or they may not work at all.</para>
|
or they may not work at all.</para>
|
||||||
|
|
||||||
<para>To enable this, you may need to compile a kernel with
|
<para>To make things a little more complex, there are two existing
|
||||||
power management support (<literal>device apm0</literal>) or
|
standards for power management: APM and ACPI, the latter
|
||||||
add the option <literal>enable apm0</literal> to
|
superseding the former and including more features, but also
|
||||||
<filename>/boot/loader.conf</filename>, and
|
introducing more problems.</para>
|
||||||
also enable the &man.apmd.8; daemon at boot time (line
|
|
||||||
<literal>apm_enable="YES"</literal> in
|
<para>Some laptops support both APM and ACPI (to a certain
|
||||||
<filename>/etc/rc.conf</filename>). The apm commands are
|
degree), others just support one of them, so chances are that
|
||||||
listed in the &man.apm.8; manual page. For instance,
|
you have to experiment with both of them to have reliable power
|
||||||
<command>apm -b</command> gives you battery status (or 255 if
|
management on your laptop.</para>
|
||||||
not supported), <command>apm -Z</command> puts the laptop on
|
|
||||||
standby, <command>apm -z</command> (or zzz) suspends it. To
|
<note>
|
||||||
shutdown and power off the machine, use <command>shutdown -p</command>.
|
<para>You cannot have APM and ACPI enabled at the same time,
|
||||||
Again, some or all of these functions may not work very well
|
even if your laptop has support for both of them.</para>
|
||||||
or at all. You may find that laptop suspension/standby works
|
</note>
|
||||||
in console mode but not under X (that is, the screen does not
|
|
||||||
come on again; in that case, switch to a virtual console
|
<sect2>
|
||||||
(using Ctrl-Alt-F1 or another function key) and then execute
|
<title>APM</title>
|
||||||
the &man.apm.8; command.
|
|
||||||
</para>
|
<para>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 &os; 4.X and &os; 5.X.</para>
|
||||||
|
|
||||||
|
<para>To enable APM support, you can compile a kernel with power
|
||||||
|
management support (<literal>device apm0</literal> on
|
||||||
|
&os; 4.X and <literal>device apm</literal> on
|
||||||
|
&os; 5.X). A kernel module for APM is available under
|
||||||
|
&os; 5.X, to simply load the APM kernel module at boot
|
||||||
|
add the line <literal>apm_load="YES"</literal> to
|
||||||
|
<filename>/boot/loader.conf</filename>.</para>
|
||||||
|
|
||||||
|
<para>On &os; 5.X, you also have to set
|
||||||
|
<literal>hint.apm.0.disabled="0"</literal> in
|
||||||
|
<filename>/boot/device.hints</filename>.</para>
|
||||||
|
|
||||||
|
<para>You can start APM at boot time by having
|
||||||
|
<literal>apm_enable="YES"</literal> in
|
||||||
|
<filename>/etc/rc.conf</filename>. You may also want start
|
||||||
|
the &man.apmd.8; daemon by adding
|
||||||
|
<literal>apmd_enable="YES"</literal> to
|
||||||
|
<filename>/etc/rc.conf</filename>, 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.</para>
|
||||||
|
|
||||||
|
<para>The APM commands are listed in the &man.apm.8; manual page.
|
||||||
|
For instance, <command>apm -b</command> gives you battery
|
||||||
|
status (or 255 if not supported), <command>apm -Z</command>
|
||||||
|
puts the laptop on standby, <command>apm -z</command> (or
|
||||||
|
<command>zzz</command>) suspends it. To shutdown and power
|
||||||
|
off the machine, use <command>shutdown -p</command>. Again,
|
||||||
|
some or all of these functions may not work very well or at
|
||||||
|
all.</para>
|
||||||
|
|
||||||
|
<para>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 &os; 5.X, one solution
|
||||||
|
for this might be to put <literal>options
|
||||||
|
SC_NO_SUSPEND_VTYSWITCH</literal>
|
||||||
|
in your kernel configuration file and recompile your kernel.
|
||||||
|
Another workaround is to switch to a virtual console (using
|
||||||
|
<keycombo
|
||||||
|
action="simul"><keycap>Ctrl</keycap><keycap>Alt</keycap><keycap>F1</keycap></keycombo>
|
||||||
|
or another function key) and then execute &man.apm.8;.
|
||||||
|
You can automate this with &man.vidcontrol.1;, if you are
|
||||||
|
running &man.apmd.8;. Simply edit
|
||||||
|
<filename>/etc/apmd.conf</filename> and change it to
|
||||||
|
this:</para>
|
||||||
|
|
||||||
|
<programlisting>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";
|
||||||
|
}</programlisting>
|
||||||
|
</sect2>
|
||||||
|
|
||||||
|
<sect2>
|
||||||
|
<title>ACPI</title>
|
||||||
|
|
||||||
|
<para>ACPI (Advanced Configuration and Power Management
|
||||||
|
Interface) provides not only power management but also
|
||||||
|
platform hardware discovery (superseding PnP and PCI BIOS).
|
||||||
|
ACPI is only available under &os; 5.X and is enabled by
|
||||||
|
default, so you do not have to do anything special to get it
|
||||||
|
running. You can control ACPI behaviour with
|
||||||
|
&man.acpiconf.8;.</para>
|
||||||
|
|
||||||
|
<para>Unfortunately, vendors often ship their laptops with
|
||||||
|
broken ACPI implementations, thus having ACPI enabled
|
||||||
|
sometimes causes more problems than being useful, up to the
|
||||||
|
point that you cannot even boot &os; on some machines with
|
||||||
|
ACPI enabled.</para>
|
||||||
|
|
||||||
|
<para>If ACPI is causing problems, you might check if your
|
||||||
|
laptop vendor has released a new BIOS version that fixes some
|
||||||
|
bugs. Since the &os; ACPI implementation is still very
|
||||||
|
evolving code, you might also want to upgrade your system;
|
||||||
|
chances are that your problems are fixed.</para>
|
||||||
|
|
||||||
|
<para>If you want to disable ACPI simply add
|
||||||
|
<literal>hint.acpi.0.disabled="1"</literal> to
|
||||||
|
<filename>/boot/device.hints</filename>. You can disable
|
||||||
|
ACPI temporarily at the boot loader prompt by issueing
|
||||||
|
<literal>unset acpi_load</literal> if you are having problems
|
||||||
|
booting an ACPI enabled machine. &os; 5.1-RELEASE and
|
||||||
|
later come with a boot-time menu that controls how &os; is
|
||||||
|
booted. One of the proposed options is to turn off ACPI. So
|
||||||
|
to disable ACPI just select <guimenuitem>2. Boot &os; with ACPI
|
||||||
|
disabled</guimenuitem> in the menu.</para>
|
||||||
|
</sect2>
|
||||||
|
|
||||||
|
<sect2>
|
||||||
|
<title>Display Power Management</title>
|
||||||
|
|
||||||
<para>The X window system (<application>XFree86</application>) also includes display power
|
<para>The X window system (<application>XFree86</application>) also includes display power
|
||||||
management (look at the &man.xset.1; manual page, and search for
|
management (look at the &man.xset.1; manual page, and search for
|
||||||
|
@ -185,6 +290,7 @@
|
||||||
too, works inconsistently on laptops: it
|
too, works inconsistently on laptops: it
|
||||||
often turns off the display but does not turn off the
|
often turns off the display but does not turn off the
|
||||||
backlight.</para>
|
backlight.</para>
|
||||||
|
</sect2>
|
||||||
|
|
||||||
</sect1>
|
</sect1>
|
||||||
</article>
|
</article>
|
||||||
|
|
Loading…
Reference in a new issue