cac2s |
|
Темы:
6
Сообщения:
277
Участник с: 10 января 2009
|
При загрузке ноута acpid нормально запускается, НО кусок кода из /etc/acpi/handler.sh наглым образом игнорируется. Собсно сам кусок кода: ... 0000006b) TPSTATUS=`synclient -l | grep TouchpadOff | awk '{print $3}'` if [ $TPSTATUS = 0 ]; then synclient TouchpadOff=1 else synclient TouchpadOff=0 fi ;; ... У кого какие мысли? З.Ы.: Вариант с автоматическим отключением тачпада при воткнутой мыше не предлагать!!! З.Ы.Ы.: На всяк случай весь /etc/acpid/handler.sh: #!/bin/sh # Default acpi script that takes an entry for all actions # NOTE: This is a 2.6-centric script. If you use 2.4.x, you'll have to # modify it to not use /sys minspeed=`cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_min_freq` maxspeed=`cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq` setspeed="/sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed" set $* case "$1" in button/power) #echo "PowerButton pressed!">/dev/tty5 case "$2" in PWRF) logger "PowerButton pressed: $2::$3" ;; *) logger "ACPI action undefined: $2::$3" ;; esac ;; button/sleep) case "$2" in SLPB) echo -n mem >/sys/power/state ;; *) logger "ACPI action undefined: $2::$3" ;; esac ;; ac_adapter) case "$2" in AC) case "$4" in 00000000) echo -n $minspeed >$setspeed #/etc/laptop-mode/laptop-mode start ;; 00000001) echo -n $maxspeed >$setspeed #/etc/laptop-mode/laptop-mode stop ;; esac ;; *) logger "ACPI action undefined: $2::$3" ;; esac ;; battery) case "$2" in BAT0) case "$4" in 00000000) #echo "offline" >/dev/tty5 ;; 00000001) #echo "online" >/dev/tty5 ;; esac ;; CPU0) ;; *) logger "ACPI action undefined: $2::$3" ;; esac ;; button/lid) #echo "LID switched!">/dev/tty5 ;; hotkey) case "$2" in ATKD) case "$3" in 00000040) mpc prev ;; 00000041) mpc next ;; 00000043) mpc stop ;; 00000045) mpc toggle ;; 0000006b) TPSTATUS=`synclient -l | grep TouchpadOff | awk '{print $3}'` if [ $TPSTATUS = 0 ]; then synclient TouchpadOff=1 else synclient TouchpadOff=0 fi ;; *) logger "ACPI action undefined: $2::$3" ;; esac ;; *) logger "ACPI action undefined: $2::$3" ;; esac ;; *) logger "ACPI group/action undefined: $2::$3" ;; esac |
exire |
|
Темы:
5
Сообщения:
181
Участник с: 25 ноября 2006
|
Есть подозрение, что для работы synclient требуется, чтобы переменная DISPLAY была определена. Когда acpid стартует из системных скриптов, она, естественно, пустая. Когда ты рестартуешь acpid руками, переменная DISPLAY наследуется из твоего окружения. |
cac2s |
|
Темы:
6
Сообщения:
277
Участник с: 10 января 2009
|
eXireВ точку! Если сразу после старта Ctrl+Alt+F1 и там # synclient -l - получаем: Failed to connect to X Server. Осталось совсем ничего: победить эту маленькую? неприятность. Есть у кого какие идеи? Подсобите, не стесняйтесь. :) |
exire |
|
Темы:
5
Сообщения:
181
Участник с: 25 ноября 2006
|
cac2sВ /etc/acpi/handler.sh добавить в начало:eXireВ точку! Если сразу после старта Ctrl+Alt+F1 и там # synclient -l - получаем: Failed to connect to X Server. export DISPLAY=0:0 |
cac2s |
|
Темы:
6
Сообщения:
277
Участник с: 10 января 2009
|
eXireПопробовал добавить в скрипт export DISPLAY=“:0” - не помогло (export DISPLAY=0:0 тоже пробовал), хотя если вне иксов выполнить: $ export DISPLAY=":0" $ synclient -l |
cac2s |
|
Темы:
6
Сообщения:
277
Участник с: 10 января 2009
|
Уррррраааааа!!! Дядя Фёдор приехал!!!!!! (с) Решение как всегда было под носом: http://wiki.archlinux.org/index.php/Acpid Сделал следующее: добавил в начало скрипта функцию, которая позволяет получить имя пользователя, работающего сейчас в системе, + чуток подправил кусок неработающего (теперь уже работающего ;D ) кода. В итоге: #!/bin/sh # Default acpi script that takes an entry for all actions # NOTE: This is a 2.6-centric script. If you use 2.4.x, you'll have to # modify it to not use /sys minspeed=`cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_min_freq` maxspeed=`cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq` setspeed="/sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed" getuser () { export DISPLAY=`echo $DISPLAY | cut -c -2` user=`who | grep " $DISPLAY" | awk '{print $1}' | tail -n1` export XAUTHORITY=/home/$user/.Xauthority eval $1=$user } set $* case "$1" in button/power) #echo "PowerButton pressed!">/dev/tty5 case "$2" in PWRF) logger "PowerButton pressed: $2::$3" ;; *) logger "ACPI action undefined: $2::$3" ;; esac ;; button/sleep) case "$2" in SLPB) echo -n mem >/sys/power/state ;; *) logger "ACPI action undefined: $2::$3" ;; esac ;; ac_adapter) case "$2" in AC) case "$4" in 00000000) echo -n $minspeed >$setspeed #/etc/laptop-mode/laptop-mode start ;; 00000001) echo -n $maxspeed >$setspeed #/etc/laptop-mode/laptop-mode stop ;; esac ;; *) logger "ACPI action undefined: $2::$3" ;; esac ;; battery) case "$2" in BAT0) case "$4" in 00000000) #echo "offline" >/dev/tty5 ;; 00000001) #echo "online" >/dev/tty5 ;; esac ;; CPU0) ;; *) logger "ACPI action undefined: $2::$3" ;; esac ;; button/lid) #echo "LID switched!">/dev/tty5 ;; hotkey) case "$2" in ATKD) case "$3" in 00000040) mpc prev ;; 00000041) mpc next ;; 00000043) mpc stop ;; 00000045) mpc toggle ;; 0000006b) getuser "$user" TPSTATUS=`DISPLAY=:0 su $user -c "synclient -l" | grep TouchpadOff | awk '{print $3}'` echo $TPSTATUS > /dev/tty5 if [ $TPSTATUS = 0 ]; then DISPLAY=:0 su $user -c "synclient TouchpadOff=1" else DISPLAY=:0 su $user -c "synclient TouchpadOff=0" fi ;; *) logger "ACPI action undefined: $2::$3" ;; esac ;; *) logger "ACPI action undefined: $2::$3" ;; esac ;; *) logger "ACPI group/action undefined: $2::$3" ;; esac |
vdemin |
|
Темы:
54
Сообщения:
1615
Участник с: 24 января 2009
|
Стандартный /etc/acpi/handler.sh#!/bin/sh # Default acpi script that takes an entry for all actions # NOTE: This is a 2.6-centric script. If you use 2.4.x, you'll have to # modify it to not use /sys minspeed=`cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_min_freq` maxspeed=`cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq` setspeed="/sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed" set $* case "$1" in button/power) #echo "PowerButton pressed!">/dev/tty5 case "$2" in PWRF) logger "PowerButton pressed: $2" ;; *) logger "ACPI action undefined: $2" ;; esac ;; button/sleep) case "$2" in SLPB) echo -n mem >/sys/power/state ;; *) logger "ACPI action undefined: $2" ;; esac ;; ac_adapter) case "$2" in AC) case "$4" in 00000000) echo -n $minspeed >$setspeed #/etc/laptop-mode/laptop-mode start ;; 00000001) echo -n $maxspeed >$setspeed #/etc/laptop-mode/laptop-mode stop ;; esac ;; *) logger "ACPI action undefined: $2" ;; esac ;; battery) case "$2" in BAT0) case "$4" in 00000000) #echo "offline" >/dev/tty5 ;; 00000001) #echo "online" >/dev/tty5 ;; esac ;; CPU0) ;; *) logger "ACPI action undefined: $2" ;; esac ;; button/lid) #echo "LID switched!">/dev/tty5 ;; *) logger "ACPI group/action undefined: $1 / $2" ;; esac logger “ACPI group/action undefined: $1 / $2”но этого не происходит. Xev эти кнопки видит, acpi-модуль button загружен. Проверял - кнопка Power в handler.sh обрабатывается. Почему же скрипт игнорирует ноутбучные кнопки? |
cac2s |
|
Темы:
6
Сообщения:
277
Участник с: 10 января 2009
|
acpi_listen их видит? какой ноут? покажи $ lsmod acpi |
muu |
|
Темы:
8
Сообщения:
476
Участник с: 16 ноября 2008
|
Если их видит xev - то зачем ты прикручиваешь их обработку через acpid? Используй xbindkeys или средства своего WM|DE. |
vdemin |
|
Темы:
54
Сообщения:
1615
Участник с: 24 января 2009
|
cac2s, Acpi_listen не видит. Ноут HP Compaq nx9020. $ lsmod | grep acpi pata_acpi 3828 0 libata 156908 3 ata_piix,ata_generic,pata_acpi MuuХочу, чтобы в консоли тоже работало. |