пятница, 24 июля 2009 г.

Установка ядра 2.6.30 ubuntu

(Продолжение. Начало статьи)

Хотя эта статья была актуальна для Ubuntu версии до 10.04, я решил ее оставить в ознакомительных целях.
... и как оказалось не зря.

Не все ёгурты одинаково полезны ядра одинаково расходуют электричество. Совсем недавно известный линуксовый сайт Phoronix провел пару исследований о зависимости расхода электричества от верси ядра:

Как видно из представленного графика лучшее, с точки зрения сохранения энергии, ядро 2.6.34. Но оно достаточно старое и может не поддерживать новое оборудование. Поскольку "нужно ехать, а не шашечки" стоит попробавть это ядро.
К сожалению в моем Thinkpad x220 с этим ядром не определился адаптер дисплея, клавиатура и bluetooth.
А в x200s оно работает очень хорошо.

В ядрах поставляемых с Ubuntu 10.10, 11.04 отключен флаг CONFIG_PM_ADVANCED_DEBUG этот флаг позволяет программам типа powertop собирать дополнительную диагностическую информацию. Чтобы установить этот флаг нужно ядро перекомпилировать.

Установка ядра из архива ubuntu


Наиболее простой, надежный и предпочтительный способ.

Выберите приглянувшееся ядро из архива http://kernel.ubuntu.com/~kernel-ppa/mainline

$ wget -c \ http://kernel.ubuntu.com/~kernel-ppa/mainline/v2.6.30.5/linux-headers-2.6.30-02063005_2.6.30-02063005_all.deb \ http://kernel.ubuntu.com/~kernel-ppa/mainline/v2.6.30.5/linux-headers-2.6.30-02063005-generic_2.6.30-02063005_i386.deb \ http://kernel.ubuntu.com/~kernel-ppa/mainline/v2.6.30.5/linux-image-2.6.30-02063005-generic_2.6.30-02063005_i386.deb $ sudo dpkg -i \ linux-headers-2.6.30-02063005_2.6.30-02063005_all.deb \ linux-headers-2.6.30-02063005-generic_2.6.30-02063005_i386.deb \ linux-image-2.6.30-02063005-generic_2.6.30-02063005_i386.deb


Компиляция ядра


В нашем случае смысла не имеет. Большинство патчей, указанных в http://www.lesswatts.org/ уже присутствуют в новом ядре. А те, которые не включены - на потребление влияют слабо.
Все течет, все меняется. И поменялось мое отношение к необходимости компиляции ядра. В борьбе за ватты у меня на ядре 3.1 с патчем 3.1.5-pf получилось потребление в режиме idle чуть больше 6 Вт.


Инструкция по копиляции с наложением указанного патча находится здесь: HowTo: Собираем ядро 3.1 с патчами pf-kernel.
Патч здесь: patch-3.1.5.bz2


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

ThinkPad x200s. Что влияет на потребление энергии.

(Продолжение. Начало статьи)

По информации с сайта http://www.gentoo.org/doc/en/power-management-guide.xml влияние компонентов компьютера и операционной системы на потребление энергии примерно такое:


Этот график очень условный и отражает примерное соотношенние потребляемой мощности в каком то из состояний компьютера.

Соотношение между входящими в него компонентами может меняться. Например, мы уменьшили потребление энергии графической подсистемы с 30 до 5 %. Это значит, что доля вклада остальных потребителей энергии увеличилась.

Вот зависимость потребляемой мощности от уровня подсветки дисплея, снятая экперементально для ThinkPad x200s:

Выбирая яркость стоит помнить о реальных ваттах.

Стоит ли экономить миливатты? Я думаю да.
Вот почему. Ubuntu "из коробки" на x200s потребляет около 14 Вт.
0,1 Вт на этом уровне дает прибавку во времени около 0,7% (1,5 мин)

После тюнинга та же Ubuntu потребляет около 7 Вт.
0,1 Вт экономии составляет уже более 5 минут.

Вроде немного, но таких подсистем около десятка.

  • powerTOP

    Я установил powerTOP и выполнил все рекомендации, которые он давал.

    • Текущая версия - 1.11. Версия 1.11 > 1.9

    for i in /sys/class/scsi_host/host*/link_power_management_policy do echo min_power > $i done echo 1500 > /proc/sys/vm/dirty_writeback_centisecs

    Добавить usbcore.autosuspend=1 to the kernel в командную строку grub config, либо
    echo 1 >/sys/module/usbcore/parameters/autosuspend
  • Управление многопоточностью процессора *
    ( -0.1 - 0.0Вт)
    # echo 1 > /sys/devices/system/cpu/sched_mc_power_savings

  • Управление производительностью процессора *
    Устанавливается минимальная частота процессоров
    for i in /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor; do echo powersave > $i; done

    Частота процессоров меняется в зависимости от нагрузки
    for i in /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor; do echo ondemand > $i; done

  • Отключение ядер CPU

    for i in /sys/devices/system/cpu/cpu*/online; do echo 1 > $i; done

  • Ethernet *
    Выключение WOL (-0.1Вт)
    # ethtool -s eth0 wol d
    Отключение гигабитного интерфейса (-1.1Вт)
    Эта команда выполняется и дает эффект только когда есть соединение по ethernet. В противном случае выдается ошибка.
    # ethtool -s eth0 autoneg off speed 100

  • Wi-Fi * (от -0.8Вт до -4Вт)
    Можно управлять мощностью сигнала Wi-Fi непосредственно записывая в виртуальный файл "/sys/bus/pci/drivers/iwlagn/0000:03:00.0/power_level"
    # echo 5 > /sys/bus/pci/drivers/iwlagn/0000:03:00.0/power_level

    Но это может не работать в будующих версиях, что и произошло в Ubuntu 10.04. В этой версии виртуальный файл power_level поменял свое название на tx_power.

    Поэтому лучше управлять Wi-Fi картой через программный интерфейс iwconfig

    Установить уровень сигнала передатчика 5dBm и включить автоматический режим сохранения энергии
    # iwconfig wlan0 power on # iwconfig wlan0 txpower 5 # iwconfig wlan0 timeout 500ms
    Может оказаться, что режим энергосбережения не совместим с протоколом B+G+N, который обеспечивает скорости передачи больше, чем 54 Mb/s.
    Поэтому на точке доступа в секции wifi нужно установить протокол 801.11 b/g


  • Управление потреблением звуковой подсистемы
    ( -0.5.0Вт)
    # echo 10 > /sys/module/snd_hda_intel/parameters/power_save

  • Управление вентилятором
    Вентилятор управляется автоматически. Лучше здесь ничего не трогать. Можно и распрощаться с ноутом. Состояние можно посмотреть так:
    # cat /proc/acpi/ibm/fan
    Если уж невмоготу, то здесь написано как управлять вентилятором

  • Управление HDD *
    (-0,5 Вт)
    Еще одна возможность выключения диска
    # hdparm -B 1 -S 12 /dev/sda

  • Отключение HDMI *(-0.2 Вт)
    # xrandr --output HDMI-1 --off # xrandr --output HDMI-2 --off

  • Агрессивное управление PCI*(-1.5 Вт)
    При компиляции ядра была установлена соответсвующая константа CONFIG_PCIEASPM
    Проверить, что эта опция доступна
    # cat /sys/module/pcie_aspm/parameters/policy [default] performance powersave

    Установить режим powersave
    # echo powersave > /sys/module/pcie_aspm/parameters/policy

  • Настройка параметров виртуальной памяти * *
    Уменьшаем количество обращений к диску.
    swappiness - уровень свободной памяти в процентах, при котором система сбрасывает память в swap. При значении 0 swap отключается. (default: 60).
    # echo 10 > /proc/sys/vm/swappiness

    Как часто ядро должно проверять есть ли "грязные" (измененные) данные для записи на диск
    # echo 1500 > /proc/sys/vm/dirty_writeback_centisecs

    Насколько старыми должны быть данные, что бы ядро записало их на диск
    # echo 0 > /proc/sys/vm/dirty_expire_centisecs

    Минимальное процент памяти , где позволено хранить старые данные вместо записи на диск
    # echo 60 > /proc/sys/vm/dirty_background_ratio

    Максимальный размер памяти в процентах, для хранения "грязных" до записи их на диск.
    # echo 95 > /proc/sys/vm/dirty_ratio


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


Upd 12/12/2010
Upd 28/07/2011

среда, 22 июля 2009 г.

Купил Lenovo thinkPad x200s

Заплатил 45 000 рублей. Оказался очень замечательным. Обзоров в сети много, поэтому ничего повторять не буду. Приведу спецификацию. Она может пригодиться при компиляции ядра. Опишу только личные ощущения. Дизайн (красивости): никакой. Но это визитная карточка ThinkPad. Эргономика: одна из лучших для ноутбуков. Размер: за счет широкоэкранного дистплея размер чуть больше, чем x60. Благодаря этому клавиатура стала посвободней. Дисплей: качества хорошего, но могли бы сделать побольше разрешение. Скорость работы: на высоте. Убунта встала сразу и без напильника. В целом доволен. Что не нравится - так это время работы. Всего 3,5 часа. Видимо напильник потребуется.