Bring in the ACPI documentation from my local tree. This is mostly

complete, but still needs some work.
This commit is contained in:
Tom Rhodes 2002-12-12 21:12:00 +00:00
parent 86b1de55db
commit 2df03ab3f3
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=15319

View file

@ -1658,6 +1658,88 @@ kern.maxfiles: 2088 -> 5000</screen>
</example>
</sect2>
</sect1>
<sect1 id="acpi-overview">
<sect1info>
<authorgroup>
<author>
<firstname>Hiten</firstname>
<surname>Pandya</surname>
<contrib>Written by </contrib>
</author>
<author>
<firstname>Tom</firstname>
<surname>Rhodes</surname>
</author>
</authorgroup>
</sect1info>
<title>ACPI and FreeBSD</title>
<para>It is very important to utilize hardware resources in an
efficient manner. Before <acronym>ACPI</acronym> was introduced,
it was very difficult and inflexible for operating systems to manage
the power usage and thermal properties of a system. The hardware was
either controlled by some sort of <acronym>BIOS</acronym> embedded
interface, i.e.: <emphasis>Plug and Play BIOS (PNPBIOS)</emphasis>,
<emphasis>Advanced Power Management (APM)</emphasis> and so on.
Power and Resource Management is one of the key components of a modern
operating system. For example, you would want an operating system to
monitor system limits (and possibly take an action), in case your its
temperature increased unexpectedly.</para>
<para>In this section of the FreeBSD Handbook, we will provide
comprehensive information about <acronym>ACPI</acronym>. References
will be provided for further reading, at the end. Please be aware
that <acronym>ACPI</acronym> is only availible on FreeBSD 5.X and
above.</para>
<sect2 id="acpi-intro">
<title>What is ACPI?</title>
<para>Advanced Configuration and Power Interface
(<acronym>ACPI</acronym>) is a standard written by
an alliance of vendors to provide a standard interface for
hardware resources and power management (hence the name).
It is a key element in <emphasis>Operating System-directed
configuration and Power Management</emphasis>, i.e.: it provides
more control and flexibility to the operating system (<acronym>OS</acronym>).
Modern systems <quote>stretched</quote> the limits of the current
Plug and Play interfaces (such as APM, which is used in FreeBSD 4.X),
prior to the introduction of <acronym>ACPI</acronym>. <acronym>ACPI</acronym>
is the direct successor to <acronym>APM</acronym> (Advanced Power
Management).</para>
<sect2 id="acpi-config">
<title>Configuring <acronym>ACPI</acronym></title>
<para>The <filename>acpi.ko</filename> driver is loaded by the
at start up by &man.loader.8; by default and should <emphasis>not</emphasis>
be compiled into the kernel. The reasoning behind this is that modules
are easier to work with, say if switching to another <filename>acpi.ko</filename>
without doing a kernel rebuild. This has the advantage of making testing easier.
Another reason is that starting <acronym>ACPI</acronym> after a system has been
brought up is not to useful, and in some cases can be fatal. If in doubt, just
disable <acronym>ACPI</acronym> all togeather. This driver should not and can not
be unloaded because the system bus uses it for various hardware interactions.
<acronym>ACPI</acronym> can be disabled with the &man.acpiconf.8; utility.
In fact most of the interaction with <acronym>ACPI</acronym> can be done via
&man.acpiconf.8;. Basicly this means, if anything about <acronym>ACPI</acronym>
is in the &man.dmesg.8; output, then most likely it is already running.</para>
<note><para><acronym>ACPI</acronym> and <acronym>APM</acronym> cannot coexist and
should be used sperately. The last one to load will terminate if the driver
notices the other running.</para></note>
<para>In the simpleist form, <acronym>ACPI</acronym> can be used to put the
system into a sleep mode with &man.acpiconf.8;, the <option>-s</option>
flag, and a <literal>1-5</literal> option. Most users will only need
<literal>1</literal>. Option <literal>5</literal> will do a soft-off
which is the same action as:</para>
<screen>&prompt.root;<userinput>halt -p</userinput></screen>
</sect2>
</sect1>
</chapter>
<!--