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
|
||||
|
||||
$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">
|
||||
|
@ -274,7 +274,7 @@
|
|||
</sect1>
|
||||
|
||||
<sect1 id="configtuning-appconfig">
|
||||
<title>Настройка Приложений</title>
|
||||
<title>Настройка приложений</title>
|
||||
|
||||
<para>Обычно, установленные приложения имеют свои конфигурационные файлы,
|
||||
со своим собственным синтаксисом. Важно хранить эти файлы отдельно от
|
||||
|
@ -504,7 +504,7 @@ HOME=/var/log
|
|||
соответствующая команда <command>atrun</command> вызывается
|
||||
под пользователем <username>root</username> каждые пять минут
|
||||
независимо от дня или месяца. За дополнительной информацией по
|
||||
<command>atrun</command> обращайтесь к странице справочника
|
||||
команде <command>atrun</command> обращайтесь к странице справочника
|
||||
&man.atrun.8;.</para>
|
||||
|
||||
<para>Команды могут принимать любое количество параметров; однако
|
||||
|
@ -610,7 +610,7 @@ HOME=/var/log
|
|||
$sshd_enable=YES</screen>
|
||||
|
||||
<note>
|
||||
<para>Вторая строка (<literal># sshd</literal>) это вывод команды
|
||||
<para>Вторая строка (<literal># sshd</literal>) это вывод
|
||||
команды <command>sshd</command>, а не консоль
|
||||
<username>root</username>.</para>
|
||||
</note>
|
||||
|
@ -654,17 +654,17 @@ sshd is running as pid 433.</screen>
|
|||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>PROVIDE: Задает имя сервиса, предоставляемого этим файлом.</para>
|
||||
<para><literal>PROVIDE</literal>: Задает имя сервиса, предоставляемого этим файлом.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>REQUIRE: Список сервисов, необходимых этому сервису. Этот
|
||||
<para><literal>REQUIRE</literal>: Список сервисов, необходимых этому сервису. Этот
|
||||
файл будет запущен <emphasis>после</emphasis> указанных
|
||||
сервисов.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>BEFORE: Список сервисов, зависящих от этого сервиса. Этот
|
||||
<para><literal>BEFORE</literal>: Список сервисов, зависящих от этого сервиса. Этот
|
||||
файл будет запущен <emphasis>до</emphasis> указанных
|
||||
сервисов.</para>
|
||||
</listitem>
|
||||
|
@ -1463,7 +1463,7 @@ device_probe_and_attach: cbb0 attach returned 12</screen>
|
|||
<para>Ситуации, похожие на эту, требуют изменения некоторых значений
|
||||
&man.sysctl.8;, модификация которых запрещена. Для разрешения этой
|
||||
ситуации пользователь может поместить &man.sysctl.8; <quote>OID</quote>
|
||||
в файл <filename>/boot/loader.conf.local</filename>. Значения по
|
||||
в файл <filename>/boot/loader.conf</filename>. Значения по
|
||||
умолчанию хранятся в файле
|
||||
<filename>/boot/defaults/loader.conf</filename>.</para>
|
||||
|
||||
|
@ -2267,33 +2267,538 @@ device_probe_and_attach: cbb0 attach returned 12</screen>
|
|||
<para>Доступны и другие параметры. Обратитесь к странице справочника
|
||||
&man.acpiconf.8; за дополнительной информацией.</para>
|
||||
</sect2>
|
||||
</sect1>
|
||||
|
||||
<sect2 id="acpi-debug">
|
||||
<title>Отладка и отключение <acronym>ACPI</acronym></title>
|
||||
<sect1 id="ACPI-debug">
|
||||
<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> прозрачно, пока не начинаются
|
||||
проблемы. Это обычно случается, когда пользователь узнает, что
|
||||
что-то работает неправильно. Драйвер &man.acpi.4; поддерживает
|
||||
много параметров отладки, можно даже выборочно отключить некоторые
|
||||
части системы <acronym>ACPI</acronym>. За более подробной информацией
|
||||
о средствах отладки обратитесь к странице справочника
|
||||
&man.acpi.4;.</para>
|
||||
<title>Использование и отладка &os; <acronym>ACPI</acronym></title>
|
||||
|
||||
<para>Иногда по различным причинам необходимо выгрузить модуль
|
||||
<filename>acpi.ko</filename>. Это можно сделать только во
|
||||
время загрузки через &man.loader.8;. Вы можете набирать
|
||||
<command>unset acpi_load</command> в приглашении
|
||||
&man.loader.8; при каждом старте системы, или отменить
|
||||
автозагрузку драйвера &man.acpi.4;, добавив в
|
||||
<filename>/boot/loader.conf</filename> следующую строку:</para>
|
||||
<para><acronym>ACPI</acronym> это фундаментально новый способ
|
||||
обнаружения устройств, управления энергопотреблением и предоставления
|
||||
стандартизированного доступа к различному оборудованию, ранее
|
||||
ранее управлявшемуся <acronym>BIOS</acronym>. Был достигнут
|
||||
определенный прогресс в приспособлении <acronym>ACPI</acronym>
|
||||
к работе со всеми системами, но все еще встречаются ошибки
|
||||
в байткоде <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 и более новые поставляются с меню,
|
||||
управляющим загрузкой &os;. Один из предоставляемых параметров,
|
||||
это отключение <acronym>ACPI</acronym>. Для отключения
|
||||
<acronym>ACPI</acronym> просто выберите в меню
|
||||
<guimenuitem>2. Boot &os; with ACPI disabled</guimenuitem>.</para>
|
||||
<sect2 id="ACPI-submitdebug">
|
||||
<title>Отправка отладочной информации</title>
|
||||
|
||||
<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>
|
||||
</sect1>
|
||||
</chapter>
|
||||
|
|
Loading…
Reference in a new issue