Доброго времени суток.
Хочу настроить acpid, чтобы он автоматически менял яркость экрана ноутбука и заодно изменял частоту процессора.
В папке /etc/acpi/events завёл три события: ac, bat и event.
[root@VanyaBook events]# cat ac
event=AC*
action=/etc/acpi/scripts/OnPower %e
[root@VanyaBook events]# cat bat
event=bat*
action=/etc/acpi/scripts/OnBatt %e
[root@VanyaBook events]# cat event
event=button*
action=echo `date`: %e >> ~/acpi
[root@VanyaBook events]#
Создал соответствующие скрипты в /etc/acpi/scripts: OnBatt, OnPower, activate:
[root@VanyaBook scripts]# cat OnBatt
/etc/acpi/scripts/activate powersave $1
[root@VanyaBook scripts]# cat OnPower
/etc/acpi/scripts/activate performance $1[root@VanyaBook scripts]# cat activate
#!/bin/bash
profile=$1
log=~/acpi
if [ -f /etc/acpi/profiles/$profile ]
then
#Выбор текущего профиля для дальнейшей работы
echo $profile > /etc/acpi/active_profile
echo `date`: activating profile $profile. >> $log
echo `date`: parameter from acpid: $2. >> $log
#Установка режима работы процессора, если настройка есть в файле профиля
#Здесь есть ограничение на 10 ЦП в заголовке цикла for
#(если есть больше, то режим устанавливается только для первых 10-и).
cat /etc/acpi/profiles/$1 | grep -v ^# | grep cpu > /dev/null
if [ $? -eq 0 ]
then
set `cat /etc/acpi/profiles/$1 | grep -v ^# | grep cpu`
for i in /sys/devices/system/cpu/cpu?
do
echo $3 > ${i}/cpufreq/scaling_governor
echo `date`: set $3 in ${i}/cpufreq/scaling_governor. >> $log
done
fi
#Установка яркости экрана, если настройка есть в файле профиля
cat /etc/acpi/profiles/$profile | grep -v ^# | grep backlight > /dev/null
if [ $? -eq 0 ]
then
set `cat /etc/acpi/profiles/$profile | grep -v ^# | grep backlight`
xrandr --output LVDS1 --set BACKLIGHT $3
echo `date`: set backlight for LVDS1: $3. >> $log
fi
fi
echo ---------------------------------------------- >> $log
[root@VanyaBook scripts]#
Создал профили с настройками: /etc/acpi/profiles: powersave, performance.
[root@VanyaBook profiles]# cat performance
cpu = powersave
backlight = 10
[root@VanyaBook profiles]# cat powersave
cpu = powersave
backlight = 0
[root@VanyaBook profiles]#
Теперь у меня при выполнении этих скриптов яркость экрана попеременно то гаснет в 0, то зажигается в 10. В логе получается вот что:
...
----------------------------------------------
Sun Apr 29 10:29:11 EEST 2012: activating profile performance.
Sun Apr 29 10:29:11 EEST 2012: parameter from acpid: battery.
Sun Apr 29 10:29:11 EEST 2012: set powersave in /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor.
Sun Apr 29 10:29:11 EEST 2012: set powersave in /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor.
Sun Apr 29 10:29:11 EEST 2012: set backlight for LVDS1: 10.
----------------------------------------------
Sun Apr 29 10:29:11 EEST 2012: activating profile powersave.
Sun Apr 29 10:29:11 EEST 2012: parameter from acpid: battery.
Sun Apr 29 10:29:11 EEST 2012: set powersave in /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor.
Sun Apr 29 10:29:11 EEST 2012: set powersave in /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor.
Sun Apr 29 10:29:12 EEST 2012: set backlight for LVDS1: 0.
----------------------------------------------
Sun Apr 29 10:29:30 EEST 2012: activating profile performance.
Sun Apr 29 10:29:30 EEST 2012: parameter from acpid: battery.
Sun Apr 29 10:29:30 EEST 2012: set powersave in /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor.
Sun Apr 29 10:29:30 EEST 2012: set powersave in /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor.
Sun Apr 29 10:29:30 EEST 2012: set backlight for LVDS1: 10.
----------------------------------------------
Sun Apr 29 10:29:32 EEST 2012: activating profile powersave.
Sun Apr 29 10:29:32 EEST 2012: parameter from acpid: battery.
Sun Apr 29 10:29:32 EEST 2012: set powersave in /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor.
Sun Apr 29 10:29:32 EEST 2012: set powersave in /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor.
Sun Apr 29 10:29:33 EEST 2012: set backlight for LVDS1: 0.
----------------------------------------------
Я что-то напутал в событиях, или это глюк acpid?