понедельник, 9 января 2012 г.

Настройка энергопотребления ThinkPad x220 в Ubuntu 11.10

Куратор темы на ixbt о ноутбуке ThinkPad x220 попросил написать меня статью об оптимизации потребления на ThinkPad x220, что я и сделал.
На мой взгляд статья получилась хорошей, но ixbt устроен так, что я не могу делать там обновления.
Поэтому я публикую ее в моем блоге. Здесь будут вноситься изменения, если таковые появятся.
А когда будет время поправлю структуру и ссылки в основной статье об экономии электричества в линуксе.

На все про все, если вы делаете это в первый раз, запаситесь примерно 2-мя часами.
Для компиляции ядра (раздел 2) нам потребуется интернет, желательно хороший.
Каждый раздел оптимизации не зависит от другого и может быть применен отдельно.

  1. Установка и настройка pm-utils
    1. Установить необходимые программы: apmd, pm-utils и т.п. $ sudo apt-get install apmd pm-utils hdparm libnotify-bin
    2. Создадим скрип управления энергопотреблением: $ 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
      

      Сохраняем скрипт и закрываем редактор
    3. Подключаем скрипт к событиям 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
    4. Проверяем
      Вытаскиваем провод источника питания и наблюдаем pop up сообщение, что компьютер перешел в режим сохранения энергии Вставяем провод источника питания и наблюдаем pop up сообщение, что компьютер перешел в режим максимального быстродействия

  2. Компиляция и установка форка ядра 3.1.6-pf
    1. Устанавливаем пакеты, необходимые для компиляции ядра $ sudo apt-get -y install fakeroot build-essential crash \ kexec-tools makedumpfile kernel-wedge git-core \ libncurses5 libncurses5-dev libelf-dev libdw-dev \ binutils-dev kernel-package libcloog-ppl0 $ sudo apt-get build-dep kernel-package linux-meta
    2. Создадим рабочий каталог $ cd ~ $ mkdir kernel-pf $ cd kernel-pf
    3. Загрузим и разархивируем исходники ядра и патча форка. $ wget http://www.kernel.org/pub/linux/kernel/v3.x/linux-3.1.tar.bz2 $ tar xjvf linux-3.1.tar.bz2 $ wget http://pf.natalenko.name/sources/3.1/patch-3.1.6-pf.bz2 $ bzip2 -d patch-3.1.6-pf.bz2
    4. Применим патч и сконфигурируем Makefile. $ cd linux-3.1 $ patch -p1 < ../patch-3.1.6-pf $ cp /boot/config-`uname -r` .config $ make oldconfig Здесь будут заданы вопросы касающиеся применения новых функций и модулей. Я на все вопросы оставил ответы по умолчанию (нажал Enter), кроме: BFQ I/O scheduler (IOSCHED_BFQ) [N/m/y/?] (NEW) Y BFQ hierarchical scheduling support (CGROUP_BFQIO) [N/y/?] (NEW) Y Timer frequency 1. 100 HZ (HZ_100) 2. 250 HZ (HZ_250_NODEFAULT) (NEW) 3. 300 HZ (HZ_300) > 4. 1000 HZ (HZ_1000) 5. 1500 HZ (HZ_1500) (NEW) 6. 2000 HZ (HZ_2000) (NEW) 7. 3000 HZ (HZ_3000) (NEW) 8. 4000 HZ (HZ_4000) (NEW) 9. 5000 HZ (HZ_5000) (NEW) 10. 7500 HZ (HZ_7500) (NEW) 11. 10000 HZ (HZ_10000) (NEW) choice[1-11?]: 1
    5. Для крепких парней. Изменим параметры оптимизации компилятора.
      В gcc, начиная с версии 4.6, можно установить в -marc параметр native, который автоматически установит ключи оптимизации, соответствующие процессору на котором происходит компиляция.
      Открываем в редакторе Makefile, ищем вот эти сроки:
      HOSTCFLAGS   = -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 -fomit-frame-pointer
      HOSTCXXFLAGS = -O2
      
      и заменяем их на вот такие:
      HOSTCFLAGS   = -O2 -fomit-frame-pointer -march=native -ftree-vectorize  -floop-interchange -floop-block -floop-strip-mine -ftree-loop-distribution -pipe -g0 -Wno-all
      HOSTCXXFLAGS = -O2 -fomit-frame-pointer -march=native -ftree-vectorize  -floop-interchange -floop-block -floop-strip-mine -ftree-loop-distribution -pipe -g0 -Wno-all
      
    6. Cкомпилируем ядро $ make-kpkg clean $ CONCURRENCY_LEVEL=`getconf _NPROCESSORS_ONLN` fakeroot make-kpkg --initrd kernel_image kernel_headers
    7. Установим ядро $ cd .. $ sudo dpkg -i linux-*.deb
    8. Перезагружаем компьютер и убеждаемся, что ядро, которое мы собрали работает.

  3. Устанавливаем параметры загрузки Ubuntu в Grub
  4. В терминале с помощью редактора 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 reboot=pci"
    
    Обновляем grub $ sudo update-grub Перезагружаемся и проверяем энергопотребление.

  5. Success Story

  6. Евгений Попов прислал скриншот, на котором видно, что он смог снизить минимальное потребление до 4,77 Вт (Lenovo ThinkPad x220 4290RW1, Ubuntu 11.10).

    Участник с ником unr форума Ubuntu получил потребление около 5,5 Вт на ядре 3.2.5 (Lenovo ThinkPad x220 4290RW1, Ubuntu 11.10).



Полезные ссылки:

35 коммент.:

  1. Проедлал это на нетбуке eee pc 1000HG, но прироста так и не заметил :(. Не выводит сообщение после установки первых скриптов (при вкл и выкл зарядном устройстве). Если не сложно, помогите мне побороть высокое энергопотребление убунту 11.10. Жрёт примерно 11-12W.

    ОтветитьУдалить
  2. По какой то причине у вас не работает скрипт.
    Покажите
    ls /etc/pm/power.d

    ОтветитьУдалить
  3. 99-savings.sh scsi_host-link_power_management usb-autosuspend~
    cpu-governor scsi_host-link_power_management~
    pci-power-control usb-autosuspend
    Вот собственно содержимое.

    ОтветитьУдалить
  4. -rwxr-xr-x 1 root root 17913 2012-01-17 20:17 /etc/pm/power.d/99-savings.sh

    ОтветитьУдалить
  5. cat: /tmp/powersave.ini: No such file or directory

    ОтветитьУдалить
  6. Команды
    sudo /etc/pm/power.d/99-savings.sh false
    и
    sudo /etc/pm/power.d/99-savings.sh true
    какой нибудь эффект дают?

    ОтветитьУдалить
  7. Выполнял эти команды, но в обоих случаях потребляет 11-12 W.

    ОтветитьУдалить
  8. Какой выхлоп после первой, например

    ОтветитьУдалить
  9. Ничего не просиходит. Просто принимает команду и ничего не выводит.

    ОтветитьУдалить
  10. Ok.
    У вас размер файла 99-savings.sh 17913. У меня - 12587
    Делаем так:
    gedit /etc/pm/power.d/99-savings.sh
    Копируем все в буффер (Ctrl-A, Ctrl-Insert)
    Открываем сайт http://pastebin.ru
    Публикуете там содержимое буффера ( на самом деле это содержимое 99-savings.sh)
    Ссылку сюда.

    ОтветитьУдалить
  11. В моем файле много лишнего... Исправил.Сейчас отпишусь как себя ведет теперь нетбук

    ОтветитьУдалить
  12. чтобы поправить то нужно дать команду
    sudo gedit /etc/pm/power.d/99-savings.sh
    Иначе вы не сможете его сохранить

    ОтветитьУдалить
  13. sudo /etc/pm/power.d/99-savings.sh true дало 9.3 W. Но в ХР мастдае всеравно нетбук больше живет...Есть еще советі?

    ОтветитьУдалить
  14. Фигня. Должно быть на 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

    ОтветитьУдалить
  15. Можно с вами пообщаться по джаберу? 1 раз устанавливаю убунту на портативное устройство...

    ОтветитьУдалить
  16. Будете смеяться, но я не умею. Расскажите как.

    ОтветитьУдалить
  17. Если у вас есть аккаунт в Google, Livejournal, yandex то считайте, что у Вас уже есть джабер аккаунт. Далее берете любой IM клиент с поддержкой протокола джаббер, и подключаетесь с помощью вашего аккаунта. Кидаете мне адрес свой (или я Вам), и мы обмениваемся мгновенными сообщениями :).

    ОтветитьУдалить
  18. Какой джаббер клиент лучше использовать?

    ОтветитьУдалить
  19. Лично я использую empathy или pidgin (в unity, xfce), либо kopette (когда в KDE работаю).

    ОтветитьУдалить
  20. Ок. Давайте так. Я сегодня поставлю, а завтра пообщаемся.

    ОтветитьУдалить
  21. ARTDooM, сегодня не успел, давай завтра попробуем.

    ОтветитьУдалить
  22. Дома на выходных не был :( Вот только сегодня появился дома :(

    ОтветитьУдалить
  23. Что-то не могу Вас онлайн выловить :(

    ОтветитьУдалить
  24. Ага, увидел ваше сообщение.
    "успешно Вас добавил"

    Все. Клиента оставлю висящим.

    ОтветитьУдалить
  25. ARTDooM
    После правки строки параметров загрузки обновить grub.
    Сделайте
    $ sudo update-grub

    В статье поправил.

    ОтветитьУдалить
  26. Просьба не пинать, все сделал по мануалу. Работает, но все с точностью до наоборот, при питании от сети потребление 5вт, от батареи 13вт, если верить стандартной статистике. Где мог напортачить?

    ОтветитьУдалить
    Ответы
    1. Ух ты! А что за компьютер и ОС?

      Удалить
  27. Ось ubuntu 11.10, компьютер thinkpad t420i. Есть подозрение что врала статистика, хотя при заряде батареи энергопотребление возрастало до 25-30Вт и падало по мере зарядки до 5Вт. В дальнейшем выявилась еще одна проблема, при выключении через aspi и питании от батареи компьютер самостоятельно включался, а при питании от сети выключение проходило нормально.
    Проблемы решены сносом скрипта и переходом на ядро 3.2.7, сейчас энергопотребление порядка 11Вт, без скрипта с 2я включенными WiFi картами, внутренней и usb, подключенной мышкой и внешним винтом. Многовато конечно, будем бороться за экономию дальше=)

    ОтветитьУдалить
    Ответы
    1. Ясно. Держите в курсе. Удачи.

      Удалить
  28. После обновления биоса скрипт заработал нормально, компьютер не включается самостоятельно, спасибо за качественный мануал. Энергопотребление удалось снизить до 7вт.

    ОтветитьУдалить
    Ответы
    1. Спасибо, что отписались. Возможно Ваш опыт кому то поможет.
      Удачи.

      Удалить
  29. Здравствуйте.
    Пока еще не использовал ваш скрипт, но почему у меня в powertop (1.97, 1.98) нет колонки Power est.? Гуглить пробовал, вообще ничего на эту тему.

    ОтветитьУдалить
    Ответы
    1. Я досконально почему это происходит не исследовал.
      По моему нужно добавить в grub параметры загрузки из П.3

      Я сейчас проверить не могу.
      Отпишитесь, если будет оказия.

      Удалить