Энергосбережение на ноутбуке (видеокарта ATI)

Всё, что связано с ноутбуками.

Модератор: Модераторы разделов

Sangre
Сообщения: 3

Энергосбережение на ноутбуке (видеокарта ATI)

Сообщение Sangre »

Здравствуйте коллеги!

Озаботился я экономией заряда батареи на ноутбуке.
Модель DELL Inspirion 1501 - AMD Turion 64 X2 TL-56/1800мгц/1024мб/120гб/DVD±RW/WiFi/Ati Mobility Radeon x1150/15,4"

Со всем железом (CPU, HDD, LCD) все более менее понятно.
Всякие laptop-mode-tools, cpufreq работают нормально.

Воюя с acpid обнаружил, что с драйверами ati-drivers-8.433 поставляется скрипт для переключения режима энергопотребления видеокарты при питании от батареи и при закрытии крышки(LID) /etc/acpi/ati-powermode.sh

Код:

#!/bin/bash # # Control script for ACPI lid state and AC adapter state # getXuser() { user=`who| grep -m1 ":$displaynum " | awk '{print $1}'` if [ x"$user" = x"" ]; then user=`who| grep -m1 ":$displaynum" | awk '{print $1}'` fi if [ x"$user" != x"" ]; then userhome=`getent passwd $user | cut -d: -f6` export XAUTHORITY=$userhome/.Xauthority else export XAUTHORITY="" fi } aticonfig='/opt/bin/aticonfig' # default high power state default_state=`$aticonfig --lsp | grep 'default state' | cut -c 3` grep -q closed /proc/acpi/button/lid/*/state if [ $? = 0 ]; then lid_closed=1 echo "Lid Closed" else lid_closed=0 echo "Lid Open" fi grep -q off-line /proc/acpi/ac_adapter/*/state if [ $? = 0 ]; then echo "On DC" on_dc=1 else echo "On AC" on_dc=0 fi if [ ${lid_closed} -eq 1 -o ${on_dc} -eq 1 ]; then echo "Low power" for x in /tmp/.X11-unix/*; do displaynum=`echo $x | sed s#/tmp/.X11-unix/X##` getXuser; if [ x"$XAUTHORITY" != x"" ]; then export DISPLAY=":$displaynum" su $user -c "$aticonfig --set-powerstate=1 --effective=now" fi done else echo "high power" for x in /tmp/.X11-unix/*; do displaynum=`echo $x | sed s#/tmp/.X11-unix/X##` getXuser; if [ x"$XAUTHORITY" != x"" ]; then export DISPLAY=":$displaynum" su $user -c "$aticonfig --set-powerstate=$default_state --effective=now" fi done fi


Если я делаю /opt/bin/aticonfig --lsp

Код:

core/mem [flags] ----------------- 1: 100/133 MHz [low voltage] * 2: 401/401 MHz [default state]


Смена режима по команде /opt/bin/aticonfig --set-powerstate={№ режима} происходит нормально.
А вот в автоматическом режиме нет

При отключении питания ноутбука (отключении адаптера) в лог записывается

Код:

Jan 9 15:34:47 sangrebook acpid: executing action "/etc/acpi/ati-powermode.sh" Jan 9 15:34:48 sangrebook acpid: action exited with status 0


Т.е. вроде как скрипт отрабатывает но режим работы адаптера не меняется.

Уважаемые скриптописатели и скриптописательницы (ежели такие бывают :) ) помогите разобраться.
Меня лично смущает строка

Код:

su $user -c "$aticonfig --set-powerstate=$default_state --effective=now"


При попытке выполнить такую команду заменив переменные реальными значениями запрашивает пароль пользователя. Возможно в этом причина...

Заранее огромное спасибо.

P.S.: acpid запускает описанный выше скрипт от root. Дистрибутив Gentoo. Хотя не думаю что дистрибутив тут критичен.
man mount
Спасибо сказали: