Как управлять реакцией на acpi-события?

Выбор и настройка HardWare

Модератор: Модераторы разделов

Аватара пользователя
t.t
Бывший модератор
Сообщения: 7390
Статус: думающий о вечном
ОС: Debian, LMDE

Как управлять реакцией на acpi-события?

Сообщение t.t »

Хочется автоматически запускать некоторые команды по acpi-событиям на ноуте. Например, s2disk при нажатии кнопки питания или при питании от батареи и заряде ниже 5%; или, при закрытии крышки: при питании от сети s2ram, от батареи -- s2both, а при открытии крышки -- resume. И такое прочее.

В идеале хочется чего-то подобного cpufreqd.conf:

Код: Выделить всё

[Rule]
name=...
ac=off                   # (on/off)
battery_interval=0-10
profile=...
[/Rule]
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
Спасибо сказали:
Аватара пользователя
Uncle_Theodore
Сообщения: 3339
ОС: Slackware 12.2, ArchLinux 64

Re: Как управлять реакцией на acpi-события?

Сообщение Uncle_Theodore »

Этим, вроде, acpid занимается, демон такой. В man acpid даже пример есть.
Спасибо сказали:
Аватара пользователя
t.t
Бывший модератор
Сообщения: 7390
Статус: думающий о вечном
ОС: Debian, LMDE

Re: Как управлять реакцией на acpi-события?

Сообщение t.t »

Как тебе сказать... Заниматься-то он занимается.. Но вот как адекватную информацию о той же батарейке от него получить, кроме как через сокет, я так и не понял. Вот кусок его лога, который про батарейку:

Код: Выделить всё

[Sat Dec 15 16:08:32 2007] received event "battery C1AC 00000080 00000001"
[Sat Dec 15 16:08:32 2007] notifying client 9721[0:0]
[Sat Dec 15 16:08:32 2007] notifying client 3331[0:0]
[Sat Dec 15 16:08:32 2007] notifying client 18365[1000:1000]
[Sat Dec 15 16:08:32 2007] executing action "/etc/acpi/power.sh"
[Sat Dec 15 16:08:32 2007] BEGIN HANDLER MESSAGES
[Sat Dec 15 16:08:32 2007] END HANDLER MESSAGES
[Sat Dec 15 16:08:32 2007] action exited with status 0
[Sat Dec 15 16:08:32 2007] completed event "battery C1AC 00000080 00000001"

Одним словом, event "battary" никакой информации об уровне заряда не несёт; и в документации на этот счёт тоже ничего нету. А это для меня как раз самое критичное. Посему вопрос переформулирую так:
1. Прав ли я, что acpid не отдаёт информацию об уровне заряда в human readable виде?
2. Какую бы такую тулзень, которая бы следила за этой информацией через сокет и позволяла сказать ей, чего при каком уровне запустить?
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
Спасибо сказали:
Аватара пользователя
Dark_Savant
Бывший модератор
Сообщения: 1100
Статус: киборг
ОС: Cyborg OS 0.0.1.3

Re: Как управлять реакцией на acpi-события?

Сообщение Dark_Savant »

описание событий находится в /etc/acpi/events
имеют вид

Код: Выделить всё

event=some_event
action=action

в качестве action можно прописать любой скрипт.
например обработчик нажатия кнопки питания у меня выглядит так:

Код: Выделить всё

event=button[ /]power
action=/usr/sbin/hibernate


а про выключение при критическом уровне заряда.. помню, что был какой-то демон. но проще самому слепить мониторилку, чем вспоминать название.
I'm a tragic hero
In this game called life
My chances go to zero
But I always will survive
Спасибо сказали:
Аватара пользователя
t.t
Бывший модератор
Сообщения: 7390
Статус: думающий о вечном
ОС: Debian, LMDE

Re: Как управлять реакцией на acpi-события?

Сообщение t.t »

Dark_Savant, насчёт acpi events я уже понял.

Dark_Savant писал(а):
15.12.2007 18:37
а про выключение при критическом уровне заряда.. помню, что был какой-то демон. но проще самому слепить мониторилку, чем вспоминать название.
А через как мониторить предлагаешь?
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
Спасибо сказали:
Аватара пользователя
Dark_Savant
Бывший модератор
Сообщения: 1100
Статус: киборг
ОС: Cyborg OS 0.0.1.3

Re: Как управлять реакцией на acpi-события?

Сообщение Dark_Savant »

t.t писал(а):
15.12.2007 19:31
А через как мониторить предлагаешь?

заряд можно проверять по крону. значения из /proc/acpi/battery брать. или при помощи программки acpi получать.

Код: Выделить всё

->acpi -b
     Battery 1: charged, 97%

Код:

-> apt-cache show acpi Package: acpi Priority: optional Section: utils Installed-Size: 84 Maintainer: Joey Hess <joeyh@debian.org> Architecture: i386 Version: 0.09-3 Depends: libc6 (>= 2.3.6-6) Filename: pool/main/a/acpi/acpi_0.09-3_i386.deb Size: 11874 MD5sum: 27064362c1f60ea817089923e1fa1506 SHA1: 3c7c346bd719c11f7e68d60d873af32d4a89e626 SHA256: a54b23893bc617930a669f2c5231e6550eeb3ef8a65f63b0e2a359192edf0617 Description: displays information on ACPI devices Attempts to replicate the functionality of the 'old' apm command on ACPI systems, including battery and thermal information. Does not support ACPI suspending, only displays information about ACPI devices. Tag: admin::power-management, hardware::power, hardware::power:acpi, interface::commandline, role::program, scope::utility, use::viewing Task: laptop
I'm a tragic hero
In this game called life
My chances go to zero
But I always will survive
Спасибо сказали:
Аватара пользователя
cheer
Сообщения: 729
Статус: Самовлюблённый сноб
ОС: archlinux i686-current

Re: Как управлять реакцией на acpi-события?

Сообщение cheer »

laptop-mode-tools, кажется.
Спасибо сказали:
Аватара пользователя
t.t
Бывший модератор
Сообщения: 7390
Статус: думающий о вечном
ОС: Debian, LMDE

Re: Как управлять реакцией на acpi-события?

Сообщение t.t »

cheer писал(а):
15.12.2007 20:24
laptop-mode-tools, кажется.
Спасибо, оно. Как я там ничего кроме "spin down hard disk" в описании не заметил раньше?..
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
Спасибо сказали: