Настройка acpi и переключения режима батареи. [solved]
jazy 2 февраля, 2009 - 20:12
Пытаюсь настроить свой ноут на реагирование событий режима с зарядкой / c батареей по мануалу:
http://iandmyfriendgentoo.blogspot.com/2007/12/blog-post_12.html
и какая то хрень получается...=( третий день мучаюсь - при отрабатывании событий отваливается acpi. При выдергивании питалова и появлется следующее:
Feb 2 19:07:35 ibm-laptop acpid: received event "ac_adapter AC 00000080 00000000" Feb 2 19:07:35 ibm-laptop acpid: executing action "/etc/acpi/default.sh ac_adapter AC 00000080 00000000" Feb 2 19:07:35 ibm-laptop logger: ACPI event unhandled: ac_adapter AC 00000080 00000000 Feb 2 19:07:35 ibm-laptop acpid: action exited with status 0 Feb 2 19:07:35 ibm-laptop acpid: executing action "/etc/acpi/actions/pmg_switch_runlevel.sh ac_adapter AC 00000080 00000000" Feb 2 19:07:35 ibm-laptop logger: Switching to battery runlevel Feb 2 19:07:40 ibm-laptop /etc/init.d/acpid[10536]: start-stop-daemon: 1 process refused to stop Feb 2 19:07:40 ibm-laptop acpid: action exited with status 0 Feb 2 19:07:40 ibm-laptop acpid: exiting
вот собственно сами события /etc/acpi/events/pmg_ac_adapter и /etc/acpi/events/pmg_battery.
------------
ibm-laptop jazy # cat /etc/acpi/events/pmg_ac_adapter
event=ac_adapter.* action=/etc/acpi/actions/pmg_switch_runlevel.sh %e
------------
ibm-laptop jazy # cat /etc/acpi/events/pmg_battery
event=battery.* action=/etc/acpi/actions/pmg_switch_runlevel.sh %e
ну и сам обработчик
----------
ibm-laptop jazy # cat /etc/acpi/actions/pmg_switch_runlevel.sh
#!/bin/bash # BEGIN configuration RUNLEVEL_AC="default" RUNLEVEL_BATTERY="battery" # END configuration if [ ! -d "/etc/runlevels/${RUNLEVEL_AC}" ] then logger "${0}: Runlevel ${RUNLEVEL_AC} does not exist. Aborting." exit 1 fi if [ ! -d "/etc/runlevels/${RUNLEVEL_BATTERY}" ] then logger "${0}: Runlevel ${RUNLEVEL_BATTERY} does not exist. Aborting." exit 1 fi if on_ac_power then if [[ "$(</var/lib/init.d/softlevel)" != "${RUNLEVEL_AC}" ]] then logger "Switching to ${RUNLEVEL_AC} runlevel" /sbin/rc ${RUNLEVEL_AC} fi elif [[ "$(</var/lib/init.d/softlevel)" != "${RUNLEVEL_BATTERY}" ]] then logger "Switching to ${RUNLEVEL_BATTERY} runlevel" /sbin/rc ${RUNLEVEL_BATTERY} fi
Прошу гуру прокомментирвоать... голова уже квадратная...
Еще кстати у меня почему то softlevel нет...может с этим связано?
»
- Для комментирования войдите или зарегистрируйтесь
Запусти в консоли
/etc/acpi/actions/pmg_switch_runlevel.sh ac_adapter AC 00000080 00000000
и наблюдай вывод, может поможет
P.S внимательно прочитал... А в уровне battery демон acpid есть? Если нет то естественно он останавливается
P.P.S. http://www.gentoo.org/doc/en/power-management-guide.xml
Используй оригинал.
в baselayout&openrc нету softlevel
#!/bin/bash
# BEGIN configuration
RUNLEVEL_AC="default"
RUNLEVEL_BATTERY="battery"
# END configuration
if [ ! -d "/etc/runlevels/${RUNLEVEL_AC}" ]
then
logger "${0}: Runlevel ${RUNLEVEL_AC} does not exist. Aborting."
exit 1
fi
if [ ! -d "/etc/runlevels/${RUNLEVEL_BATTERY}" ]
then
logger "${0}: Runlevel ${RUNLEVEL_BATTERY} does not exist. Aborting."
exit 1
fi
if on_ac_power
then
if [[ "$(rc-status --runlevel)" != "${RUNLEVEL_AC}" ]]
then
logger "Switching to ${RUNLEVEL_AC} runlevel"
/sbin/rc ${RUNLEVEL_AC}
fi
elif [[ "$(rc-status --runlevel)" != "${RUNLEVEL_BATTERY}" ]]
then
logger "Switching to ${RUNLEVEL_BATTERY} runlevel"
/sbin/rc ${RUNLEVEL_BATTERY}
fi
такой вариант попробуй
rc-update add acpid battery
rc-update add acpid battery
Ubuntu is an African Word that means "Gentoo is too hard for me"
Кажется пронюхал... все
Кажется пронюхал... все трабла как раз в softlevel. После того как обработчик его не находит посылает на acpid сообщение об остановке...
Что за зверь softlevel? про него сооооовсем мало в инете написано...
Нынче время рекламы: прицелы =)))))).
softlevel судя по всему
softlevel судя по всему должен выводить имя текущего runlevel
Только его потеряли в OpenRC..
Сейчас кое-что
Сейчас кое-что поменял:
/etc/acpi/events/pmg_battery стал таким
/etc/acpi/events/pmg_ac_adapter стал таким
pmg_switch_runlevel.sh стал как сказал ciklop
но в выводе так и остается
вырубаю питание
врубаю питание
и потом снова acpid на выход: Feb 3 01:28:44 ibm-laptop acpid: exiting
к тому же и сам обработчик по что то нехочет шевелиться:
ibm-laptop conf.d # /etc/acpi/actions/pmg_switch_runlevel.sh ac_adapter AC 00000080 00000000
ibm-laptop conf.d # /etc/acpi/actions/pmg_switch_runlevel.sh ac_adapter AC 00000080 00000001
а в ответ тишина...
Нынче время рекламы: прицелы =)))))).
мне кажется у тебя всё
мне кажется у тебя всё работает:))
"в ответ тишина" так и должно быть, ошибок ведь нет.
ты после каждого эксперимента(включения-выключения адаптера) проверяй текущий уровень с помощью
/bin/rc-status --runlevel
/bin/rc-status --runlevel
P.S. а event-ы верни лучше в исходное состояние
=((( если бы так... в логах
=((( если бы так...
в логах вижу Feb 3 01:28:44 ibm-laptop acpid: exiting
Тоесть получается акпид отваливается при отработке отдого такта отрубания питания / включения петания
После этого приходится заново врубать: /etc/init.d/acpid start
Нынче время рекламы: прицелы =)))))).
#rc-config list скинь
#rc-config list
скинь куда-нибудь на помотреть.
ссылко
http://liferu.ru/download/rc_config_list
Нынче время рекламы: прицелы =)))))).
" acpid
" acpid battery"
Вот ответ.. прии переходе с battery в default у тебя и будет останавливаться acpid, потомучто его в default нету.
SOLVED
МЕГАБОЛЬШОЕ СПАСИБО! все отработало как нужно!
Нынче время рекламы: прицелы =)))))).
системные журнал
единственное - слишком много сообщений сыплется в системный журнал... это нормально?
отключение питания
включение питания
Нынче время рекламы: прицелы =)))))).
нормально. ведь при
нормально. ведь при включении-выключении адаптера,как ты мог заметить, генерируется много различных событий, а не только ac_adapter. Кстати в режиме работы от батарей я логер вообще выключаю он у меня только в рунлевеле default.
Проверте /etc/conf.d/acpid
Проверте /etc/conf.d/acpid Если там в параметрах запуска стоит -l то уберите. Это отключит логирование событий, и пишите что нужно в лог сами.
ЗЫ Кстати может кто-нибудь подскажет и по моей проблеме? http://gentoo.ru/content/acpid-i-unhandled-event
у меня сделано
у меня сделано так:
http://nikoli.selfip.org/ru/node/417
добавил в закладки) есть
добавил в закладки) есть интересные идеи.
колись =)
колись =) тоже интересно )))))
Нынче время рекламы: прицелы =)))))).
Я хочу отказаться полностью
Я хочу отказаться полностью от гуёвых утилит по настройке энергосбережения. Посему весьма волнуюn всякие рецепты по управлению ядром и всякими устройствами через /sys и /proc
Проблема при использовании
Проблема при использовании ACPI на двух runlevel'ах, скрипт pmg_switch_runlevel.sh не отрабатывает.
естественно
# chmod +x /etc/acpi/actions/pmg_switch_runlevel.sh
файл pmg_ac_adapter
файл pmg_battery
строки из messages при отключении шнура питания
строки из messages при включении шнура питания
затем
# /etc/init.d/acpid restart
отключаю шнур питания и смотрю текущий runlevel
На battery как видно не перешел.
При этом никаких сообщений в log'е типа "Switching to..." которые озвучены в скрипте.
Что вообще нет ни у кого
Что вообще нет ни у кого соображений почему не отработал скрипт?
Ппрописал скрипт в local и
Ппрописал скрипт в local и запустил. Ошибка была в синтаксисе скрипта pmg_switch_runlevel.sh, но где именно так и не нашел.
Заменил файл на аналогичный и все пошло.