На мой взгляд статья получилась хорошей, но ixbt устроен так, что я не могу делать там обновления.
Поэтому я публикую ее в моем блоге. Здесь будут вноситься изменения, если таковые появятся.
А когда будет время поправлю структуру и ссылки в основной статье об экономии электричества в линуксе.
На все про все, если вы делаете это в первый раз, запаситесь примерно 2-мя часами.
Потребление замеряется в idle и с уровнем подсветки дисплея 20%. Когда систему "успокоилась" и переходные процессы завершены.
Каждый раздел оптимизации не зависит от другого и может быть применен отдельно.
- Установка и настройка pm-utils
- Установить необходимые программы: apmd, pm-utils и т.п.
$ sudo apt-get install apmd pm-utils hdparm libnotify-bin - Создадим скрип управления энергопотреблением:
$ sudo gedit /usr/lib/pm-utils/power.d/99-savings.sh В появившемся окне редактора копипастим следующий текст###################################################################################### # A script to aggressively toggle power management between high # performance and very low power consumption. # For more information on each of these options, see http://www.lesswatts.org # Last version script see http://axa-ru.blogspot.com/2012/01/thinkpad-x220-powersaving.html ################# Changes history ################################################### #VERSION=0.12 # 31.08.2010 Testing Ubuntu 10.04. Small changes for Wi-Fi control #VERSION=0.13 # 21.09.2010 Adding services control: # evolution-alarm-notify, # postfix, # rsyslog #VERSION=0.2 # 23.07.2011 Modified for Ubintu 11.04 for Thinkpad x220 4290rw1 #VERSION=0.23 # 27.07.2011 Added store value (Brightness, user, etc ) to /tmp/powersave.ini # Fix notify-send message # Added CPU core disabling. Disable cores not affected for power saving #VERSION=0.23.1 # 07.01.2012 Fix ethtool parameters in aLan procedure # #VERSION=0.23.2 # 07.01.2012 Fix aBrightness procedure VERSION=0.24 # 08.01.2012 Added start/stop conky monitor # # To install: # # sudo apt-get install apmd pm-utils expect hdparm libnotify-bin # # Save this file to /usr/lib/pm-utils/power.d/99-savings.sh # cd /usr/lib/pm-utils/power.d # sudo install 99-savings.sh /etc/pm/sleep.d # sudo install 99-savings.sh /etc/pm/power.d # INI_DIR=/tmp INI_FILE=powersave.ini INI=${INI_DIR}/${INI_FILE} aUsb() { ################################################# ## USB Subsystem ## # 0.7-0.8 W case "$1" in false) #ac_power for i in /sys/bus/usb/devices/*/power/control do echo "on" > $i done ;; true) #batt_power for i in /sys/bus/usb/devices/*/power/control do echo "auto" > $i done for i in /sys/bus/usb/devices/*/power/autosuspend do echo 1 > $i done echo 1 > /sys/module/usbcore/parameters/autosuspend ;; esac } aSata() { case "$1" in false) #ac_power # Set the SATA to max performance for i in /sys/class/scsi_host/host*/link_power_management_policy do echo max_performance > $i done ;; true) #batt_power # Set SATA to minimum power # 0.7 W for i in /sys/class/scsi_host/host*/link_power_management_policy do echo min_power > $i done ;; esac } aPci() { case "$1" in false) #ac_power for i in /sys/bus/pci/devices/*/power/control do echo on > $i done ;; true) #batt_power for i in /sys/bus/pci/devices/*/power/control do echo auto > $i done ;; esac } aI2c() { case "$1" in false) #ac_power for i in /sys/bus/i2c/devices/i2c-*/power/control do echo on > $i done ;; true) #batt_power for i in /sys/bus/i2c/devices/i2c-*/power/control do echo auto > $i done ;; esac } aHdd() { case "$1" in false) #ac_power # Set the drive to mostly stay awake. Some may want to change -B 200 # to -B 255 to avoid accumulating Load_Cycle_Counts # -S 240 => put in standby after 20 minutes idle # -B 200 => do not permit spindown # -M => not supported by my drive hdparm -B 200 -S 240 -M 254 /dev/sda # Remount ext3/4 filesystems so the journal commit only happens every 60 # seconds. By default this is 5 but, I prefer to reduce the disk # activity a bit. mount -o remount,commit=60,atime / ;; true) #batt_power hdparm -B 1 -S 4 -M 128 /dev/sda mount -o remount,noatime,commit=600 / ;; esac } aSsd() { # add these commands in the /etc/rc.local # echo deadline > /sys/block/sda/queue/scheduler # echo 1 > /sys/block/sda/queue/iosched/fifo_batch # sysctl -w vm.swappiness=1 # Strongly discourage swapping # sysctl -w vm.vfs_cache_pressure=50 # Don't shrink the inode cache aggressively case "$1" in false) #ac_power ;; true) #batt_power ;; esac } aI915() { case "$1" in false) #ac_power echo 0 > /sys/module/i915/parameters/powersave ;; true) #batt_power echo 1 > /sys/module/i915/parameters/powersave ;; esac } aWlan() { # WiFi power savings. case "$1" in false) #ac_power /sbin/iwconfig wlan0 power off txpower 14 ;; true) #batt_power /sbin/iwconfig wlan0 power on txpower 4 ;; esac } aLan() { case "$1" in false) #ac_power # set the ethernet max speed. ethtool -s eth0 speed 1000 duplex full autoneg on wol d ;; true) #batt_power # set the ethernet power savings. # ~ 0.4 W ethtool -s eth0 speed 10 duplex half autoneg off wol d ;; esac } aCpu() { ################################################# ## CPU ## case "$1" in false) #ac_power for i in /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor do echo performance > $i done # Enable All Core CPU for i in /sys/devices/system/cpu/cpu*/online do echo 1 > $i done # Set max freq 2.7 GHz # for i in /sys/devices/system/cpu/cpu*/cpufreq/scaling_max_freq # do # echo 2701000 > $i # done # Shedule Multitreading echo 0 > /sys/devices/system/cpu/sched_mc_power_savings ;; true) #batt_power for i in /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor do echo powersave > $i done # Set max freq 1 GHz # for i in /sys/devices/system/cpu/cpu*/cpufreq/scaling_max_freq # do # echo 1000000 > $i # done # Disable cores not affected for power saving # for i in /sys/devices/system/cpu/cpu*/online # do # echo 0 > $i # done echo 1 > /sys/devices/system/cpu/sched_mc_power_savings ;; esac } aSnd() { case "$1" in false) #ac_power echo 0 > /sys/module/snd_hda_intel/parameters/power_save ;; true) #batt_power # Turn off sound card power savings # < 0.1 W echo 10 > /sys/module/snd_hda_intel/parameters/power_save ;; esac } aBt() { case "$1" in false) #ac_power # Enable the bluetooth driver rfkill unblock bluetooth ;; true) #batt_power # Remove the bluetooth driver # 0.3-0.4 W rfkill block bluetooth ;; esac } aDaemons() { ################################################# ## demons, services ## case "$1" in false) #ac_power # 1. Evolution alarm and integrations /usr/lib/evolution/2.32/evolution-alarm-notify & #/usr/lib/evolution/e-calendar-factory & #/usr/lib/evolution/e-addressbook-factory & # 2. Starting Sendmail server #postfix start # 3. Starting CouchDB & desktopcouch dbus-send --session --dest=org.desktopcouch.CouchDB --print-reply --type=method_call / org.desktopcouch.CouchDB.getPort # 4. Starting conky if [ ${CONKY_RUN} -eq 1 ]; then su $vUSER -c "/usr/bin/conky --display=:0 &" fi ;; true) #batt_power # 1. Evolution alarm killall evolution-alarm-notify #killall e-calendar-factory #killall e-addressbook-factory # 2. Stopping Sendmail server #postfix stop # 3. Stoping CouchDB & desktopcouch killall beam.smp killall desktopcouch-service # Stoping conky ~1W killall conky ;; esac } # < 0.1 W aWebcam() { case "$1" in false) #ac_power # Enable the webcam driver modprobe uvcvideo ;; true) #batt_power # Remove the webcam driver modprobe -r uvcvideo ;; esac } aMemory() { case "$1" in false) #ac_power # Set kernel dirty page value back to default echo 10 > /proc/sys/vm/dirty_ratio echo 5 > /proc/sys/vm/dirty_background_ratio # Only wakeup every 60 seconds to see if we need to write dirty pages # By default this is every 5 seconds but, I prefer 60 to reduce disk # activity. echo 6000 > /proc/sys/vm/dirty_writeback_centisecs ;; true) #batt_power # Reduce disk activity by waiting up to 10 minutes before doing writes echo 90 > /proc/sys/vm/dirty_ratio echo 1 > /proc/sys/vm/dirty_background_ratio echo 60000 > /proc/sys/vm/dirty_writeback_centisecs ;; esac } aBrightness() { case "$1" in false) #ac_power # Setup maximum brigthness # Thinkpad x220, Ubuntu 11.04 vBAT_BRI=$(cat /sys/class/backlight/acpi_video0/brightness) echo $vAC_BRI > /sys/class/backlight/acpi_video0/brightness ;; true) #batt_power # Setup brigthness 30% vAC_BRI=$(cat /sys/class/backlight/acpi_video0/brightness) echo $vBAT_BRI > /sys/class/backlight/acpi_video0/brightness ;; esac } aMisk() { case "$1" in false) #ac_power # Turn off the laptop mode disk optimization echo 0 > /proc/sys/vm/laptop_mode echo tsc > /sys/devices/system/clocksource/clocksource0/current_clocksource # enable logging service rsyslog start # ZiXEL nbg460n. Set maximum wifi speed if [ -f /etc/pm/802.11.bgn ]; then /etc/pm/802.11.bgn 1; fi # enable winbind if [ -f /etc/init.d/winbind ]; then /etc/init.d/winbind start; fi # Powersave pci express echo performance > /sys/module/pcie_aspm/parameters/policy ;; true) #batt_power # Set laptop disk write mode echo 5 > /proc/sys/vm/laptop_mode echo hpet > /sys/devices/system/clocksource/clocksource0/current_clocksource # disable logging service rsyslog stop # ZiXEL nbg460n. Set standard wifi speed if [ -f /etc/pm/802.11.bgn ]; then /etc/pm/802.11.bgn 0; fi # disable winbind if [ -f /etc/init.d/winbind ]; then /etc/init.d/winbind stop ; fi echo powersave > /sys/module/pcie_aspm/parameters/policy ;; esac } aNotify() { case "$1" in false) #ac_power MSGH="AC" MSGT="Maximum Performance Mode" MSGI="ac-adapter" ;; true) #battery_power MSGH="BATT" MSGT="Battery Power Saving" MSGI="battery" ;; esac vUSER=`ps -C gnome-session -o user=` #find UID user who start gnome-session vPIDS=`pgrep -u $vUSER gnome-session` #find PID for PID in $vPIDS; do vDBUS_SESSION_BUS_ADDRESS=$(grep -z DBUS_SESSION_BUS_ADDRESS /proc/$PID/environ \ | sed -e 's/DBUS_SESSION_BUS_ADDRESS=//') DBUS_SESSION_BUS_ADDRESS=$vDBUS_SESSION_BUS_ADDRESS DISPLAY=:0.0 sudo -u $vUSER notify-send "$MSGH" "$MSGT" -i "$MSGI" done } aLoadini() { if [ -e $INI ]; then echo "Restore Value" while read LINE do PARM=$(echo "$LINE" | awk '{print $1}') KEY=$(echo "$LINE" | awk '{print $2}') case $PARM in "AC_BRI") vAC_BRI=$KEY ;; "BAT_BRI") vBAT_BRI=$KEY ;; "USER") vUSER=$KEY ;; "PIDS") vPIDS=$KEY ;; "CONKY") CONKY_RUN=$KEY ;; "DBUS_SESSION_BUS_ADDRESS") vDBUS_SESSION_BUS_ADDRESS=$KEY ;; esac echo "$PARM $KEY" done < $INI else echo "Reset Value" # Conky is Running Check CONKY_RUN=$(ps -ef | grep -c /usr/bin/conky) ((CONKY_RUN-=1)) vAC_BRI=15 vBAT_BRI=8 vUSER="" vPIDS="" vDBUS_SESSION_BUS_ADDRESS="" fi } aSaveini() { echo "AC_BRI $vAC_BRI" > $INI echo "BAT_BRI $vBAT_BRI" >> $INI echo "USER $vUSER" >> $INI echo "PIDS $vPIDS" >> $INI echo "CONKY $CONKY_RUN" >> $INI echo "DBUS_SESSION_BUS_ADDRESS $vDBUS_SESSION_BUS_ADDRESS" >> $INI } ########################################################## ## Apply settings ## aLoadini aCpu $1 aUsb $1 aI2c $1 aSata $1 aPci $1 if [ $(hdparm -i /dev/sda | grep Model | awk '{print substr($2,1,3)}') = "SSD" ]; then aSsd $1 else aHdd $1 fi aI915 $1 aWlan $1 aLan $1 aSnd $1 aBt $1 aWebcam $1 aMemory $1 aDaemons $1 aBrightness $1 aMisk $1 aNotify $1 aSaveini
Сохраняем скрипт и закрываем редактор - Подключаем скрипт к событиям power и sleep
$ cd /usr/lib/pm-utils/power.d $ sudo chmod 755 99-savings.sh $ sudo install 99-savings.sh /etc/pm/sleep.d $ sudo install 99-savings.sh /etc/pm/power.d - Проверяем
Вытаскиваем провод источника питания и наблюдаем pop up сообщение, что компьютер перешел в режим сохранения энергии Вставяем провод источника питания и наблюдаем pop up сообщение, что компьютер перешел в режим максимального быстродействия
- Установить необходимые программы: apmd, pm-utils и т.п.
- Устанавливаем ядро
3.63.3.7
У меня иногда с ядром 3.6 процессор переходит в Turbo mode и начинает сильно нагреваться. Powertop показывает частоту 3 GHz. htop не показывает никакого криминала. А процессоры находятся в состоянии powersave. Разбираюсь. Возможно это баг. - Устанавливаем параметры загрузки Ubuntu в Grub
В терминале с помощью редактора gedit
$ sudo gedit /etc/default/grub Заменяем строкуGRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
наGRUB_CMDLINE_LINUX_DEFAULT="quiet splash i915.i915_enable_rc6=1 i915.lvds_downclock=1 i915_enable_fbc=1 drm.vblankoffdelay=1 pcie_aspm=force reboot=pci"
Обновляем grub$ sudo update-grub Перезагружаемся и проверяем энергопотребление.
- Success Story
Евгений Попов прислал скриншот, на котором видно, что он смог снизить минимальное потребление до 4,77 Вт (Lenovo ThinkPad x220 4290RW1, Ubuntu 11.10).
Участник с ником unr форума Ubuntu получил потребление около 5,5 Вт на ядре 3.2.5 (Lenovo ThinkPad x220 4290RW1, Ubuntu 11.10).
- Indicator
Я самоуверенно дал программе название, которое уже присвоено другой утилите. К выходным переобзову и сделаю новый deb пакет.
Не прошло и года, как я сделал простой индикатор, позволяющий выбирать (пока) один из двух режимов PowerSaving.
Остальные пункты меню представляют собой заглушки. Надеюсь скоро их активизирую.
Скачать индикатор можно по ссылке: powerman_0.1_amd64.deb
Устанавливается, как обычный deb пакет.sudo dpkg --install powerman_0.1_amd64.deb После чего можно добавить запуск индикатора в Startup Applications:/usr/bin/powerman -t 10
где -t 10 задает время задержки старта.
И последним штрихом добавляем в sudoers команды, разрешающие запуск скрипта управления питанием без ввода пароля.sudo visudo
# User alias specification # Change %axa to your Users Grup. Замените %axa на название группы, куда входит пользователь User_Alias USERS = %axa # Cmnd alias specification Cmnd_Alias PWR_SAVE = /etc/pm/power.d/99-savings.sh # All User can run Power Saving script USERS ALL=NOPASSWD: PWR_SAVE
- Планы на развитие В планах убрать установку всех скриптов и модификацию управляющих файлов внутрь deb пакета.
Если у вас будет то же самое отпишите, плз.
Можно не мудрствуя лукаво поставить из http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.3.7-precise/
Полезные ссылки:
- PowerTop Home Site
- Install PowerTOP 2.1 in Ubuntu 12.04 via PPA
- HowTo: Собираем ядро 3.2 с патчами pf-kernel.
- Kernel PowerSavingTweaks
06.10.2012 - временно убрал раздел компиляции ядра и добавил раздел установки ядра 3.6 из ubuntu.kernel
Проедлал это на нетбуке eee pc 1000HG, но прироста так и не заметил :(. Не выводит сообщение после установки первых скриптов (при вкл и выкл зарядном устройстве). Если не сложно, помогите мне побороть высокое энергопотребление убунту 11.10. Жрёт примерно 11-12W.
ОтветитьУдалитьПо какой то причине у вас не работает скрипт.
ОтветитьУдалитьПокажите
ls /etc/pm/power.d
99-savings.sh scsi_host-link_power_management usb-autosuspend~
ОтветитьУдалитьcpu-governor scsi_host-link_power_management~
pci-power-control usb-autosuspend
Вот собственно содержимое.
ls -l /etc/pm/power.d/99-savings.sh
ОтветитьУдалить-rwxr-xr-x 1 root root 17913 2012-01-17 20:17 /etc/pm/power.d/99-savings.sh
ОтветитьУдалитьcat /tmp/powersave.ini
ОтветитьУдалитьcat: /tmp/powersave.ini: No such file or directory
ОтветитьУдалитьКоманды
ОтветитьУдалитьsudo /etc/pm/power.d/99-savings.sh false
и
sudo /etc/pm/power.d/99-savings.sh true
какой нибудь эффект дают?
Выполнял эти команды, но в обоих случаях потребляет 11-12 W.
ОтветитьУдалитьКакой выхлоп после первой, например
ОтветитьУдалитьНичего не просиходит. Просто принимает команду и ничего не выводит.
ОтветитьУдалитьOk.
ОтветитьУдалитьУ вас размер файла 99-savings.sh 17913. У меня - 12587
Делаем так:
gedit /etc/pm/power.d/99-savings.sh
Копируем все в буффер (Ctrl-A, Ctrl-Insert)
Открываем сайт http://pastebin.ru
Публикуете там содержимое буффера ( на самом деле это содержимое 99-savings.sh)
Ссылку сюда.
В моем файле много лишнего... Исправил.Сейчас отпишусь как себя ведет теперь нетбук
ОтветитьУдалитьчтобы поправить то нужно дать команду
ОтветитьУдалитьsudo gedit /etc/pm/power.d/99-savings.sh
Иначе вы не сможете его сохранить
sudo /etc/pm/power.d/99-savings.sh true дало 9.3 W. Но в ХР мастдае всеравно нетбук больше живет...Есть еще советі?
ОтветитьУдалитьФигня. Должно быть на eeePC 4-5 W
ОтветитьУдалитьЗапускаете powertop и смотрите, что там потребляет.
Вот мой пример (на потребление не смотрите. это от сети)
PowerTOP 1.97 Overview Idle stats Frequency stats Device stats Tunables
Summary: 471.4 wakeups/second, 0.0 GPU ops/second and 0.0 VFS ops/sec
Power est. Usage Events/s Category Description
8.91 W 3461 rpm Device Laptop fan
1.98 W 100.0% Device Radio device: thinkpad_acpi
1.35 W 100.0% Device USB device: Biometric Coprocessor (UPEK)
1.29 W 100.0% Device Radio device: iwlagn
143 mW 13.2 ms/s 85.8 Process /usr/lib/nspluginwrapper/i386/linux/npviewer.bin --plugin /usr/
87.8 mW 8.2 ms/s 47.5 Process /usr/lib/firefox-9.0.1/firefox
84.7 mW 15.8 pkts/s Device Network interface: wlan0 (iwlagn)
70.3 mW 6.3 ms/s 57.4 Process /usr/bin/X :0 -auth /var/run/lightdm/root/:0 -nolisten tcp vt7
60.4 mW 5.7 ms/s 28.9 Process compiz
54.8 mW 5.4 ms/s 0.0 Interrupt [42] xhci_hcd
43.2 mW 3.4 ms/s 80.6 Process /usr/lib/firefox-9.0.1/plugin-container /var/lib/flashplugin-in
27.4 mW 2.2 ms/s 48.9 Timer hrtimer_wakeup
16.6 mW 1.6 ms/s 7.2 Process nautilus -n
16.6 mW 1.4 ms/s 18.1 Interrupt [50] i915
12.1 mW 1.0 ms/s 18.3 Interrupt [6] tasklet(softirq)
9.90 mW 0.8 ms/s 15.9 Timer tick_sched_timer
9.26 mW 0.9 ms/s 0.0 Interrupt [49] iwlagn
7.05 mW 563.0 µs/s 12.6 Process /usr/bin/conky --display=:0
6.50 mW 617.4 µs/s 2.3 Process gnome-terminal
6.50 mW 636.0 µs/s 0.6 Process sh
5.19 mW 507.5 µs/s 0.5 Process powertop
4.78 mW 444.2 µs/s 2.6 Process /usr/bin/python /usr/lib/ubuntuone-client/ubuntuone-syncdaemon
3.95 mW 198.7 µs/s 18.0 kWork console_callback
2.61 mW 232.1 µs/s 2.4 Process /usr/bin/unity-window-decorator
Можно с вами пообщаться по джаберу? 1 раз устанавливаю убунту на портативное устройство...
ОтветитьУдалитьБудете смеяться, но я не умею. Расскажите как.
ОтветитьУдалитьЕсли у вас есть аккаунт в Google, Livejournal, yandex то считайте, что у Вас уже есть джабер аккаунт. Далее берете любой IM клиент с поддержкой протокола джаббер, и подключаетесь с помощью вашего аккаунта. Кидаете мне адрес свой (или я Вам), и мы обмениваемся мгновенными сообщениями :).
ОтветитьУдалитьКакой джаббер клиент лучше использовать?
ОтветитьУдалитьЛично я использую empathy или pidgin (в unity, xfce), либо kopette (когда в KDE работаю).
ОтветитьУдалитьОк. Давайте так. Я сегодня поставлю, а завтра пообщаемся.
ОтветитьУдалитьARTDooM, сегодня не успел, давай завтра попробуем.
ОтветитьУдалитьДома на выходных не был :( Вот только сегодня появился дома :(
ОтветитьУдалитьЧто-то не могу Вас онлайн выловить :(
ОтветитьУдалитьАга, увидел ваше сообщение.
ОтветитьУдалить"успешно Вас добавил"
Все. Клиента оставлю висящим.
ARTDooM
ОтветитьУдалитьПосле правки строки параметров загрузки обновить grub.
Сделайте
$ sudo update-grub
В статье поправил.
Просьба не пинать, все сделал по мануалу. Работает, но все с точностью до наоборот, при питании от сети потребление 5вт, от батареи 13вт, если верить стандартной статистике. Где мог напортачить?
ОтветитьУдалитьУх ты! А что за компьютер и ОС?
УдалитьОсь ubuntu 11.10, компьютер thinkpad t420i. Есть подозрение что врала статистика, хотя при заряде батареи энергопотребление возрастало до 25-30Вт и падало по мере зарядки до 5Вт. В дальнейшем выявилась еще одна проблема, при выключении через aspi и питании от батареи компьютер самостоятельно включался, а при питании от сети выключение проходило нормально.
ОтветитьУдалитьПроблемы решены сносом скрипта и переходом на ядро 3.2.7, сейчас энергопотребление порядка 11Вт, без скрипта с 2я включенными WiFi картами, внутренней и usb, подключенной мышкой и внешним винтом. Многовато конечно, будем бороться за экономию дальше=)
Ясно. Держите в курсе. Удачи.
УдалитьПосле обновления биоса скрипт заработал нормально, компьютер не включается самостоятельно, спасибо за качественный мануал. Энергопотребление удалось снизить до 7вт.
ОтветитьУдалитьСпасибо, что отписались. Возможно Ваш опыт кому то поможет.
УдалитьУдачи.
Здравствуйте.
ОтветитьУдалитьПока еще не использовал ваш скрипт, но почему у меня в powertop (1.97, 1.98) нет колонки Power est.? Гуглить пробовал, вообще ничего на эту тему.
Я досконально почему это происходит не исследовал.
УдалитьПо моему нужно добавить в grub параметры загрузки из П.3
Я сейчас проверить не могу.
Отпишитесь, если будет оказия.
Я добавил параметры в grub, но изменений нет. Причем нет ни в одной системе (xubuntu 11.10, xubuntu 12.04 beta 1, arch linux). Может от характеристик ноутбука зависит? Еще есть идея, что в ядре что-то, но я скомпилить ядро не могу, так как проц в процессе перегревается и ноут выключается.
Удалитьчто-то не работает у меня...скрипт вроде пашет, уведомления выводятся...сделал все пункты по инструкции. Как было 15.5W так и осталось, ноутбук Lenovo G550. На борту стоит ubuntu 12.04
ОтветитьУдалитьЯ с 12.04 еще не пробовал.
УдалитьКакое ядро установили?
uname -a
Linux homealone-Lenovo-G550 3.2.7-pf #1 SMP Fri Apr 6 17:33:14 FET 2012 x86_64 x86_64 x86_64 GNU/Linux
УдалитьПонятно. Я это ядро еще не смотрел.
УдалитьВ последнее время новые ядра усиленно пилятся и, возможно в нем поменялись интерфейсы взаимодействия с оборудованием.
Я планирую переход на 12.04 после ее выхода и тогда буду делать изменения, если потребуется.
Если вы имеете желание сами поразбираться, то советую сделать следующее
- зайти в консоль от root.
- для вызова скрипта в режиме "от батареи" выполнить следующую команду
/usr/lib/pm-utils/power.d/99-savings.sh true
Если есть ошибки, то они будут показаны в консоли.
- аналогично,
/usr/lib/pm-utils/power.d/99-savings.sh false
переводит в режим максимальной производительности.
есть ошибки(
УдалитьRestore Value
AC_BRI
BAT_BRI
USER homealone
PIDS 1732
DBUS_SESSION_BUS_ADDRESS unix:abstract=/tmp/dbus-Cn99iZFSqF,guid=b4f2b97fd0bdd1ff0261194400000027
/dev/sda:
setting Advanced Power Management level to 0x01 (1)
setting acoustic management to 128
HDIO_DRIVE_CMD:ACOUSTIC failed: Input/output error
setting standby to 4 (20 seconds)
APM_level = 1
acoustic = not supported
evolution-alarm-notify: процесс не найден
beam.smp: процесс не найден
desktopcouch-service: процесс не найден
cat: /sys/devices/virtual/backlight/acpi_video0/brightness: Нет такого файла или каталога
/usr/lib/pm-utils/power.d/99-savings.sh: 365: /usr/lib/pm-utils/power.d/99-savings.sh: cannot create /sys/devices/virtual/backlight/acpi_video0/brightness: Directory nonexistent
rsyslog stop/waiting
очень странно, что на ноутбуке HP с той же ubuntu 12.04 работает замечательно...вот теперь я вообще не понимаю почему не работает на моём lenovo
УдалитьВидимо для Lenovo изменились алгоритмя работы с оборудованием, а для HP нет.
УдалитьТогда вопросик, что можно почитать, чтобы самому разобраться и изменить скрипт?)
УдалитьСорри, был очень занят и не мог ответить
УдалитьВот тут а разбирал по подсистемам, как что влияет на потребление
http://axa-ru.blogspot.com/2009/07/thinpad-x200s.html
В конце есть ссылки, которыми я пользовался.
спасибо большое)
УдалитьЭтот комментарий был удален автором.
ОтветитьУдалитьмужик! да ты крут! без всякого сарказма.
ОтветитьУдалитьа что за ядро такое пропатченое? не хотелось бы фиг знает чего ставить в работающую систему.
Спасибо, дружище 8).
УдалитьПропатченное ядро это набор патчей, который собирает вместе некий товарищ Наталенко.
Сейчас туда включены патчи:
[m] mainline update;
[m] -ck patchset (latest BFS included);
[m] BFQ;
[m] TuxOnIce;
[m] LinuxIMQ;
[m] l7-filter.
http://pf.natalenko.name/
Выше, чем 3.1.6 я ядра не собирал.
Буду пробовать после апгрейда на 12.04
Что там с убунту 12.04?
ОтветитьУдалитьНа ядре 2.3 с патчем нет изменений в энергопортеблении. 13 вт как показывает, так и показывает.
Вот только интернет отваливается при при работе от батареи.
Машинка - Asus n82, вторая видюха отключена, работает на встроенной.
Дмитрий, чесслово сейчас не могу много времени посвящать линуксу.
УдалитьСейчас на 3 года завис в большом проекте.
Хотел сегодня посмотреть что да как, но нет.
Никак не могу.
Может, если будет завтра время, я сделаю скрипт, который будет проверять правильность применения параметров регулирования производительности.
А этот скрипт подойдет для Lenovo G570?
ОтветитьУдалитьИзвините.Ноутбук Lenovo B570....ошибся.на борту процессор Intel celeron и видео NV G410M
ОтветитьУдалитьДумаю должен.
УдалитьНужно будет с видяхой посмотреть что и как.
Вы хоть немного в bash разбираетесь?
Извините,я отсутствовал.Я знаю только что он (bash) должен присутствовать в начале скрипта и кажется позволяет запускаться скрипту как программе....если не ошибаюсь....я еще новичок в линуксе.пару дней только вот
ОтветитьУдалитьтупость сказал.Извиняюсь....кажется...разбираюсь я или нет уже стало очевидно :-D
ОтветитьУдалитьВсе нормально.
УдалитьНе боги горшки обжигают.
Вопрос: почему вы решили, что вам нужно что то делать с энергопотреблением?
Просто читал,что в линуксе с этим туго....а постоянно работать от сети я не собирался....аот и....решил..береженого бог бережет
ОтветитьУдалитьпосле установки скрипта показывает 19 ватт
ОтветитьУдалитьДрузья, у меня сейчас очень мало времени.
УдалитьЯ обещал сделать из скрипта диагностическую утилиту, которая покажет на ошибки.
Пока не знаю когда сделаю. Вечером валюсь с ног.
Постараюсь в течение будущей недели найти пару часов и сделать обещанное.
добавьте, как возможный вариант сборки ядра, make localmodconfig - это удобнее для энд-юзера с одним ноутом. ;-)
ОтветитьУдалитьсобрал по инструкции ядро 3.5 на 12.04, тестю.
Ок. Как будет время добавлю.
УдалитьПросьба, отпишите, плиз, результаты теста ядра 3.5. Крайне любопытно.
Я ставил из репозитория убунты. На моем x220 очень нестабильны.
у меня eeePC 1000H, 3.5.1-pf c моими сокращениями всего ненужного железа и под TLP с дефолтным ondemand'ом на обоих питаниях ведёт себя заметно шустрее-отзывчивее дефолтного кёрнела 3.4.rc6 - результат заметен на глаз, потребление при отключённых вайфае и блютуфе - 5.8w.
Удалитьне поможете ли с нерешаемыми проблемами:
1) хочу полностью останавливать вентилятор в батарейном ( а лучше - в обоих) режиме питания, когда нагрузка минимальна (лишь листаются закешированные страницы в читалке) - ХР это умела;
2) не удаётся запустить TuxOnIce - в лог пишется, что своп виден/доступен, но невозможно ничего туда записать;
3) непонятно, как прикрутить хоть какую-то из гуёвых переключалок режимов eeepc, все несовместимы с версией ядра;
4) непонятно почему слетело автомонтирование юэсби (но в lspci любой диск при этом идеально определяется);
5) непонятки, как налету менять ondemand на performance (при компиляции ядра это сокращает процесс до часа с копеечками, но в обычной/регулярной жизни ни на фиг не нужно).
ядро брал и компилил по инструкции pf'а, из kernel-ppa, вроде бы, если важно - могу порыться в хистори файерфокса.
> На моем x220 очень нестабильны.
а первый запуск кёрнела с дополнительным ключиком profile был сделан?
если возможно, м.б. продолжим в аське (207013, инвизибл)?
сорри, забыл написать:
Удалитьпри обоих питаниях при включённом вайфае настроенный на ondemand TLP даёт (копирую из Powetop'а 2.1):
System baseline power is estimated at 2.14 W
у меня дохлая батарея, поэтому discharge rate - 10.2 W (калибровка и расход батареи зависят от её возраста/убитости и температуры).
реально полного заряда сейчас хватает на 42-43 минуты при включённом вайфае (под ХР месяц назад было тоже чуть больше 40 мин).
Дык этта... Батарея сдохнет скоро совсем. Может сначала ее заменить?
УдалитьПо вопросам пока не готов ответить что то полезное.
По п.5 посмотрите, возможно вот это поможет: http://axa-ru.blogspot.com/2009/08/tuning-linux-for-powersave.html
добавьте ещё в начало мануала запись строки vm.swappiness=10 в sysctl.conf - эффект поразительный :-) с преамбулой, естественно, что своп должен быть в 2 раза больше оперативки.
Удалитьну и сам мануал пора адаптировать под свежевышедший pf-3.5.2 - смена 2х версий за один месяц неспроста... ;-)
Я попробовал ядро 3.4 и 3.5 из репо убунты. На моей lenovo x220 имел пару зависаний.
Удалить3.5.2 еще не пробовал.
Спасибо за наводку. Как только будет время зразу проверю и поправлю мануал.
зависания - под дженерик кёрнелом, или под заточенным на конкретное железо?
ОтветитьУдалить3.5.2 уже морально устарело - update-manager -d, потом взял на кёрнел.орг вчерашний 3.6rc3, накатил полуниверсальный пэтч от ck, который релизит pf :-), и пэтч uksm, срезал всё левое железо и глюкавый туксонайс, оптимизировал под не новый ноут и получил выигрыш и по тестам, и по долгожительству дохлого акка (почти 12 мин).
на всякий случай: дженерик-дебы на кёрнел-пипиэй 3.6.* уже 2хчастные и под 35Мб, под ними отчётливые тормоза видны глазом даже в иксэфсии4 и эликсдии...
Долго железо отрезал?
ОтветитьУдалитьотрезаю/прикручиваю до сих пор вебкамеру (там какие-то необоримые хитрости), а первый наскок был сделан часа за 2... разница в размере vmlinuz с дженериком - 1.2Мб, и она радует.
ОтветитьУдалитьUse:
ОтветитьУдалитьsed -nr 's/.*DBUS_SESSION_BUS_ADDRESS=(.*)\0/\1/p'
Instead of:
grep -z DBUS_SESSION_BUS_ADDRESS /proc/$PID/environ \
| sed -e 's/DBUS_SESSION_BUS_ADDRESS=//'
Cheers :)
Use:
ОтветитьУдалитьsed -nr 's/.*BUS_ADDRESS=(.*)\0/\1/p' /proc/$PID/environ
Instead of:
grep -z DBUS_SESSION_BUS_ADDRESS /proc/$PID/environ \
| sed -e 's/DBUS_SESSION_BUS_ADDRESS=//'
Cheers :)
Simplified the code block in aNotify():
ОтветитьУдалитьsUSER=`ps -C $mysession -o user=`
sENV=/proc/`ps -C $mysession -o pid= | sed 's/ //g'`/environ
DBUS_SESSION_BUS_ADDRESS=$(sed -nr 's/.*BUS_ADDRESS=(.*)\0/\1/p' $sENV) \
DISPLAY=:0.0 sudo -u $sUSER notify-send "$MSGH" "$MSGT" -i "$MSGI"
And don't forget to set mysession=gnome-session or mate-session or whatever :)
Cheers
Jasmine, nice work 8)
Удалить