LINUX.ORG.RU

ACPI, настройка


0

1

Сразу к делу. Есть ли возможность в power.sh узнать значение параметра event? Или же единственный способ узнать, подключен ли ноутбук к сети - cat /proc/acpi/ac_adapter/AC0/state ?

# /etc/acpi/events/ac
# Called when the user connects ac power to us
# 

event=ac_adapter
action=/etc/acpi/power.sh

man 8 acpid:

The action value is a commandline, which will be invoked via /bin/sh whenever an event matching the rule in question occurs. The commandline may include shell-special characters, and they will be preserved. The only special characters in an action value are «%» escaped. The string «%e» will be replaced by the literal text of the event for which the action was invoked. This string may contain spaces, so the commandline must take care to quote the «%e» if it wants a single token. The string «%%» will be replaced by a literal «%». All other «%» escapes are reserved, and will cause a rule to not load.

Добавьте параметр "%e" к параметрам скрипта в action.

AITap ★★★★★
()
Ответ на: комментарий от AITap

Что-то не помогает, как ни пробовал расставлять кавычки, первый аргумент скрипта power.sh все равно пустой. Я только что по приколу выставил action=xeyes, не работает, все равно выполняется мой скрипт. Что надо сделать помимо того, что отредактировать файл? Какой процесс перезапустить?

Gorthad
() автор топика
Ответ на: комментарий от AITap

Не помогло. Дистрибутив - xubuntu 12.04 lts, если это поможет.

Gorthad
() автор топика
Ответ на: комментарий от Gorthad

Другие events тот же скрипт не запускают? Может быть, upstart запускает скрипт по событию? Что именно Вам нужно от этого скрипта?

AITap ★★★★★
()
Ответ на: комментарий от AITap

Хочу сделать, чтобы когда ноутбук отключается от питания, яркость менялась на слабую, и соответственно наоборот. Этим управляют два event'a, ac и battery. Собственно они оба запускают скрипт power.sh. Сейчас я временно сделал так, чтобы в самом скрипте power.sh узнавалось, подключен ли компьютер к питанию, но это костыль, хочется чтобы у power.sh был аргумент.

Gorthad
() автор топика
Ответ на: комментарий от Gorthad

Заставьте свой скрипт печатать `set` и/или `env` в файл при запуске, сравните результат от разных событий.

Мне кажется очень странным, что система, которую удалось заставить запускать power.sh, игнорирует попытки заставить её прекратить это делать или запускать по-другому.

AITap ★★★★★
()
Ответ на: комментарий от AITap

Заставьте свой скрипт печатать `set` и/или `env` в файл при запуске, сравните результат от разных событий

Это как? При запуске обоих событий запускается один и тот же скрипт.

Gorthad
() автор топика
Ответ на: комментарий от AITap

Пробовал менять action=/etc/acpi/power.sh «%e» и печатать в файл значение аргумента, результат нулевой. Писал же выше, делал даже более радикальную вещь, писал action=xeyes, все равно запускается power.sh, перезагрузка системы не помогает. Вспомнил, что помогла переустановка каких-то фундаментальных пакетов, отвечающих за работу питания, но это маразм.

Gorthad
() автор топика
Ответ на: комментарий от Gorthad

Допишите в скрипт: set > /tmp/$$ . Получите все возможные переменные, которые есть у скрипта, запущенного по событию.

Писал же выше, делал даже более радикальную вещь, писал action=xeyes, все равно запускается power.sh, перезагрузка системы не помогает.

Вот это меня удивляет больше всего. Вы точно не записывали запуск power.sh в другие конфиги? Проверьте: grep -F power.sh -r /etc. Если удалить Ваш конфиг и перезагрузиться, система всё равно будет пускать power.sh? Это нелогично.

AITap ★★★★★
()
Ответ на: комментарий от AITap

Не знаю, power.sh не я создавал, я его только изменил кардинально.

Вывод грепа:

/etc/rc1.d/K20acpi-support:    /etc/acpi/power.sh
/etc/rc1.d/K20acpi-support:    /etc/acpi/power.sh false
/etc/rc2.d/S99acpi-support:    /etc/acpi/power.sh
/etc/rc2.d/S99acpi-support:    /etc/acpi/power.sh false
/etc/rc5.d/S99acpi-support:    /etc/acpi/power.sh
/etc/rc5.d/S99acpi-support:    /etc/acpi/power.sh false
/etc/acpi/events/ac:action=/etc/acpi/power.sh "%e"
/etc/acpi/events/battery:action=/etc/acpi/power.sh "%e"
/etc/rc4.d/S99acpi-support:    /etc/acpi/power.sh
/etc/rc4.d/S99acpi-support:    /etc/acpi/power.sh false
/etc/rc3.d/S99acpi-support:    /etc/acpi/power.sh
/etc/rc3.d/S99acpi-support:    /etc/acpi/power.sh false
/etc/init.d/acpi-support:    /etc/acpi/power.sh
/etc/init.d/acpi-support:    /etc/acpi/power.sh false
Gorthad
() автор топика
Ответ на: комментарий от AITap

Содержимое файла /etc/init.d/acpi-support:

#!/bin/bash
# INIT script to check whether we're on batteries, and so start with laptop 
# mode etc enabled.

# BUGS: unless we start *really* late, we have no way of throttling 
# xscreensaver, since it won't be there to command.
. /usr/share/acpi-support/power-funcs

test -f /lib/lsb/init-functions || exit 1
. /lib/lsb/init-functions

test -d /var/lib/acpi-support || exit 0

shopt -s nullglob

case "$1" in
  start)
    log_begin_msg "Checking battery state..."
    /etc/acpi/power.sh
    log_end_msg 0
    ;;
  stop)
    log_begin_msg "Disabling power management..."
    /etc/acpi/power.sh false
    log_end_msg 0
    ;;
  *)
  ;;
esac
        
Gorthad
() автор топика
Ответ на: комментарий от AITap

Это же содержимое (или почти это же) и в других файлах

Gorthad
() автор топика
Ответ на: комментарий от Gorthad

Попробуйте остановить acpid и запустить его руками с параметром -d, чтобы он печатал подробный лог своих действий на экран. Возможно, это прояснит ситуацию (вдруг события на самом деле не срабатывают, или что-то в этом роде).

AITap ★★★★★
()
11 мая 2014 г.

Подскажите плз где настроить события по открытию/закрытию крышки в ноуте ВНЕ DE, а то ни одного мануала нормального не нашёл.

soko1 ★★★★★
()
Ответ на: комментарий от soko1

Вроде нашёл, скрипт /etc/acpi/lid.sh

Но всё равно хотелось бы побольше инфы о том как настроить простой ноута до перехода в выбранный режим и т.д.

soko1 ★★★★★
()
Последнее исправление: soko1 (всего исправлений: 1)

Подозреваю проблему в laptop-mode-tools. Эта дрянь скрипты держала в /usr/ и исполняла с приоритетом выше, чем у скриптов из /etc/, перекрывая пользовательские настройки.

dhameoelin ★★★★★
()
Последнее исправление: dhameoelin (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.