Настройка acpi и переключения режима батареи. [solved]

Пытаюсь настроить свой ноут на реагирование событий режима с зарядкой / 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 стал таким

event=ac_adapter AC 00000080 00000000
action=/etc/acpi/actions/pmg_switch_runlevel.sh %e

/etc/acpi/events/pmg_ac_adapter стал таким

event=ac_adapter AC 00000080 00000001
action=/etc/acpi/actions/pmg_switch_runlevel.sh %e

pmg_switch_runlevel.sh стал как сказал ciklop

#!/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 [[ "$(/bin/rc-status --runlevel)" != "${RUNLEVEL_AC}" ]]
    then
        logger "Switching to ${RUNLEVEL_AC} runlevel"
         /sbin/rc ${RUNLEVEL_AC}
  fi
  elif [[ "$(/bin/rc-status --runlevel)" != "${RUNLEVEL_BATTERY}" ]]
  then
    logger "Switching to ${RUNLEVEL_BATTERY} runlevel"
    /sbin/rc ${RUNLEVEL_BATTERY}
fi

но в выводе так и остается
вырубаю питание

Feb  3 01:15:41 ibm-laptop logger: ACPI event unhandled: ac_adapter AC 00000080 00000000
Feb  3 01:15:41 ibm-laptop logger: Switching to battery runlevel
Feb  3 01:15:41 ibm-laptop logger: ACPI event unhandled: processor CPU 00000081 00000000
Feb  3 01:15:41 ibm-laptop logger: ACPI event unhandled: thermal_zone THM0 00000081 00000000
Feb  3 01:15:41 ibm-laptop logger: ACPI event unhandled: battery BAT0 00000080 00000001

врубаю питание

Feb  3 01:15:50 ibm-laptop logger: ACPI event unhandled: ac_adapter AC 00000080 00000001
Feb  3 01:15:50 ibm-laptop logger: Switching to default runlevel

и потом снова 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

МЕГАБОЛЬШОЕ СПАСИБО! все отработало как нужно!

Нынче время рекламы: прицелы =)))))).

системные журнал

единственное - слишком много сообщений сыплется в системный журнал... это нормально?

отключение питания

Feb  3 14:14:49 ibm-laptop acpid: received event "ac_adapter AC 00000080 00000000"
Feb  3 14:14:49 ibm-laptop acpid: executing action "/etc/acpi/default.sh ac_adapter AC 00000080 00000000"
Feb  3 14:14:49 ibm-laptop logger: ACPI event unhandled: ac_adapter AC 00000080 00000000
Feb  3 14:14:49 ibm-laptop acpid: action exited with status 0
Feb  3 14:14:49 ibm-laptop acpid: executing action "/etc/acpi/actions/pmg_switch_runlevel.sh ac_adapter AC 00000080 00000000"
Feb  3 14:14:49 ibm-laptop logger: Switching to battery runlevel
Feb  3 14:14:49 ibm-laptop acpid: action exited with status 0
Feb  3 14:14:49 ibm-laptop acpid: completed event "ac_adapter AC 00000080 00000000"
Feb  3 14:14:49 ibm-laptop acpid: received event "processor CPU 00000081 00000000"
Feb  3 14:14:49 ibm-laptop acpid: executing action "/etc/acpi/default.sh processor CPU 00000081 00000000"
Feb  3 14:14:49 ibm-laptop logger: ACPI event unhandled: processor CPU 00000081 00000000
Feb  3 14:14:49 ibm-laptop acpid: action exited with status 0
Feb  3 14:14:49 ibm-laptop acpid: completed event "processor CPU 00000081 00000000"
Feb  3 14:14:49 ibm-laptop acpid: received event "thermal_zone THM0 00000081 00000000"
Feb  3 14:14:49 ibm-laptop acpid: executing action "/etc/acpi/default.sh thermal_zone THM0 00000081 00000000"
Feb  3 14:14:49 ibm-laptop logger: ACPI event unhandled: thermal_zone THM0 00000081 00000000
Feb  3 14:14:49 ibm-laptop acpid: action exited with status 0
Feb  3 14:14:49 ibm-laptop acpid: completed event "thermal_zone THM0 00000081 00000000"
Feb  3 14:14:49 ibm-laptop acpid: received event "battery BAT0 00000080 00000001"
Feb  3 14:14:49 ibm-laptop acpid: executing action "/etc/acpi/default.sh battery BAT0 00000080 00000001"
Feb  3 14:14:49 ibm-laptop logger: ACPI event unhandled: battery BAT0 00000080 00000001
Feb  3 14:14:49 ibm-laptop acpid: action exited with status 0
Feb  3 14:14:49 ibm-laptop acpid: completed event "battery BAT0 00000080 00000001"
Feb  3 14:14:49 ibm-laptop acpid: received event "battery BAT0 00000080 00000001"
Feb  3 14:14:49 ibm-laptop acpid: executing action "/etc/acpi/default.sh battery BAT0 00000080 00000001"
Feb  3 14:14:49 ibm-laptop logger: ACPI event unhandled: battery BAT0 00000080 00000001
Feb  3 14:14:49 ibm-laptop acpid: action exited with status 0
Feb  3 14:14:49 ibm-laptop acpid: completed event "battery BAT0 00000080 00000001"

включение питания

Feb  3 14:15:30 ibm-laptop acpid: received event "ac_adapter AC 00000080 00000001"
Feb  3 14:15:30 ibm-laptop acpid: executing action "/etc/acpi/default.sh ac_adapter AC 00000080 00000001"
Feb  3 14:15:30 ibm-laptop logger: ACPI event unhandled: ac_adapter AC 00000080 00000001
Feb  3 14:15:30 ibm-laptop acpid: action exited with status 0
Feb  3 14:15:30 ibm-laptop acpid: executing action "/etc/acpi/actions/pmg_switch_runlevel.sh ac_adapter AC 00000080 00000001"
Feb  3 14:15:30 ibm-laptop logger: Switching to default runlevel
Feb  3 14:15:40 ibm-laptop acpid: action exited with status 0
Feb  3 14:15:40 ibm-laptop acpid: completed event "ac_adapter AC 00000080 00000001"
Feb  3 14:15:40 ibm-laptop acpid: received event "processor CPU 00000081 00000000"
Feb  3 14:15:40 ibm-laptop acpid: executing action "/etc/acpi/default.sh processor CPU 00000081 00000000"
Feb  3 14:15:40 ibm-laptop logger: ACPI event unhandled: processor CPU 00000081 00000000
Feb  3 14:15:40 ibm-laptop acpid: action exited with status 0
Feb  3 14:15:40 ibm-laptop acpid: completed event "processor CPU 00000081 00000000"
Feb  3 14:15:40 ibm-laptop acpid: received event "thermal_zone THM0 00000081 00000000"
Feb  3 14:15:40 ibm-laptop acpid: executing action "/etc/acpi/default.sh thermal_zone THM0 00000081 00000000"
Feb  3 14:15:40 ibm-laptop logger: ACPI event unhandled: thermal_zone THM0 00000081 00000000
Feb  3 14:15:40 ibm-laptop acpid: action exited with status 0
Feb  3 14:15:40 ibm-laptop acpid: completed event "thermal_zone THM0 00000081 00000000"
Feb  3 14:15:40 ibm-laptop acpid: received event "battery BAT0 00000080 00000001"
Feb  3 14:15:40 ibm-laptop acpid: executing action "/etc/acpi/default.sh battery BAT0 00000080 00000001"
Feb  3 14:15:40 ibm-laptop logger: ACPI event unhandled: battery BAT0 00000080 00000001
Feb  3 14:15:40 ibm-laptop acpid: action exited with status 0
Feb  3 14:15:40 ibm-laptop acpid: completed event "battery BAT0 00000080 00000001"
Feb  3 14:15:40 ibm-laptop acpid: received event "battery BAT0 00000080 00000001"
Feb  3 14:15:40 ibm-laptop acpid: executing action "/etc/acpi/default.sh battery BAT0 00000080 00000001"
Feb  3 14:15:40 ibm-laptop logger: ACPI event unhandled: battery BAT0 00000080 00000001
Feb  3 14:15:40 ibm-laptop acpid: action exited with status 0
Feb  3 14:15:40 ibm-laptop acpid: completed event "battery BAT0 00000080 00000001"

Нынче время рекламы: прицелы =)))))).

нормально. ведь при

нормально. ведь при включении-выключении адаптера,как ты мог заметить, генерируется много различных событий, а не только 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 не отрабатывает.

#!/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

естественно # chmod +x /etc/acpi/actions/pmg_switch_runlevel.sh

файл pmg_ac_adapter

event=ac_adapter ACAD 00000000 00000001
action=/etc/acpi/actions/pmg_switch_runlevel.sh %e

файл pmg_battery

event=battery BAT1 00000080 00000001
action=/etc/acpi/actions/pmg_switch_runlevel.sh %e

строки из messages при отключении шнура питания

Mar 21 09:25:42 laptop logger: ACPI event unhandled: battery BAT1 00000080 00000001
Mar 21 09:25:45 laptop logger: ACPI event unhandled: battery BAT1 00000080 00000001
Mar 21 09:25:45 laptop kernel: [ 1717.814406] acpid used greatest stack depth: 5600 bytes left
Mar 21 09:25:45 laptop acpid: exiting
Mar 21 09:25:45 laptop acpid: starting up with proc fs
Mar 21 09:25:45 laptop acpid: 3 rules loaded
Mar 21 09:25:45 laptop acpid: waiting for events: event logging is off
Mar 21 09:25:56 laptop logger: ACPI event unhandled: battery BAT1 00000080 00000001
Mar 21 09:25:56 laptop logger: ACPI event unhandled: battery BAT1 00000000 00000001
Mar 21 09:25:56 laptop logger: ACPI event unhandled: ac_adapter ACAD 00000000 00000001
Mar 21 09:26:47 laptop logger: ACPI event unhandled: ac_adapter ACAD 00000000 00000000
Mar 21 09:26:47 laptop logger: ACPI event unhandled: processor CPU0 00000081 00000000
Mar 21 09:26:47 laptop logger: ACPI event unhandled: processor CPU1 00000081 00000000
Mar 21 09:26:47 laptop logger: ACPI event unhandled: battery BAT1 00000080 00000001
Mar 21 09:26:47 laptop logger: ACPI event unhandled: battery BAT1 00000080 00000001
Mar 21 09:26:47 laptop logger: ACPI event unhandled: processor CPU0 00000081 00000000
Mar 21 09:26:47 laptop logger: ACPI event unhandled: processor CPU1 00000081 00000000
Mar 21 09:26:47 laptop logger: ACPI event unhandled: battery BAT1 00000080 00000001
Mar 21 09:26:48 laptop logger: ACPI event unhandled: battery BAT1 00000080 00000001
Mar 21 09:27:03 laptop logger: ACPI event unhandled: battery BAT1 00000080 00000001
Mar 21 09:27:03 laptop logger: ACPI event unhandled: battery BAT1 00000000 00000001
Mar 21 09:27:03 laptop logger: ACPI event unhandled: ac_adapter ACAD 00000000 00000000

строки из messages при включении шнура питания

Mar 21 09:26:47 laptop logger: ACPI event unhandled: battery BAT1 00000080 00000001
Mar 21 09:26:48 laptop logger: ACPI event unhandled: battery BAT1 00000080 00000001
Mar 21 09:27:03 laptop logger: ACPI event unhandled: battery BAT1 00000080 00000001
Mar 21 09:27:03 laptop logger: ACPI event unhandled: battery BAT1 00000000 00000001
Mar 21 09:27:03 laptop logger: ACPI event unhandled: ac_adapter ACAD 00000000 00000000
Mar 21 09:27:16 laptop logger: ACPI event unhandled: ac_adapter ACAD 00000000 00000001
Mar 21 09:27:16 laptop logger: ACPI event unhandled: processor CPU0 00000081 00000000
Mar 21 09:27:16 laptop logger: ACPI event unhandled: processor CPU1 00000081 00000000
Mar 21 09:27:16 laptop logger: ACPI event unhandled: battery BAT1 00000080 00000001
Mar 21 09:27:16 laptop logger: ACPI event unhandled: battery BAT1 00000080 00000001
Mar 21 09:27:16 laptop logger: ACPI event unhandled: processor CPU0 00000081 00000000
Mar 21 09:27:16 laptop logger: ACPI event unhandled: processor CPU1 00000081 00000000
Mar 21 09:27:16 laptop logger: ACPI event unhandled: battery BAT1 00000080 00000001
Mar 21 09:27:20 laptop logger: ACPI event unhandled: battery BAT1 00000080 00000001
Mar 21 09:27:22 laptop logger: ACPI event unhandled: battery BAT1 00000080 00000001

затем # /etc/init.d/acpid restart

отключаю шнур питания и смотрю текущий runlevel

# rc-status -r
default

На battery как видно не перешел.
При этом никаких сообщений в log'е типа "Switching to..." которые озвучены в скрипте.

# rc-status default
Runlevel: default
acpid      [ started  ]
gpm        [ started  ]
local      [ stopped  ]
mpd        [ started  ]
syslog-ng  [ started  ]
vixie-cron [ started  ]
# rc-status battery
Runlevel: battery
acpid      [ started  ]
gpm        [ started  ]
local      [ stopped  ]
mpd        [ started  ]
syslog-ng  [ started  ]
vixie-cron [ started  ]

Что вообще нет ни у кого

Что вообще нет ни у кого соображений почему не отработал скрипт?

Ппрописал скрипт в local и

Ппрописал скрипт в local и запустил. Ошибка была в синтаксисе скрипта pmg_switch_runlevel.sh, но где именно так и не нашел.

* Starting local ...
/etc/conf.d/local.start: /etc/acpi/actions/pmg_switch_runlevel.sh: /bin/bash^M: bad interpreter: No such file or directory
 * Failed to start local

Заменил файл на аналогичный и все пошло.

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".