Merge the following from the English version:
(new) -> 1.1 Makefile 1.132 -> 1.142 chapter.sgml Obtained from: The FreeBSD Russian Documentation Project
This commit is contained in:
parent
f74a824c21
commit
77e37e759f
Notes:
svn2git
2020-12-08 03:00:23 +00:00
svn path=/head/; revision=20473
2 changed files with 553 additions and 31 deletions
ru_RU.KOI8-R/books/handbook/config
17
ru_RU.KOI8-R/books/handbook/config/Makefile
Normal file
17
ru_RU.KOI8-R/books/handbook/config/Makefile
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
#
|
||||||
|
# Build the Handbook with just the content from this chapter.
|
||||||
|
#
|
||||||
|
# $FreeBSD$
|
||||||
|
# $FreeBSDru: frdp/doc/ru_RU.KOI8-R/books/handbook/config/Makefile,v 1.1 2001/10/23 11:38:52 phantom Exp $
|
||||||
|
# Original revision: 1.1
|
||||||
|
#
|
||||||
|
|
||||||
|
CHAPTERS= config/chapter.sgml
|
||||||
|
|
||||||
|
VPATH= ..
|
||||||
|
|
||||||
|
MASTERDOC= ${.CURDIR}/../${DOC}.${DOCBOOKSUFFIX}
|
||||||
|
|
||||||
|
DOC_PREFIX?= ${.CURDIR}/../../../..
|
||||||
|
|
||||||
|
.include "../Makefile"
|
|
@ -2,9 +2,9 @@
|
||||||
The FreeBSD Documentation Project
|
The FreeBSD Documentation Project
|
||||||
|
|
||||||
$FreeBSD$
|
$FreeBSD$
|
||||||
$FreeBSDru: frdp/doc/ru_RU.KOI8-R/books/handbook/config/chapter.sgml,v 1.12 2004/01/19 12:08:24 den Exp $
|
$FreeBSDru: frdp/doc/ru_RU.KOI8-R/books/handbook/config/chapter.sgml,v 1.16 2004/04/02 10:52:45 den Exp $
|
||||||
|
|
||||||
Original revision: 1.132
|
Original revision: 1.142
|
||||||
-->
|
-->
|
||||||
|
|
||||||
<chapter id="config-tuning">
|
<chapter id="config-tuning">
|
||||||
|
@ -274,7 +274,7 @@
|
||||||
</sect1>
|
</sect1>
|
||||||
|
|
||||||
<sect1 id="configtuning-appconfig">
|
<sect1 id="configtuning-appconfig">
|
||||||
<title>Настройка Приложений</title>
|
<title>Настройка приложений</title>
|
||||||
|
|
||||||
<para>Обычно, установленные приложения имеют свои конфигурационные файлы,
|
<para>Обычно, установленные приложения имеют свои конфигурационные файлы,
|
||||||
со своим собственным синтаксисом. Важно хранить эти файлы отдельно от
|
со своим собственным синтаксисом. Важно хранить эти файлы отдельно от
|
||||||
|
@ -504,7 +504,7 @@ HOME=/var/log
|
||||||
соответствующая команда <command>atrun</command> вызывается
|
соответствующая команда <command>atrun</command> вызывается
|
||||||
под пользователем <username>root</username> каждые пять минут
|
под пользователем <username>root</username> каждые пять минут
|
||||||
независимо от дня или месяца. За дополнительной информацией по
|
независимо от дня или месяца. За дополнительной информацией по
|
||||||
<command>atrun</command> обращайтесь к странице справочника
|
команде <command>atrun</command> обращайтесь к странице справочника
|
||||||
&man.atrun.8;.</para>
|
&man.atrun.8;.</para>
|
||||||
|
|
||||||
<para>Команды могут принимать любое количество параметров; однако
|
<para>Команды могут принимать любое количество параметров; однако
|
||||||
|
@ -610,7 +610,7 @@ HOME=/var/log
|
||||||
$sshd_enable=YES</screen>
|
$sshd_enable=YES</screen>
|
||||||
|
|
||||||
<note>
|
<note>
|
||||||
<para>Вторая строка (<literal># sshd</literal>) это вывод команды
|
<para>Вторая строка (<literal># sshd</literal>) это вывод
|
||||||
команды <command>sshd</command>, а не консоль
|
команды <command>sshd</command>, а не консоль
|
||||||
<username>root</username>.</para>
|
<username>root</username>.</para>
|
||||||
</note>
|
</note>
|
||||||
|
@ -654,17 +654,17 @@ sshd is running as pid 433.</screen>
|
||||||
|
|
||||||
<itemizedlist>
|
<itemizedlist>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>PROVIDE: Задает имя сервиса, предоставляемого этим файлом.</para>
|
<para><literal>PROVIDE</literal>: Задает имя сервиса, предоставляемого этим файлом.</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>REQUIRE: Список сервисов, необходимых этому сервису. Этот
|
<para><literal>REQUIRE</literal>: Список сервисов, необходимых этому сервису. Этот
|
||||||
файл будет запущен <emphasis>после</emphasis> указанных
|
файл будет запущен <emphasis>после</emphasis> указанных
|
||||||
сервисов.</para>
|
сервисов.</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>BEFORE: Список сервисов, зависящих от этого сервиса. Этот
|
<para><literal>BEFORE</literal>: Список сервисов, зависящих от этого сервиса. Этот
|
||||||
файл будет запущен <emphasis>до</emphasis> указанных
|
файл будет запущен <emphasis>до</emphasis> указанных
|
||||||
сервисов.</para>
|
сервисов.</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
@ -1463,7 +1463,7 @@ device_probe_and_attach: cbb0 attach returned 12</screen>
|
||||||
<para>Ситуации, похожие на эту, требуют изменения некоторых значений
|
<para>Ситуации, похожие на эту, требуют изменения некоторых значений
|
||||||
&man.sysctl.8;, модификация которых запрещена. Для разрешения этой
|
&man.sysctl.8;, модификация которых запрещена. Для разрешения этой
|
||||||
ситуации пользователь может поместить &man.sysctl.8; <quote>OID</quote>
|
ситуации пользователь может поместить &man.sysctl.8; <quote>OID</quote>
|
||||||
в файл <filename>/boot/loader.conf.local</filename>. Значения по
|
в файл <filename>/boot/loader.conf</filename>. Значения по
|
||||||
умолчанию хранятся в файле
|
умолчанию хранятся в файле
|
||||||
<filename>/boot/defaults/loader.conf</filename>.</para>
|
<filename>/boot/defaults/loader.conf</filename>.</para>
|
||||||
|
|
||||||
|
@ -2267,33 +2267,538 @@ device_probe_and_attach: cbb0 attach returned 12</screen>
|
||||||
<para>Доступны и другие параметры. Обратитесь к странице справочника
|
<para>Доступны и другие параметры. Обратитесь к странице справочника
|
||||||
&man.acpiconf.8; за дополнительной информацией.</para>
|
&man.acpiconf.8; за дополнительной информацией.</para>
|
||||||
</sect2>
|
</sect2>
|
||||||
|
</sect1>
|
||||||
|
|
||||||
<sect2 id="acpi-debug">
|
<sect1 id="ACPI-debug">
|
||||||
<title>Отладка и отключение <acronym>ACPI</acronym></title>
|
<sect1info>
|
||||||
|
<authorgroup>
|
||||||
|
<author>
|
||||||
|
<firstname>Nate</firstname>
|
||||||
|
<surname>Lawson</surname>
|
||||||
|
<contrib>Написал </contrib>
|
||||||
|
</author>
|
||||||
|
</authorgroup>
|
||||||
|
<authorgroup>
|
||||||
|
<author>
|
||||||
|
<firstname>Peter</firstname>
|
||||||
|
<surname>Schultz</surname>
|
||||||
|
<contrib>При помощи </contrib>
|
||||||
|
</author>
|
||||||
|
</authorgroup>
|
||||||
|
<authorgroup>
|
||||||
|
<author>
|
||||||
|
<firstname>Tom</firstname>
|
||||||
|
<surname>Rhodes</surname>
|
||||||
|
<contrib>и </contrib>
|
||||||
|
</author>
|
||||||
|
</authorgroup>
|
||||||
|
</sect1info>
|
||||||
|
|
||||||
<para>Почти все в <acronym>ACPI</acronym> прозрачно, пока не начинаются
|
<title>Использование и отладка &os; <acronym>ACPI</acronym></title>
|
||||||
проблемы. Это обычно случается, когда пользователь узнает, что
|
|
||||||
что-то работает неправильно. Драйвер &man.acpi.4; поддерживает
|
|
||||||
много параметров отладки, можно даже выборочно отключить некоторые
|
|
||||||
части системы <acronym>ACPI</acronym>. За более подробной информацией
|
|
||||||
о средствах отладки обратитесь к странице справочника
|
|
||||||
&man.acpi.4;.</para>
|
|
||||||
|
|
||||||
<para>Иногда по различным причинам необходимо выгрузить модуль
|
<para><acronym>ACPI</acronym> это фундаментально новый способ
|
||||||
<filename>acpi.ko</filename>. Это можно сделать только во
|
обнаружения устройств, управления энергопотреблением и предоставления
|
||||||
время загрузки через &man.loader.8;. Вы можете набирать
|
стандартизированного доступа к различному оборудованию, ранее
|
||||||
<command>unset acpi_load</command> в приглашении
|
ранее управлявшемуся <acronym>BIOS</acronym>. Был достигнут
|
||||||
&man.loader.8; при каждом старте системы, или отменить
|
определенный прогресс в приспособлении <acronym>ACPI</acronym>
|
||||||
автозагрузку драйвера &man.acpi.4;, добавив в
|
к работе со всеми системами, но все еще встречаются ошибки
|
||||||
<filename>/boot/loader.conf</filename> следующую строку:</para>
|
в байткоде <acronym>AML</acronym> некоторых материнских плат,
|
||||||
|
незавершенные участки кода в подсистемах ядра &os; и ошибки в
|
||||||
|
интерпретаторе <acronym>ACPI-CA</acronym>.</para>
|
||||||
|
|
||||||
<programlisting>exec="unset acpi_load"</programlisting>
|
<para>Этот раздел предназначен для того, чтобы упростить ваше
|
||||||
|
содействие разработчикам &os; <acronym>ACPI</acronym> в
|
||||||
|
определении причин наблюдаемых вами проблем, выполнении отладки
|
||||||
|
и выработке решения. Спасибо за помощь и надеемся, что мы сможем
|
||||||
|
помочь в решении проблем вашей системы.</para>
|
||||||
|
|
||||||
<para>&os; 5.1-RELEASE и более новые поставляются с меню,
|
<sect2 id="ACPI-submitdebug">
|
||||||
управляющим загрузкой &os;. Один из предоставляемых параметров,
|
<title>Отправка отладочной информации</title>
|
||||||
это отключение <acronym>ACPI</acronym>. Для отключения
|
|
||||||
<acronym>ACPI</acronym> просто выберите в меню
|
<para>Те из вас, кто желает составить сообщение о проблеме прямо
|
||||||
<guimenuitem>2. Boot &os; with ACPI disabled</guimenuitem>.</para>
|
сейчас, могут воспользоваться адресом
|
||||||
|
<ulink url="mailto:acpi-jp@jp.freebsd.org">
|
||||||
|
acpi-jp@jp.freebsd.org</ulink>, отправив на него следующую
|
||||||
|
информацию:</para>
|
||||||
|
|
||||||
|
<itemizedlist>
|
||||||
|
<listitem>
|
||||||
|
<para>Описание неправильного поведения, включая тип системы, модель
|
||||||
|
и все, что приводит к появлению ошибки. Кроме того, сообщите
|
||||||
|
настолько точно, насколько возможно, когда появилась ошибка,
|
||||||
|
если ранее вы ее не видели.</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>Вывод dmesg после <quote>boot
|
||||||
|
<option>-v</option></quote>, включая все сообщения, появившиеся
|
||||||
|
при изучении ошибки.</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>Вывод dmesg после <quote>boot
|
||||||
|
<option>-v</option></quote> с выключенным <acronym>ACPI</acronym>,
|
||||||
|
если его отключение помогает решить проблему.</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>Вывод <quote>sysctl hw.acpi</quote>. Это также хороший
|
||||||
|
способ получения списка возможностей системы.</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para><acronym>URL</acronym> где можно найти ваш
|
||||||
|
<acronym>ASL</acronym>. <emphasis>Не</emphasis> отправляйте
|
||||||
|
<acronym>ASL</acronym> непосредственно в список рассылки,
|
||||||
|
поскольку он может быть очень большим. Копия
|
||||||
|
<acronym>ASL</acronym> может быть создана командой:</para>
|
||||||
|
|
||||||
|
<screen>&prompt.root; <userinput>acpidump -t -d > $NAME-$SYSTEM.asl</userinput></screen>
|
||||||
|
|
||||||
|
<para>(Замените вашим логином
|
||||||
|
<filename>$NAME</filename> и производителем/моделью
|
||||||
|
<filename>$SYSTEM</filename>. Пример:
|
||||||
|
<filename>njl-FooCo6000.asl</filename>)</para>
|
||||||
|
</listitem>
|
||||||
|
</itemizedlist>
|
||||||
|
|
||||||
|
<para>Большинство разработчиков читают список рассылки freebsd-current,
|
||||||
|
но для уверенности, что проблему увидят, отправьте ее в
|
||||||
|
acpi-jp. Будьте терпеливы, все мы заняты полный рабочий день где-то
|
||||||
|
еще. Если ваше сообщение не заметили сразу, мы возможно
|
||||||
|
попросим вас отправить <acronym>PR</acronym> (сообщение о проблеме)
|
||||||
|
через &man.send-pr.1;. При вводе <acronym>PR</acronym>,
|
||||||
|
включайте ту же информацию, что запрошена выше. Это поможет
|
||||||
|
нам отследить проблему и решить ее. Не отправляйте
|
||||||
|
<acronym>PR</acronym> без предварительной отправки письма в
|
||||||
|
acpi-jp, поскольку мы используем <acronym>PR</acronym> в качестве
|
||||||
|
напоминаний о существующих проблемах, а не как механизм сообщений
|
||||||
|
об ошибках. Вероятно, о вашей проблеме кто-то уже сообщал
|
||||||
|
ранее.</para>
|
||||||
|
</sect2>
|
||||||
|
|
||||||
|
<sect2 id="ACPI-background">
|
||||||
|
<title>Общие сведения</title>
|
||||||
|
|
||||||
|
<para><acronym>ACPI</acronym> представлен во всех современных
|
||||||
|
компьютерах, соответствующих архитектурам ia32 (x86),
|
||||||
|
ia64 (Itanium) и amd64 (AMD). Полный стандарт включает множество
|
||||||
|
возможностей, в том числе управление производительностью
|
||||||
|
<acronym>CPU</acronym>, уровнем питания, температурой,
|
||||||
|
различными системами аккумуляторов, встроенными контроллерами
|
||||||
|
и опросом шины. В большинстве систем стандарт реализован не
|
||||||
|
полностью. Например, настольные системы обычно реализуют только
|
||||||
|
опрос шины, а портативные компьютеры кроме того могут поддерживать
|
||||||
|
управление охлаждением и энергопотреблением. Они также поддерживают
|
||||||
|
приостановку и последующий запуск системы различного уровня
|
||||||
|
сложности.</para>
|
||||||
|
|
||||||
|
<para><acronym>ACPI</acronym>-совместимые системы состоят из
|
||||||
|
различных компонентов. Производители <acronym>BIOS</acronym>
|
||||||
|
и чипсетов предоставляют различные жестко заданные таблицы,
|
||||||
|
(например, <acronym>FADT</acronym>), которые определяют
|
||||||
|
функции вроде карты <acronym>APIC</acronym> (используется для
|
||||||
|
<acronym>SMP</acronym>), регистры настройки и простые
|
||||||
|
значения параметров. Кроме того, предоставляется таблица
|
||||||
|
байткода (<acronym>DSDT</acronym>), определяющая древоподобное
|
||||||
|
пространство имен устройств и методов.</para>
|
||||||
|
|
||||||
|
<para>Драйвер <acronym>ACPI</acronym> должен прочесть заданные
|
||||||
|
таблицы, реализовать интерпретатор для байткода, модифицировать
|
||||||
|
драйвера устройств и ядро для приема информации от подсистемы
|
||||||
|
<acronym>ACPI</acronym>. Для &os;, Intel предоставила
|
||||||
|
интерпретатор (<acronym>ACPI-CA</acronym>), тот же что для
|
||||||
|
Linux и NetBSD. Исходный код <acronym>ACPI-CA</acronym>
|
||||||
|
находится в каталоге
|
||||||
|
<filename role="directory">src/sys/contrib/dev/acpica</filename>.
|
||||||
|
Код для приспособления <acronym>ACPI-CA</acronym> к работе в
|
||||||
|
&os;, находится в <filename>src/sys/dev/acpica/Osd</filename>.
|
||||||
|
Наконец, драйвера, реализующие различные <acronym>ACPI</acronym>
|
||||||
|
устройства, находятся в
|
||||||
|
<filename role="directory">src/sys/dev/acpica</filename>.</para>
|
||||||
|
</sect2>
|
||||||
|
|
||||||
|
<sect2 id="ACPI-comprob">
|
||||||
|
<title>Часто встречающиеся проблемы</title>
|
||||||
|
|
||||||
|
<para>Для правильной работы <acronym>ACPI</acronym> все ее части должны
|
||||||
|
работать правильно. Вот некоторые часто встречающиеся проблемы, в порядке
|
||||||
|
частоты появления, и некоторые обходные пути или исправления.</para>
|
||||||
|
|
||||||
|
<sect3>
|
||||||
|
<title>Приостановка/возобновление работы</title>
|
||||||
|
|
||||||
|
<para><acronym>ACPI</acronym> поддерживает три состояния приостановки в
|
||||||
|
<acronym>RAM</acronym> (<acronym>STR</acronym>),
|
||||||
|
<literal>S1</literal>-<literal>S3</literal>, и одно состояние
|
||||||
|
приостановки на диск (<literal>STD</literal>), называемое
|
||||||
|
<literal>S4</literal>. <literal>S5</literal> это
|
||||||
|
<quote>мягкое выключение</quote> и это нормальное состояние системы,
|
||||||
|
когда она подключена к сети, но не включена. <literal>S4</literal>
|
||||||
|
может быть реализован двумя различными путями.
|
||||||
|
<literal>S4</literal><acronym>BIOS</acronym> это
|
||||||
|
<acronym>BIOS</acronym>-поддерживаемая приостановка на диск.
|
||||||
|
<literal>S4</literal><acronym>OS</acronym> реализуется полностью
|
||||||
|
операционной системой.</para>
|
||||||
|
|
||||||
|
<para>Начните с проверки переменных <command>sysctl</command>
|
||||||
|
<option>hw.acpi</option>, относящихся к приостановке (suspend).
|
||||||
|
Вот результат для моего Thinkpad:</para>
|
||||||
|
|
||||||
|
<screen>hw.acpi.supported_sleep_state: S3 S4 S5</screen>
|
||||||
|
<screen>hw.acpi.s4bios: 0</screen>
|
||||||
|
|
||||||
|
<para>Это означает, что я могу использовать <quote>acpiconf
|
||||||
|
<option>-s</option></quote> для тестирования <literal>S3</literal>,
|
||||||
|
<literal>S4</literal><acronym>OS</acronym>, и
|
||||||
|
<literal>S5</literal>. Если <option>s4bios</option> был единицей
|
||||||
|
(1), это означает поддержку
|
||||||
|
<literal>S4</literal><acronym>BIOS</acronym> вместо
|
||||||
|
<literal>S4</literal><acronym>OS</acronym>.</para>
|
||||||
|
|
||||||
|
<para>При тестировании приостановки/возобновления работы, начните
|
||||||
|
с <literal>S1</literal>, если этот режим поддерживается.
|
||||||
|
Это состояние скорее всего поддерживается, поскольку не требует
|
||||||
|
слишком серьезной поддержки со стороны драйвера. Никто не
|
||||||
|
реализовал <literal>S2</literal>, который похож на
|
||||||
|
<literal>S1</literal>. Следующий режим для тестирования это
|
||||||
|
<literal>S3</literal>. Это наиболее глубокое <acronym>STR</acronym>
|
||||||
|
состояние, оно требует существенной поддержки со стороны
|
||||||
|
драйвера, чтобы правильно реинициализировать оборудование.
|
||||||
|
Если у вас возникли проблемы при выходе из этого состояния,
|
||||||
|
отправьте письмо в рассылку acpi-jp, но не ждите, что
|
||||||
|
проблема будет обязательно решена, поскольку существует
|
||||||
|
множество драйверов/оборудования, нуждающихся в дальнейшем
|
||||||
|
тестировании и разработке.</para>
|
||||||
|
|
||||||
|
<para>Для изоляции проблемы удалите из ядра столько драйверов,
|
||||||
|
сколько возможно. Если это работает, вы можете выяснить,
|
||||||
|
какой драйвер вызывает проблему путем загрузки драйверов
|
||||||
|
до тех пор, пока опять не произойдет сбой. Обычно бинарные
|
||||||
|
драйвера, такие как <filename>nvidia.ko</filename>,
|
||||||
|
драйвера дисплея <application>X11</application> и
|
||||||
|
<acronym>USB</acronym> вызывают большинство проблем, а драйвера
|
||||||
|
Ethernet интерфейсов как правило работают отлично. Если вы
|
||||||
|
можете нормально загрузить/выгрузить драйвера, автоматизируйте
|
||||||
|
этот процесс, поместив соответствующие команды в
|
||||||
|
<filename>/etc/rc.suspend</filename> и
|
||||||
|
<filename>/etc/rc.resume</filename>. Это закомментированные
|
||||||
|
примеры выгрузки и загрузки драйверов. Попробуйте
|
||||||
|
установить параметр <option>hw.acpi.reset_video</option>
|
||||||
|
в нуль (0), если ваш дисплей не включается после возобновления
|
||||||
|
работы. Попробуйте установить большие или меньшие значения
|
||||||
|
для <option>hw.acpi.sleep_delay</option>, чтобы проверить,
|
||||||
|
поможет ли это.</para>
|
||||||
|
|
||||||
|
<para>Другой способ, который можно попробовать, это запуск
|
||||||
|
последнего дистрибутива Linux с поддержкой
|
||||||
|
<acronym>ACPI</acronym> и протестировать поддержку
|
||||||
|
остановки/возобновления работы на том же оборудовании.
|
||||||
|
Если она работает на Linux, проблема скорее всего в
|
||||||
|
драйверах &os; и поиск драйвера, вызывающего проблему,
|
||||||
|
поможет разрешить ситуацию. Имейте ввиду, что разработчики
|
||||||
|
<acronym>ACPI</acronym> обычно не поддерживают другие
|
||||||
|
драйверы (звук, <acronym>ATA</acronym>, и т.п.), так что
|
||||||
|
все результаты работы по поиску проблемы возможно необходимо
|
||||||
|
отправить в список рассылки freebsd-current и человеку,
|
||||||
|
поддерживающему драйвер. Если вы решитесь заняться
|
||||||
|
отладкой, поместите соответствующий код (&man.printf.3;)
|
||||||
|
в вызывающий проблему драйвер для обнаружения места, где
|
||||||
|
прерывается функция восстановления.</para>
|
||||||
|
|
||||||
|
<para>Наконец, попробуйте отключить <acronym>ACPI</acronym> и
|
||||||
|
включить <acronym>APM</acronym>. Если приостановка/возобновление
|
||||||
|
работает с <acronym>APM</acronym>, вам возможно лучше подойдет
|
||||||
|
<acronym>APM</acronym>, особенно на старом оборудовании (до
|
||||||
|
2000). Включение корректной поддержки <acronym>ACPI</acronym>
|
||||||
|
поставщиками оборудования требует времени и вероятно в старом
|
||||||
|
оборудовании поддержка <acronym>ACPI</acronym> в
|
||||||
|
<acronym>BIOS</acronym> была некорректна.</para>
|
||||||
|
</sect3>
|
||||||
|
|
||||||
|
<sect3>
|
||||||
|
<title>Система останавливается (временно или постоянно)</title>
|
||||||
|
|
||||||
|
<para>Большинство систем останавливаются в результате потери
|
||||||
|
прерываний или <quote>шторма</quote> прерываний. В чипсетах
|
||||||
|
существует много проблем, связанных с тем, как
|
||||||
|
<acronym>BIOS</acronym> настраивает прерывания перед загрузкой,
|
||||||
|
правильностью таблицы <acronym>APIC</acronym>
|
||||||
|
(<acronym>MADT</acronym>), и маршрутизации
|
||||||
|
<acronym>SCI</acronym>.</para>
|
||||||
|
|
||||||
|
<para><quote>Шторм</quote> прерываний может быть обнаружен по
|
||||||
|
потерянным прерываниям путем проверки вывода строки с
|
||||||
|
<quote>acpi0</quote> команды <command>vmstat</command>
|
||||||
|
<option>-i</option>. Если счетчик увеличивается более, чем
|
||||||
|
несколько раз в секунду, это <quote>шторм</quote> прерываний.
|
||||||
|
Если система останавливается, попробуйте войти в
|
||||||
|
<acronym>DDB</acronym>
|
||||||
|
(<keycombo action="simul"><keycap>CTRL</keycap>
|
||||||
|
<keycap>ALT</keycap><keycap>ESC</keycap></keycombo> на
|
||||||
|
консоли) и ввести <option>show interrupts</option>.</para>
|
||||||
|
|
||||||
|
<para>Наиболее надежный способ избавиться от проблемы с прерываниями,
|
||||||
|
это отключение поддержки <acronym>APIC</acronym> с помощью
|
||||||
|
параметра <filename>loader.conf</filename>
|
||||||
|
<option>hint.apic.0.disabled=</option><quote>1</quote>.</para>
|
||||||
|
</sect3>
|
||||||
|
|
||||||
|
<sect3>
|
||||||
|
<title>Паника</title>
|
||||||
|
|
||||||
|
<para>Паника, связанная с <acronym>ACPI</acronym>, случается довольно
|
||||||
|
редко и имеет наибольший приоритет исправления. Первый шаг
|
||||||
|
это изоляция действий, приводящих к панике (если это возможно)
|
||||||
|
и получение отладки. Следуйте инструкции по включению
|
||||||
|
<option>options DDB</option> и настройке последовательной консоли
|
||||||
|
или настройке раздела &man.dump.8;. Вы можете получить отладочную
|
||||||
|
информацию <acronym>DDB</acronym> с помощью <option>tr</option>.
|
||||||
|
Если вы записываете отладку вручную, убедитесь, что переписали
|
||||||
|
как минимум пять (5) строк снизу и пять (5) строк сверху.</para>
|
||||||
|
|
||||||
|
<para>Затем попробуйте изолировать проблему, загрузившись с
|
||||||
|
выключенным <acronym>ACPI</acronym>. Если это работает, вы можете
|
||||||
|
изолировать подсистему <acronym>ACPI</acronym>, используя
|
||||||
|
различные параметры <option>debug.acpi.disable</option>.
|
||||||
|
Обратитесь к странице справочника &man.acpi.4; за примерами.</para>
|
||||||
|
</sect3>
|
||||||
|
|
||||||
|
<sect3>
|
||||||
|
<title>Система включается после приостановки или завершения
|
||||||
|
работы</title>
|
||||||
|
|
||||||
|
<para>Во-первых, попробуйте установить в &man.loader.conf.5; параметр
|
||||||
|
<option>hw.acpi.disable_on_poweroff=</option><quote>0</quote>.
|
||||||
|
Это предотвращает отключение различных событий в
|
||||||
|
<acronym>ACPI</acronym> во время завершения работы.
|
||||||
|
В некоторых системах этот параметр необходимо установить
|
||||||
|
в <quote>1</quote> (по умолчанию) по тем же причинам. Обычно это
|
||||||
|
решает проблему, если система неожиданно включается после
|
||||||
|
приостановки или отключения питания.</para>
|
||||||
|
</sect3>
|
||||||
|
|
||||||
|
<sect3>
|
||||||
|
<title>Другие проблемы</title>
|
||||||
|
|
||||||
|
<para>Если вы наблюдаете другие проблемы с <acronym>ACPI</acronym>
|
||||||
|
(работа с внешним оборудованием, проблемы с обнаружением устройств,
|
||||||
|
и т.д.), отправьте описание проблемы в список рассылки;
|
||||||
|
однако, некоторые из этих проблем могут относиться к незавершенным
|
||||||
|
частям подсистемы <acronym>ACPI</acronym>, поэтому может
|
||||||
|
потребоваться время на их реализацию. Будьте терпеливы, и
|
||||||
|
подготовьтесь к тестированию исправлений, которые мы можем вам
|
||||||
|
выслать.</para>
|
||||||
|
</sect3>
|
||||||
|
</sect2>
|
||||||
|
|
||||||
|
<sect2 id="ACPI-aslanddump">
|
||||||
|
<title><acronym>ASL</acronym>, <command>acpidump</command>, и
|
||||||
|
<acronym>IASL</acronym></title>
|
||||||
|
|
||||||
|
<para>Наиболее часто встречается проблема, связанная с предоставлением
|
||||||
|
поставщиками <acronym>BIOS</acronym> некорректного (или полностью
|
||||||
|
ошибочного!) байткода. Это обычно проявляется появлением
|
||||||
|
консольных сообщений ядра, подобных этому:</para>
|
||||||
|
|
||||||
|
<screen>ACPI-1287: *** Error: Method execution failed [\\_SB_.PCI0.LPC0.FIGD._STA] (Node 0xc3f6d160), AE_NOT_FOUND</screen>
|
||||||
|
|
||||||
|
<para>Зачастую вы можете разрешить эти проблемы путем обновления
|
||||||
|
<acronym>BIOS</acronym> до последней ревизии. Большинство консольных
|
||||||
|
сообщений безвредны, но если существуют другие проблемы, такие как
|
||||||
|
не работающий статус батареи, возможно существуют проблемы в
|
||||||
|
<acronym>AML</acronym>. Байткод, известный как
|
||||||
|
<acronym>AML</acronym>, компилируется из исходного текста на
|
||||||
|
языке <acronym>ASL</acronym>. <acronym>AML</acronym> находится
|
||||||
|
в таблице, известной как <acronym>DSDT</acronym>. Для получения
|
||||||
|
копии <acronym>ASL</acronym>, используйте &man.acpidump.8;.
|
||||||
|
Вы можете использовать оба параметра <option>-t</option>
|
||||||
|
(показывать содержимое постоянных таблиц) и <option>-d</option>
|
||||||
|
(дизассемблировать <acronym>AML</acronym> в <acronym>ASL</acronym>).
|
||||||
|
Обратитесь к разделу <link linkend="ACPI-submitdebug">Отправка
|
||||||
|
отладочной информации</link> за примером синтаксиса.</para>
|
||||||
|
|
||||||
|
<para>Простейшая первая проверка, которую вы можете провести,
|
||||||
|
это перекомпиляция <acronym>ASL</acronym> для поиска ошибок.
|
||||||
|
Предупреждения обычно могут быть проигнорированы, но ошибки
|
||||||
|
обычно не позволяют <acronym>ACPI</acronym> работать правильно.
|
||||||
|
Для перекомпиляции <acronym>ASL</acronym>, выполните следующую
|
||||||
|
команду:</para>
|
||||||
|
|
||||||
|
<screen>&prompt.root; <userinput>iasl your.asl</userinput></screen>
|
||||||
|
</sect2>
|
||||||
|
|
||||||
|
<sect2 id="ACPI-fixasl">
|
||||||
|
<title>Исправление <acronym>ASL</acronym></title>
|
||||||
|
|
||||||
|
<para>В дальней перспективе, наша задача состоит в том, чтобы
|
||||||
|
обеспечить поддержку <acronym>ACPI</acronym> практически для
|
||||||
|
каждой системы без вмешательства пользователя. Однако, на данный
|
||||||
|
момент мы все еще разрабатываем обходные пути для ошибок,
|
||||||
|
которые часто делают поставщики <acronym>BIOS</acronym>.
|
||||||
|
Интерпретатор Microsoft (<filename>acpi.sys</filename> и
|
||||||
|
<filename>acpiec.sys</filename>) не занимается проверкой
|
||||||
|
четкости соблюдения стандартов, поэтому многие поставщики
|
||||||
|
<acronym>BIOS</acronym>, проверяющие <acronym>ACPI</acronym>
|
||||||
|
только под Windows, никогда не исправляют <acronym>ASL</acronym>.
|
||||||
|
Мы надеемся продолжать обнаружение и документацию нестандартных
|
||||||
|
поведений, позволяемых интерпретатором Microsoft, и воспроизводить
|
||||||
|
их, чтобы &os; могла работать без необходимости исправления
|
||||||
|
<acronym>ASL</acronym> пользователями. В качестве обходного пути
|
||||||
|
для обнаружения неправильного поведения, вы можете исправить
|
||||||
|
<acronym>ASL</acronym> вручную. Если исправления будут работать,
|
||||||
|
пожалуйста отправьте &man.diff.1; между старым и новым
|
||||||
|
<acronym>ASL</acronym>, чтобы мы могли реализовать обходной
|
||||||
|
путь для неправильного поведения <acronym>ACPI-CA</acronym>,
|
||||||
|
чтобы исправление вручную больше не требовалось.</para>
|
||||||
|
|
||||||
|
<para>Вот список наиболее часто встречающихся проблем, их причин и
|
||||||
|
способы исправления:</para>
|
||||||
|
|
||||||
|
<sect3>
|
||||||
|
<title>OS зависимости</title>
|
||||||
|
|
||||||
|
<para>Некоторые <acronym>AML</acronym> предполагают, что мир состоит
|
||||||
|
из различных версий Windows. Вы можете настроить &os;, чтобы
|
||||||
|
она сообщала любое другое имя <acronym>OS</acronym> и посмотреть,
|
||||||
|
исправит ли это имеющуюся проблему. Простой способ указания
|
||||||
|
другого имени системы это установка переменной
|
||||||
|
<filename>/boot/loader.conf</filename>
|
||||||
|
<option>hw.acpi.osname</option>=<quote>Windows 2001</quote>
|
||||||
|
или в другое подобное значение, имеющееся в
|
||||||
|
<acronym>ASL</acronym>.</para>
|
||||||
|
|
||||||
|
<sect3>
|
||||||
|
<title>Отсутствие возврата значения</title>
|
||||||
|
|
||||||
|
<para>Некоторые методы не возвращают значение явно, как того
|
||||||
|
требует стандарт. Хотя <acronym>ACPI-CA</acronym> не обрабатывает
|
||||||
|
эту ситуацию, в &os; существует обходной путь, позволяющей ей
|
||||||
|
явно возвращать значение. Вы можете также добавить явные операторы
|
||||||
|
Return (возврат) там, где требуется, если знаете, что значение
|
||||||
|
должно быть возвращено. Для принудительного компилирования
|
||||||
|
<acronym>ASL</acronym> командой <command>iasl</command>, используйте
|
||||||
|
флаг <option>-f</option>.</para>
|
||||||
|
</sect3>
|
||||||
|
|
||||||
|
<sect3>
|
||||||
|
<title>Перезапись <acronym>AML</acronym> по умолчанию</title>
|
||||||
|
|
||||||
|
<para>После настройки <filename>your.asl</filename> для
|
||||||
|
компиляции запустите:</para>
|
||||||
|
|
||||||
|
<screen>&prompt.root; <userinput>iasl your.asl</userinput></screen>
|
||||||
|
|
||||||
|
<para>Вы можете добавить флаг <option>-f</option> для создания
|
||||||
|
<acronym>AML</acronym> даже при наличии ошибок компиляции.
|
||||||
|
Помните, что некоторые ошибки (например, отсутствующие операторы
|
||||||
|
Return), автоматически обходятся интерпретатором.</para>
|
||||||
|
|
||||||
|
<para>Файл <filename>DSDT.aml</filename> используется
|
||||||
|
<command>iasl</command> по умолчанию. Вы можете загрузить его
|
||||||
|
вместо ошибочной копии <acronym>BIOS</acronym> (которая
|
||||||
|
остается в постоянной памяти) путем редактирования
|
||||||
|
<filename role="directory">/boot/loader.conf</filename>:</para>
|
||||||
|
|
||||||
|
<programlisting>acpi_dsdt_load="YES"
|
||||||
|
acpi_dsdt_name="/boot/DSDT.aml"</programlisting>
|
||||||
|
|
||||||
|
<para>Убедитесь, что скопировали <filename>DSDT.aml</filename> в
|
||||||
|
каталог <filename role="directory">/boot</filename>.</para>
|
||||||
|
</sect3>
|
||||||
|
|
||||||
|
<sect2 id="ACPI-debugoutput">
|
||||||
|
<title>Получение отладочной информации
|
||||||
|
<acronym>ACPI</acronym></title>
|
||||||
|
|
||||||
|
<para>Возможности отладки драйвера <acronym>ACPI</acronym> очень
|
||||||
|
гибкие. Они позволяют вам указывать набор подсистем, а также
|
||||||
|
уровень отладки. Подсистемы, которые вы хотите отлаживать,
|
||||||
|
указываются как <quote>слои</quote>, и подразделяются на
|
||||||
|
компоненты <acronym>ACPI-CA</acronym> (ACPI_ALL_COMPONENTS)
|
||||||
|
и поддержку оборудования <acronym>ACPI</acronym> (ACPI_ALL_DRIVERS).
|
||||||
|
Уровень отладки варьируется от ACPI_LV_ERROR (только сообщать об
|
||||||
|
ошибках) до ACPI_LV_VERBOSE (все сообщения). Уровень отладки
|
||||||
|
представляет собой битовую маску, поэтому возможна одновременная
|
||||||
|
установка нескольких параметров, разделенных пробелами.
|
||||||
|
На практике, при использовании для получения отладочной информации
|
||||||
|
последовательной консоли, слишком большое количество информации
|
||||||
|
может переполнить буфер консоли. Полный список отдельных слоев
|
||||||
|
и уровней можно найти на странице справочника &man.acpi.4;.</para>
|
||||||
|
|
||||||
|
<para>Вывод отладочной информации по умолчанию не включен.
|
||||||
|
Для его включения добавьте параметр <option>options
|
||||||
|
ACPI_DEBUG</option> к файлу настройки ядра, если
|
||||||
|
<acronym>ACPI</acronym> встроен в ядро. Вы можете добавить параметр
|
||||||
|
<option>ACPI_DEBUG=1</option> в файл
|
||||||
|
<filename>/etc/make.conf</filename> для глобального включения
|
||||||
|
этого параметра. Если вы используете модуль
|
||||||
|
<filename>acpi.ko</filename> , его можно пересобрать
|
||||||
|
индивидуально:</para>
|
||||||
|
|
||||||
|
<screen>&prompt.root; <userinput>cd /sys/modules/acpi/acpi
|
||||||
|
&& make clean && make
|
||||||
|
ACPI_DEBUG=1</userinput></screen>
|
||||||
|
|
||||||
|
<para>Установите <filename>acpi.ko</filename> в
|
||||||
|
<filename role="directory">/boot/kernel</filename> и добавьте
|
||||||
|
предпочитаемый уровень и слой к <filename>loader.conf</filename>.
|
||||||
|
Этот пример включает отладочные сообщения для всех компонентов
|
||||||
|
<acronym>ACPI-CA</acronym> и всех драйверов оборудования
|
||||||
|
<acronym>ACPI</acronym> (<acronym>CPU</acronym>,
|
||||||
|
<acronym>LID</acronym> и т.д.). Будут выводиться только сообщения
|
||||||
|
об ошибках, наименьший уровень отладки.</para>
|
||||||
|
|
||||||
|
<programlisting>debug.acpi.layer="ACPI_ALL_COMPONENTS ACPI_ALL_DRIVERS"
|
||||||
|
debug.acpi.level="ACPI_LV_ERROR"</programlisting>
|
||||||
|
|
||||||
|
<para>Если требуемая информация получается в результате определенного
|
||||||
|
события (скажем, приостановка и восстановление), вы можете
|
||||||
|
не изменять <filename>loader.conf</filename> и использовать
|
||||||
|
для указания слоя и уровня <command>sysctl</command>
|
||||||
|
после загрузки и подготовки системы к определенному событию.
|
||||||
|
Имена переменных <command>sysctl</command> те же, что и имена
|
||||||
|
параметров настройки в <filename>loader.conf</filename>.</para>
|
||||||
|
</sect2>
|
||||||
|
|
||||||
|
<sect2 id="ACPI-References">
|
||||||
|
<title>Ссылки</title>
|
||||||
|
|
||||||
|
<para>Дальнейшую информацию о <acronym>ACPI</acronym> можно найти
|
||||||
|
по следующим ссылкам:</para>
|
||||||
|
|
||||||
|
<itemizedlist>
|
||||||
|
<listitem>
|
||||||
|
<para>Список рассылки <acronym>ACPI</acronym>
|
||||||
|
<ulink url="mailto:acpi-jp@jp.freebsd.org">
|
||||||
|
acpi-jp@jp.freebsd.org</ulink></para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>Архивы списков рассылки <acronym>ACPI</acronym>
|
||||||
|
<ulink url="http://home.jp.freebsd.org/mail-list/acpi-jp/">
|
||||||
|
http://home.jp.freebsd.org/mail-list/acpi-jp/</ulink></para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>Спецификация <acronym>ACPI</acronym> 2.0
|
||||||
|
<ulink url="http://acpi.info/spec.htm">
|
||||||
|
http://acpi.info/spec.htm/</ulink></para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>Страницы справочника &os;: &man.acpi.4;,
|
||||||
|
&man.acpi.thermal.4;, &man.acpidump.8;, &man.iasl.8;,
|
||||||
|
&man.acpidb.8;</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para><ulink
|
||||||
|
url="http://www.cpqlinux.com/acpi-howto.html#fix_broken_dsdt">
|
||||||
|
Ресурс по отладке <acronym>DSDT</acronym></ulink>.
|
||||||
|
(Использует в качестве примера Compaq, но обычно полезен.)</para>
|
||||||
|
</listitem>
|
||||||
|
</itemizedlist>
|
||||||
</sect2>
|
</sect2>
|
||||||
</sect1>
|
</sect1>
|
||||||
</chapter>
|
</chapter>
|
||||||
|
|
Loading…
Reference in a new issue