White space fix only. Translators can ignore.

Sponsored by:	iXsystems
This commit is contained in:
Dru Lavigne 2014-04-15 16:40:29 +00:00
parent 627207c403
commit 61bcce53e9
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=44562

View file

@ -3183,50 +3183,51 @@ hw.acpi.s4bios: 0</screen>
This usually fixes the problem of a system powering up This usually fixes the problem of a system powering up
spontaneously after a suspend or poweroff.</para> spontaneously after a suspend or poweroff.</para>
</sect3> </sect3>
<sect3 xml:id="ACPI-aslanddump"> <sect3 xml:id="ACPI-aslanddump">
<title>BIOS Contains Buggy Bytecode</title> <title>BIOS Contains Buggy Bytecode</title>
<indexterm> <indexterm>
<primary><acronym>ACPI</acronym></primary> <primary><acronym>ACPI</acronym></primary>
<secondary><acronym>ASL</acronym></secondary> <secondary><acronym>ASL</acronym></secondary>
</indexterm> </indexterm>
<para>Some <acronym>BIOS</acronym> vendors provide incorrect or <para>Some <acronym>BIOS</acronym> vendors provide incorrect
buggy bytecode. This is usually manifested by kernel console or buggy bytecode. This is usually manifested by kernel
messages like this:</para> console messages like this:</para>
<screen>ACPI-1287: *** Error: Method execution failed [\\_SB_.PCI0.LPC0.FIGD._STA] \\ <screen>ACPI-1287: *** Error: Method execution failed [\\_SB_.PCI0.LPC0.FIGD._STA] \\
(Node 0xc3f6d160), AE_NOT_FOUND</screen> (Node 0xc3f6d160), AE_NOT_FOUND</screen>
<para>Often, these problems may be resolved by updating the <para>Often, these problems may be resolved by updating the
<acronym>BIOS</acronym> to the latest revision. Most console <acronym>BIOS</acronym> to the latest revision. Most
messages are harmless, but if there are other problems, like console messages are harmless, but if there are other
the battery status is not working, these messages are a good problems, like the battery status is not working, these
place to start looking for problems.</para> messages are a good place to start looking for
problems.</para>
</sect3> </sect3>
</sect2> </sect2>
<sect2> <sect2>
<title>Overriding the Default <acronym>AML</acronym></title> <title>Overriding the Default <acronym>AML</acronym></title>
<para>The <acronym>BIOS</acronym> bytecode, known as <para>The <acronym>BIOS</acronym> bytecode, known as
<acronym>ACPI</acronym> Machine Language <acronym>ACPI</acronym> Machine Language
(<acronym>AML</acronym>), is compiled from a source language (<acronym>AML</acronym>), is compiled from a source language
called <acronym>ACPI</acronym> Source Language called <acronym>ACPI</acronym> Source Language
(<acronym>ASL</acronym>). The <acronym>AML</acronym> is (<acronym>ASL</acronym>). The <acronym>AML</acronym> is
found in the table known as the Differentiated System found in the table known as the Differentiated System
Description Table (<acronym>DSDT</acronym>).</para> Description Table (<acronym>DSDT</acronym>).</para>
<indexterm> <indexterm>
<primary><acronym>ACPI</acronym></primary> <primary><acronym>ACPI</acronym></primary>
<secondary><acronym>ASL</acronym></secondary> <secondary><acronym>ASL</acronym></secondary>
</indexterm> </indexterm>
<para>The goal of &os; is for everyone to have working <para>The goal of &os; is for everyone to have working
<acronym>ACPI</acronym> without any user intervention. <acronym>ACPI</acronym> without any user intervention.
Workarounds are still being developed for common Workarounds are still being developed for common mistakes made
mistakes made by <acronym>BIOS</acronym> vendors. The by <acronym>BIOS</acronym> vendors. The &microsoft;
&microsoft; interpreter (<filename>acpi.sys</filename> and interpreter (<filename>acpi.sys</filename> and
<filename>acpiec.sys</filename>) does not strictly check for <filename>acpiec.sys</filename>) does not strictly check for
adherence to the standard, and thus many adherence to the standard, and thus many
<acronym>BIOS</acronym> vendors who only test <acronym>BIOS</acronym> vendors who only test
@ -3234,53 +3235,54 @@ hw.acpi.s4bios: 0</screen>
<acronym>ASL</acronym>. &os; developers continue to identify <acronym>ASL</acronym>. &os; developers continue to identify
and document which non-standard behavior is allowed by and document which non-standard behavior is allowed by
&microsoft;'s interpreter and replicate it so that &os; can &microsoft;'s interpreter and replicate it so that &os; can
work without forcing users to fix the <acronym>ASL</acronym>.</para> work without forcing users to fix the
<acronym>ASL</acronym>.</para>
<para>To help identify buggy behavior and possibly fix it manually, a copy can be <para>To help identify buggy behavior and possibly fix it
made of the system's manually, a copy can be made of the system's
<acronym>ASL</acronym>. To copy the system's <acronym>ASL</acronym>. To copy the system's
<acronym>ASL</acronym> to a specified file name, use <acronym>ASL</acronym> to a specified file name, use
<command>acpidump</command> with <option>-t</option>, to show <command>acpidump</command> with <option>-t</option>, to show
the contents of the fixed tables, and <option>-d</option>, to the contents of the fixed tables, and <option>-d</option>, to
disassemble the <acronym>AML</acronym>:</para> disassemble the <acronym>AML</acronym>:</para>
<screen>&prompt.root; <userinput>acpidump -td > <replaceable>my.asl</replaceable></userinput></screen> <screen>&prompt.root; <userinput>acpidump -td > <replaceable>my.asl</replaceable></userinput></screen>
<para>Some <acronym>AML</acronym> versions assume the user is <para>Some <acronym>AML</acronym> versions assume the user is
running &windows;. To override this, set running &windows;. To override this, set
<literal>hw.acpi.osname=<replaceable>"Windows <literal>hw.acpi.osname=<replaceable>"Windows
2009"</replaceable></literal> in 2009"</replaceable></literal> in
<filename>/boot/loader.conf</filename>, using the most recent &windows; <filename>/boot/loader.conf</filename>, using the most recent
version listed in the <acronym>ASL</acronym>.</para> &windows; version listed in the <acronym>ASL</acronym>.</para>
<para>Other workarounds may require <para>Other workarounds may require <filename>my.asl</filename>
<filename>my.asl</filename> to be customized. If this file is edited, compile the new to be customized. If this file is edited, compile the new
<acronym>ASL</acronym> using the following command. Warnings can <acronym>ASL</acronym> using the following command. Warnings
usually be ignored, but errors are bugs that will usually can usually be ignored, but errors are bugs that will usually
prevent <acronym>ACPI</acronym> from working correctly.</para> prevent <acronym>ACPI</acronym> from working correctly.</para>
<screen>&prompt.root; <userinput>iasl -f <replaceable>my.asl</replaceable></userinput></screen> <screen>&prompt.root; <userinput>iasl -f <replaceable>my.asl</replaceable></userinput></screen>
<para>Including <option>-f</option> forces creation of <para>Including <option>-f</option> forces creation of the
the <acronym>AML</acronym>, even if there are errors during <acronym>AML</acronym>, even if there are errors during
compilation. Some errors, such as missing return compilation. Some errors, such as missing return statements,
statements, are automatically worked around by the &os; are automatically worked around by the &os;
interpreter.</para> interpreter.</para>
<para>The default output filename for <command>iasl</command> is <para>The default output filename for <command>iasl</command> is
<filename>DSDT.aml</filename>. Load this file instead of <filename>DSDT.aml</filename>. Load this file instead of the
the <acronym>BIOS</acronym>'s buggy copy, which is still <acronym>BIOS</acronym>'s buggy copy, which is still present
present in flash memory, by editing in flash memory, by editing
<filename>/boot/loader.conf</filename> as follows:</para> <filename>/boot/loader.conf</filename> as follows:</para>
<programlisting>acpi_dsdt_load="YES" <programlisting>acpi_dsdt_load="YES"
acpi_dsdt_name="/boot/DSDT.aml"</programlisting> acpi_dsdt_name="/boot/DSDT.aml"</programlisting>
<para>Be sure to copy <filename>DSDT.aml</filename> to <para>Be sure to copy <filename>DSDT.aml</filename> to
<filename>/boot</filename>, then reboot the system. If this fixes the problem, send a <filename>/boot</filename>, then reboot the system. If this
&man.diff.1; of the old and new <acronym>ASL</acronym> to fixes the problem, send a &man.diff.1; of the old and new
&a.acpi.name; so that <acronym>ASL</acronym> to &a.acpi.name; so that developers can
developers can work around the buggy behavior in work around the buggy behavior in
<filename>acpica</filename>.</para> <filename>acpica</filename>.</para>
</sect2> </sect2>
@ -3329,36 +3331,34 @@ acpi_dsdt_name="/boot/DSDT.aml"</programlisting>
<para>The <acronym>ACPI</acronym> driver has a flexible <para>The <acronym>ACPI</acronym> driver has a flexible
debugging facility. A set of subsystems and the level of debugging facility. A set of subsystems and the level of
verbosity can be specified. The subsystems to debug are verbosity can be specified. The subsystems to debug are
specified as layers and are broken down into specified as layers and are broken down into components
components (<literal>ACPI_ALL_COMPONENTS</literal>) (<literal>ACPI_ALL_COMPONENTS</literal>) and
and <acronym>ACPI</acronym> hardware support <acronym>ACPI</acronym> hardware support
(<literal>ACPI_ALL_DRIVERS</literal>). The verbosity of debugging output is (<literal>ACPI_ALL_DRIVERS</literal>). The verbosity of
specified as the level and ranges from just report errors debugging output is specified as the level and ranges from
(<literal>ACPI_LV_ERROR</literal>) to everything just report errors (<literal>ACPI_LV_ERROR</literal>) to
(<literal>ACPI_LV_VERBOSE</literal>). everything (<literal>ACPI_LV_VERBOSE</literal>). The level is
The level is a bitmask so a bitmask so multiple options can be set at once, separated by
multiple options can be set at once, separated by spaces. In spaces. In practice, a serial console should be used to log
practice, a serial console should be used to log the output the output so it is not lost as the console message buffer
so it is not lost as the console message buffer flushes. A flushes. A full list of the individual layers and levels is
full list of the individual layers and levels is found in found in &man.acpi.4;.</para>
&man.acpi.4;.</para>
<para>Debugging output is not enabled by default. To enable it, <para>Debugging output is not enabled by default. To enable it,
add <literal>options ACPI_DEBUG</literal> to the custom kernel add <literal>options ACPI_DEBUG</literal> to the custom kernel
configuration file if <acronym>ACPI</acronym> is compiled into configuration file if <acronym>ACPI</acronym> is compiled into
the kernel. Add <literal>ACPI_DEBUG=1</literal> to the kernel. Add <literal>ACPI_DEBUG=1</literal> to
<filename>/etc/make.conf</filename> to enable it globally. <filename>/etc/make.conf</filename> to enable it globally. If
If a module is used instead of a custom kernel, recompile just the a module is used instead of a custom kernel, recompile just
<filename>acpi.ko</filename> module as follows:</para> the <filename>acpi.ko</filename> module as follows:</para>
<screen>&prompt.root; <userinput>cd /sys/modules/acpi/acpi &amp;&amp; make clean &amp;&amp; make ACPI_DEBUG=1</userinput></screen> <screen>&prompt.root; <userinput>cd /sys/modules/acpi/acpi &amp;&amp; make clean &amp;&amp; make ACPI_DEBUG=1</userinput></screen>
<para>Copy the compiled <filename>acpi.ko</filename> to <para>Copy the compiled <filename>acpi.ko</filename> to
<filename>/boot/kernel</filename> and add the desired level <filename>/boot/kernel</filename> and add the desired level
and layer to <filename>/boot/loader.conf</filename>. The entries in this and layer to <filename>/boot/loader.conf</filename>. The
example enable debug messages for all <acronym>ACPI</acronym> entries in this example enable debug messages for all
components and <acronym>ACPI</acronym> components and hardware drivers and
hardware drivers and
output error messages at the least verbose level:</para> output error messages at the least verbose level:</para>
<programlisting>debug.acpi.layer="ACPI_ALL_COMPONENTS ACPI_ALL_DRIVERS" <programlisting>debug.acpi.layer="ACPI_ALL_COMPONENTS ACPI_ALL_DRIVERS"
@ -3367,10 +3367,10 @@ debug.acpi.level="ACPI_LV_ERROR"</programlisting>
<para>If the required information is triggered by a specific <para>If the required information is triggered by a specific
event, such as a suspend and then resume, do not modify event, such as a suspend and then resume, do not modify
<filename>/boot/loader.conf</filename>. Instead, use <filename>/boot/loader.conf</filename>. Instead, use
<command>sysctl</command> to specify the layer and level after booting <command>sysctl</command> to specify the layer and level after
and preparing the system for the specific event. The booting and preparing the system for the specific event. The
variables which can be set using <command>sysctl</command> are named variables which can be set using <command>sysctl</command> are
the same as the tunables in named the same as the tunables in
<filename>/boot/loader.conf</filename>.</para> <filename>/boot/loader.conf</filename>.</para>
<indexterm> <indexterm>
@ -3378,15 +3378,16 @@ debug.acpi.level="ACPI_LV_ERROR"</programlisting>
<secondary>problems</secondary> <secondary>problems</secondary>
</indexterm> </indexterm>
<para>Once the debugging information is gathered, it can be <para>Once the debugging information is gathered, it can be sent
sent to &a.acpi.name; so that it can be used by the &os; to &a.acpi.name; so that it can be used by the &os;
<acronym>ACPI</acronym> maintainers to identify the root cause <acronym>ACPI</acronym> maintainers to identify the root cause
of the problem and to develop a solution.</para> of the problem and to develop a solution.</para>
<note> <note>
<para>Before submitting debugging information to this mailing list, ensure the latest <para>Before submitting debugging information to this mailing
<acronym>BIOS</acronym> version is installed and, if list, ensure the latest <acronym>BIOS</acronym> version is
available, the embedded controller firmware version.</para> installed and, if available, the embedded controller
firmware version.</para>
</note> </note>
<para>When submitting a problem report, include the following <para>When submitting a problem report, include the following
@ -3409,7 +3410,8 @@ debug.acpi.level="ACPI_LV_ERROR"</programlisting>
<listitem> <listitem>
<para>The <command>dmesg</command> output from <command>boot <para>The <command>dmesg</command> output from <command>boot
-v</command> with <acronym>ACPI</acronym> disabled, -v</command> with <acronym>ACPI</acronym> disabled,
if disabling <acronym>ACPI</acronym> helps to fix the problem.</para> if disabling <acronym>ACPI</acronym> helps to fix the
problem.</para>
</listitem> </listitem>
<listitem> <listitem>
@ -3419,8 +3421,7 @@ debug.acpi.level="ACPI_LV_ERROR"</programlisting>
<listitem> <listitem>
<para>The <acronym>URL</acronym> to a pasted version of the <para>The <acronym>URL</acronym> to a pasted version of the
system's system's <acronym>ASL</acronym>. Do
<acronym>ASL</acronym>. Do
<emphasis>not</emphasis> send the <acronym>ASL</acronym> <emphasis>not</emphasis> send the <acronym>ASL</acronym>
directly to the list as it can be very large. Generate a directly to the list as it can be very large. Generate a
copy of the <acronym>ASL</acronym> by running this copy of the <acronym>ASL</acronym> by running this
@ -3454,7 +3455,8 @@ debug.acpi.level="ACPI_LV_ERROR"</programlisting>
<itemizedlist> <itemizedlist>
<listitem> <listitem>
<para>The &os; <acronym>ACPI</acronym> Mailing List Archives (<uri <para>The &os; <acronym>ACPI</acronym> Mailing List Archives
(<uri
xlink:href="http://lists.freebsd.org/pipermail/freebsd-acpi/">http://lists.freebsd.org/pipermail/freebsd-acpi/</uri>)</para> xlink:href="http://lists.freebsd.org/pipermail/freebsd-acpi/">http://lists.freebsd.org/pipermail/freebsd-acpi/</uri>)</para>
</listitem> </listitem>