Рассылка закрыта
При закрытии подписчики были переданы в рассылку "Интернет: маркетинг, реклама, торговля" на которую и рекомендуем вам подписаться.
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
← Декабрь 2002 → | ||||||
1
|
||||||
---|---|---|---|---|---|---|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
10
|
11
|
12
|
14
|
15
|
|
16
|
17
|
18
|
19
|
20
|
21
|
22
|
23
|
24
|
25
|
26
|
27
|
28
|
|
30
|
31
|
Статистика
-1 за неделю
Страницы справочного руководства ОС UNIX на русском : еще про APM в Linux и FreeBSD
Информационный Канал Subscribe.Ru |
Выпуск 97
man apmd(8) из GNU/Linux, man apmd(8) и apm(4) из FreeBSD
Сегодняшний выпуск завершает тему управления функциями APM BIOS на ноутбуках в ОС Linux и FreeBSD, начатую по просьбе одного из постоянных читателей рассылки.
GNU/Linux: apmd(8)
НАЗВАНИЕ
apmd - демон подсистемы расширенного управления питанием (Advanced Power Management - APM) BIOS
СИНТАКСИС
- apmd [ -vVuW ] [ -p процент_изменения ] [-w процент_предупреждения]
ОПИСАНИЕ
Демон apmd - это демон контроля подсистемы APM BIOS. Он будет регистрировать, с помощью средств демона syslogd(2), изменения состояния подсистемы APM (например, включение или отключение питания, разрядка или зарядка батареи). Когда емкость батареи становится слишком низкой, он может уведомить об этом всех пользователей системы с помощью команды wall(1). Когда подсистема APM BIOS уведомляет демон об ожидающемся запроса останова или перевода в режим ожидания, демон apmd вызывает команду sync(2), засыпает на 2 секунды, а затем сообщает подсистеме APM BIOS о том, что можно продолжить работу. Если происходит критическое восстановление, демон apmd wпытается переустановить часы.
Попадающая в журнал информация состоит из четырех полей:
- Скорость разрядки (процентов/минуту). Отрицательные значения обозначают зарядку.
- Время, прошедшее после полной зарядки или полной разрядки (чч:мм:сс). Это значение имеет такой смысл только если отражает время, прошедшее с момента достижения состояния зарядки 100% или 0%. В противном случае, время берется в скобки и показывает, сколько прошло после существенного изменения состояния демона apmd.
- Приблизительное время до полной разрядки (или полной зарядки), если использование системы будет таким же, как после последнего восстановления (или подключения внешнего источникак тока). Это время рассчитывает сам демон apmd.
- В скобках указан процент использования и ожидаемая продолжительность жизни батареи по оценке подсистемы APM BIOS (которая часто является "самооценкой" "интеллектуальной" батареи).
ОПЦИИ
- -V, --version
-
Выдать информацию о версии и немедленно завершить работу.
- -v, --verbose
-
Регистрировать все события подсистемы APM.
- -u, --utc
-
Установить часы BIOS в соответствии с временем в часовом поясе UTC (GMT), так что
при запуске из режима останова программе clock или hwclock передается
опция -u.
- -p процент_изменения, --percentage процент_изменения
-
При каждом изменении зарядки батареи на процент_изменения, регистрировать это изменение
в журнале. Стандартное значение процента измнения - 5. Чтобы отключить регистрацию, задайте
значение больше 100.
- -w процент_предупреждения, --warn процент_предупреждения
-
Когда батарея не заряжается и процент зарядки падает ниже процента_предупреждения,
в syslog(2) регистрируется предупреждение уровня ALERT.
Если была также указана опция -W или --wall, о потенциальной проблеме
с помощью команды wall(1) информируются все пользователи.
Предупреждение выдается при каждом изменении процента зарядки. Стандартное значение процента
предупреждения - 10. Чтобы отключить предупреждения, задайте отрицательное значение.
- -W, --wall
- Кроме регистрации средствами syslog(2), использовать также команду wall(1) для уведомления всех пользователей. Это полезно если демон syslogd(8) не выдает всем пользователям сообщения уровня ALERT. Если используются оба метода, в критические периоды будет подыматься больше "шума".
ОШИБКИ
Первый отчет о состоянии, выдаваемых после начала зарядки, может быть неточным, поскольку зарядка начиналась при дробном значении процента, которое усекается до целого. Например, батарея разряжена до 50.9% емкости, и это значение уровня зарядки выдается как 50%. После начала зарядки батареи остается всего 0.1% до достижения уровня зарядки 51%, соответственно, скорость зарядки будет существенно завышена при оценке.
ФАЙЛЫ
- /proc/apm
- /proc/devices
АВТОР
Эта программа написана Риком Фейтом (Rik Faith) (faith@cs.unc.edu) и может свободно распространяться на условиях Генеральной Общественной Лицензии GNU (General Public License). На эту программу НЕТ НИКАКИХ ГАРАНТИЙ. Сейчас ее поддержкой занимается Авери Пеннаран (Avery Pennarun) (apenwarr@worldvisions.ca).
ССЫЛКИ
- apm(1), xapm(1)
10 января 1996 года
Copyright 2002 В. Кравчук, OpenXS Initiative, перевод на русский язык
FreeBSD: apm(4)
НАЗВАНИЕ
apm - интерфейс APM BIOS
СИНТАКСИС
- apm0
ОПИСАНИЕ
Специальный файл устройства apm - это интерфейс к подсистеме расширенного управления питанием Intel/Microsoft (APM - Advanced Power Management) BIOS на ноутбуках.
apm предлагает следующие функции управления питанием.
- Когда система пробуждается из режима останова (suspended mode), apm настраивает системные часы в соответствии с RTC.
- Когда система пробуждается из режима останова, apm посылает сообщение демону syslogd(8), содержащее время пробуждения и продолжительность периода останова.
- apm замедляет часы процессора при отсутствии активности в системе (работающих процессов, прерываний и т.п.). Эта функция доступна только в системах, APM которых поддерживает замедление процессора.
- apm представляет собой специальное символьное устройство. Приложения могут
через этот интерфейс управлять подсистемой APM или выбирать информацию о состоянии APM.
apm экспортирует следующие интерфейсы. Эти символы определены в заголовочном
файле "/usr/include/machine/apm_bios.h".
- APMIO_SUSPEND
-
Остановить систему.
- APMIO_GET
-
Получить информацию об управлении питанием.
- APMIO_ENABLE
APMIO_DISABLE -
Включить/отключить управление питанием.
- APMIO_HALTCPU
APMIO_NOTHALTCPU -
Управляет выполнением команды HLT в процедуре переключения контекста ядра.
- APMIO_GETPWSTATUS
- Получить информацию по батареям.
Некоторые реализации APM выполняют команду HLT (остановить процессор пока не произойдет прерывание) в вызове "Idle CPU" (ожидание процессора), а другие -нет. Поэтому включение APMIO_HALTCPU может привести к избыточным выполнениям команды HLT, поскольку "Idle CPU" вызывается из процедуры переключения контекста ядра, обязательно выполняющей команду HLT. Это может снижать пиковую производительность системы.
Кроме того, система зависает, если команда HLT отключена в процедуре переключения контекста ядра, а реализация подсистемы APM на машине не выполняет HLT в вызове "Idle CPU". В некоторых реализациях, не поддерживающих замедление таймера процессора, подсистема APM может и не выполнять HLT. apm отключает поддержку операции APMIO_NOTHALTCPU на таких машинах.
Текущая версия apm не вызвает "Idle CPU" из процедуры переключения контекста ядра, если не поддерживается замедление таймера, и по умолчанию выполняет команду HLT. Поэтому в большинстве случаев использовать эти две операции не нужно.
Эти интерфейсы используются командой apm(8).
- apm опрашивает события подсистемы APM и обрабатывает следующие из них.
Имя Действие Описание PMEV_STANDBYREQ остановка системы запрос ожидания PMEV_SUSPENDREQ остановка системы запрос останова PMEV_USERSUSPENDREQ остановка системы запрос останова пользователем PMEV_CRITSUSPEND остановка системы критический запрос останова PMEV_NORMRESUME восстановление системы обычное восстановление PMEV_CRITRESUME восстановление системы критическое восстановление PMEV_STANDBYRESUME восстановление системы восстановление из состояния ожидания PMEV_BATTERYLOW уведомление батарея разряжена PMEV_UPDATETIME настройка часов изменить время
ОШИБКИ
ПРЕДУПРЕЖДЕНИЕ! Многие, если не большинство, современных реализаций APM-bios в ноутбуках содержат ошибки. Используя этот интерфейс, мы можете повредить экран или батареи ноутбука. (В MS-Windows этой проблемы нет потому, что там используется интерфейс в реальном режиме.) Если вы заметили странности в поведении системы при использовании этого кода, отключите питание и батареи как можно быстрее, лучше - немедленно, и отключите этот код.
Мы очень заинтересованы в обеспечении работоспособности этого кода, поэтому, пожалуйста, пошлите нам свои наблюдения о любых отклонениях.
Когда интерфейс apm активен, вызов процедуры настройки BIOS с помощью горячих клавиш может вызвать серьезные трудности при возобновлении работы системы. Программы настройки BIOS следует вызывать в процессе начальной загрузки или из DOS.
Некоторые реализации подсистемы APM не могут обрабатывать некоторые событие, например, нажатие кнопки питания или закрытие ноутбука. В таких случаях систему надо сотанавливать только с помощью команды apm(8) или zzz(8).
Замедление врашение диска, уменьшение подсветки экрана и включение питания по требованию (power on demand) в текущей версии не поддерживаются.
ССЫЛКИ
АВТОР
Тацуми Хосокава (Tatsumi Hosokawa) (hosokawa@jp.FreeBSD.org)
FreeBSD 4.6, 1 ноября 1994 года
Copyright 2002 В. Кравчук, OpenXS Initiative, перевод на русский язык
FreeBSD: apmd(8)
НАЗВАНИЕ
apmd - демон мониторинга расширенного управления питанием (Advanced Power Management)
СИНТАКСИС
- apmd [-d] [-f файл] [-v]
ОПИСАНИЕ
Демон apmd следит за наступлением заданных событий подсистемы расширенного управления питанием (Advanced Power Management - APM) и, при наступлении одного из этих событий, выполняет соответствующую последовательность команд. Демон apmd обрабатывает только события, указанные в файле конфигурации; все остальные события игнорируются. Для каждого события, о котором уведомляет подсистема APM BIOS, демон apmd вызывает заданную в конфигурационном файле последовательность команд. Когда демон apmd контролирует запросы остановки/режима ожидания (suspend/standby requests), ядро эти запросы обрабатывать не будет. Поэтому, если необходимо выполнять действие при наступлении этих событий, надо явно задать соответствующие команды или вызовы встроенных функций в конфигурационном файле.
Демон apmd распознает следующие опции:
-d | Запуск в режиме отладки. В результате, демон apmd запускается в приоритетном режиме, а не в фоновом. |
-f файл | Задает другой конфигурационный файл, файл, для использования вместо стандартного, /etc/apmd.conf. |
-v | Многословный режим работы. |
При запуске демон apmd читает конфигурационый файл (по умолчанию - /etc/apmd.conf) и передает набор событий, которые надо контролировать, драйверу устройства APM. При завершении работы демона драйвер устройства APM автоматически прекращает контроль событий.
Если процесс apmd получает сигнал SIGHUP, он перечитывает свой конфигурационный файл и уведомляет драйвер устройства APM о любых изменениях в конфигурации.
Демон apmd использует устройство /dev/apmctl для выполнения запросов ioctl(2) для контроля событий и управления подсистемой APM. Этот специальный файл устройства открывается в режиме исключительного доступа, поэтому в каждый момент времени может работать только один процесс apmd.
Когда демон apmd получает уведомление о событии от подсистемы APM, он запускает порожденный процесс для выполнения команд, указанных в конфигурационном файле, а затем продолжает работу в ожидании других событий. Порожденный процесс выполняет команды последовательно, в указанном порядке.
Пока демон apmd обрабатывает список команд для запросов SUSPEND/STANDBY, драйвер устройства APM ядра выдает уведомления подсистеме APM BIOS раз в секунду, так что BIOS знает, что есть еще не выполненные команды, и что запрос еще нельзя считать обработанным.
Демон apmd создает файл /var/run/apmd.pid, в котором записывает свой идентификатор процесса. Этот идентификатор можно использовать для остановки или переконфигурирования процесса apmd.
КОНФИГУРАЦИОННЫЙ ФАЙЛ
Структура конфигурационного файла демона apmd весьма проста. Например, конструкция:
apm_event SUSPENDREQ { exec "sync && sync && sync"; exec "sleep 1"; exec "zzz"; }
вызовет получение демоном apmd события APM "SUSPENDREQ" (которое может инициироваться закрытием ноутбука), при обработке которого трижды выполняется команда "sync", затем демон ожидает 1 секунду и выполняет команду zzz (apm-z) для перевода системы в состояние останова.
Итак, конфигурационный файл содержит одну или более подобных конструкций со следующими компонентами:
- Ключевое слово apm_event
-
apm_event - это ключевое слово, свидетельствующее о начале конструкции, задающей
обработку событий.
- События APM
-
Если необходимо выполнять одни и те же команды для разных событий, имена событий перечисляются
через запятую. Поддерживаются следующие имена событий:
-
События, игнорируемые ядром, если работает демон apmd:
-
STANDBYREQ USERSTANDBYREQ SUSPENDREQ в списке команд должна быть sync USERSUSPENDREQ в списке команд должна быть sync BATTERYLOW в списке команд должна быть только zzz
-
-
События, передаваемые демону apmd после обработки ядром:
-
NORMRESUME CRITRESUME STANDBYRESUME POWERSTATECHANGE UPDATETIME CAPABILITIESCHANGE
-
-
События, игнорируемые ядром, если работает демон apmd:
- Команды
-
В представленном выше примере три строки, начинающиеся с "exec" - это команды
обработки события. Каждая строка должна заканчиваться точкой с запятой. Список команд
обработки события надо брать в фигурные скобки, "{" и "}". Для
выполнения команд демон apmd вызывает командный интерпретатор /bin/sh,
точно так же, как и системный вызов system(3).
Команды выполняются последовательно, пока не будет достигнут конец списка или пока
очередная команда не вернет ненулевой статус выхода. Демон apmd сообщает о статусе
выхода любой не сработавшей команды через системный вызов
syslog(3), а затем отвергает запрос, посланный APM BIOS.
- Встроенные функции
-
Вместо команд можно также вызывать встроенные функции apmd. После имени
встроенной функции надо указывать точку с запятой, так же, как и в конце строки команды.
В настоящее время поддерживаются следующие встроенные функции:
-
reject:
- Отвергает последний запрос, выполненный подсистемой APM BIOS. Эту функцию можно использовать, чтобы отказаться от обработки запроса останова (SUSPEND) при закрытии ноутбука и перевода системы вместо этого в состояние ожидания (STANDBY).
-
reject:
ПРИМЕРЫ
Типичные команды в конфигурационном файле:
apm_event SUSPENDREQ { exec "/etc/rc.suspend"; } apm_event USERSUSPENDREQ { exec "sync && sync && sync"; exec "sleep 1"; exec "apm -z"; } apm_event NORMRESUME, STANDBYRESUME { exec "/etc/rc.resume"; } # Обработка события resume для мыши на последовательном порту: # переинициализация демона moused(8), подключенного к этому порту. # #apm_event NORMRESUME { # exec "kill -HUP `cat /var/run/moused.pid`"; #} # # Обработка события suspend для пользователей жестких дисков ATA: # выполняем standby вместо suspend. # #apm_event SUSPENDREQ { # reject; # exec "sync && sync && sync"; # exec "sleep 1"; # exec "apm -Z"; #}
ФАЙЛЫ
- /etc/apmd.conf
- /dev/apmctl
- /var/run/apmd.pid
ССЫЛКИ
АВТОРЫ
Мицуру Ивасаки (Mitsuru IWASAKI)
(iwasaki@FreeBSD.org),
Коё Хидетака (KOIE Hidetaka)
(koie@suri.co.jp)
Определенный вклад внесли также:
Уорнер Лош (Warner Losh)
(imp@FreeBSD.org),
Хироши Ямашита (Hiroshi Yamashita)
(bluemoon@msj.biglobe.ne.jp),
Ёшихико Сарумару (Yoshihiko SARUMARU)
(mistral@imasy.or.jp),
Норихиро Кумагаи (Norihiro Kumagai)
(kuma@nk.rim.or.jp),
Накагава Ёшихиша (NAKAGAWA Yoshihisa)
(nakagawa@jp.FreeBSD.org) и
Ник Хильярд (Nick Hilliard)
(nick@foobar.org).
ИСТОРИЯ
Демон apmd появился в FreeBSD 3.3.
FreeBSD 4.6, 28 июня 1999 года
Copyright 2002 В. Кравчук, OpenXS Initiative, перевод на русский язык
В следующем выпуске
Перевод man boot(1M) из Solaris 8. Пора, наконец, начать разбираться с процессом загрузки этой операционной системы. Выпуск выйдет на следующей неделе. Следите за новостями на сайте рассылки.С наилучшими пожеланиями,
В.К.
http://subscribe.ru/
E-mail: ask@subscribe.ru |
Отписаться
Убрать рекламу |
В избранное | ||