Показаны сообщения с ярлыком pm. Показать все сообщения
Показаны сообщения с ярлыком pm. Показать все сообщения

понедельник, 6 октября 2014 г.

Ubuntu 14.04: Продлеваем время работы ноутбука от аккумулятора

У меня в блоге уже была заметка на эту тему. Но в Ubuntu 14.04 кое-что изменилось и старые советы не работают. Поэтому, если вы хотите продлить время работы от аккумулятора вашего ноутбука, можно выполнить следующие шаги:

  1. Установите пакет tlp (вместо laptop-mode. Если был установлен он - удалите).
  2. Теперь этот пакет нужно настроить. Файл конфигурации находится в /etc/default/tlp. Для правки в gedit его можно открыть так: gksu gedit /etc/default/tlp. Если перед какой-то настройкой стоит #, то сначала удалите её, таким образом раскомментировав. Многие параметры в этом файле двойные - есть две версии, одна оканчивается _ON_AC, другая - _ON_BAT. Первая относится к ситуации работы от сети, вторая - от аккумулятора. Что можно настроить:
    1. CPU_SCALING_GOVERNOR_ON_BAT=powersave эта настройка приведёт к тому, что при работе от аккумулятора ваш процессор будет работать в энергосберегающем режиме. Лично меня это полностью устраивает. Но если для вас на каких-то задачах при работе от аккумулятора ноутбук будет как-то страшно тормозить, то можно оставить значение этого параметра ondemand, но, например, поменять параметр ниже, CPU_SCALING_MAX_FREQ_ON_BAT задав там максимальную частоту, на которую может разгоняться ваш процессор при работе от батареи. Возможные варианты значений для этого поля можно посмотреть так:
      sudo tlp-stat | grep -m1 'scaling_available_frequencies'
    2. Настройка времени отключения дисков. При настройке дисков нужно помнить следующее: режимы энергосбережения, параметр SPINDOWN и подобны применительно к SSD в большинстве случаев лишены всякого смысла. Если у вас SSD - просто не заморачивайтесь. Тут есть ряд настроек, начинающихся с DISK_. Итак:
      • DISK_DEVICES - список дисков. То какие диски у вас есть в системе и какие у них идентификаторы, которые нужно добавить сюда через пробел можно узнать командой tlp diskid. Все последующие команды тоже вводятся в таком же формате: через пробел, каждое значение соответствует диску, указанному в поле DISK_DEVICES.
      • DISK_APM_LEVEL_ON_BAT - уровень энергосбережения. Установите его равным 127 для того, чтобы стала возможной остановка диска во время простоя.
      • DISK_SPINDOWN_TIMEOUT_ON_BAT - период, через который диск будет останавливаться. Значения от 1 до 240 - это периоды в секундах, умноженных на 5. То есть, если вы хотите установить остановку диска через 60 секунд бездействия, установите это значение равным 12. Значения от 241 до 251 позволяют настроить задержку от 30 минут до 5,5 часов (с шагом в 30 минут). Тут важно помнить, что установка больших таймаутов на основном диске лишена смысла. Система регулярно обращается к диску, и если у вас таймаут 10 или даже 5 минут, то с большой долей вероятности диски не будут останавливаться никогда. С другой стороны, важно помнить, что слишком малое время может привести к постоянным остановкам/раскручиванию диска, что тоже мало полезно для привода.
    3. Если вы при работе от аккумулятора будете пользоваться каким-то USB устройством и обнаружите, что оно через какое-то время перестаёт работать и начинает работать только с подключением к сети или переподключением к порту, то вам нужно внести это устройство в список исключений. Это параметр USB_BLACKLIST. Используйте команду lsusb, чтобы получить идентификатор нужного устройства. Идентификатор выглядит примерно так: 0bda:0139. Если устройств несколько, добавьте идентификаторы через пробел.
  3. После внесения изменений в конфигурацию tlp его нужно перезапустить:
    sudo service tlp stop
    sudo service tlp start
  4. Если вы пользуетесь разными индикаторами аппаратных датчиков, для отображения температуры дисков - отключите их (достаточно просто отключить вывод данных дисков), если вы хотите, чтобы ваши диски засыпали и не просыпались каждую минуту.
  5. Если у вас есть дискретная графическая карта, которой вы не пользуетесь (при повседневной работе в большинстве случаев за глаза хватает интегрированных в процессор графических контроллеров), то её можно полностью отключить. Как? смотрите совет в прошлой статье. Добавлю только, что для того, чтобы оно заработало в 14.04 нужно сделать следующее:
    1. В файле /etc/default/grub в параметр GRUB_CMDLINE_LINUX_DEFAULT добавить modeset=1 hybridopts=ON,IGD,OFF и, если у вас AMD, то ещё добавить radeon.runpm=0.
    2. Выполнить sudo grub-update
    3. Перезагрузить систему. После этого вновь станет доступно полное отключение дискретной графики.

воскресенье, 23 июня 2013 г.

Продлеваем время работы от аккумулятора на ноутбуке с Ubuntu

Если вам кажется, что ваш ноутбук работает от аккумулятора слишком мало и вы хотели бы как-то продлить его жизнь, то вот вам простой рецепт:

1. Установите пакет laptop-mode. Этот пакет содержит в себе комплект утилит, которые проводят тонкую настройку разных параметров системы так, чтобы всё работало как можно дольше. Настройки хранятся в /etc/laptop-mode/ - если владеете английским можно поковыряться в настройках и ещё больше оптимизировать работу. Хотя и этого хватает.

UPD: Как оказалось, по умолчанию для работы от аккумулятора не меняется режим работы процессора. Это можно изменить, открыв от администратора файл /etc/laptop-mode/conf.d/cpufreq.conf:
gksu gedit /etc/laptop-mode/conf.d/cpufreq.conf
И заменив там BATT_CPU_GOVERNOR=ondemand на BATT_CPU_GOVERNOR=powersave.

2. Если у вас имеется дискретная карта и вы по большому счёту ей не пользуетесь (не играете в тяжёлые игрушки) - её можно отключить. Расскажу на примере своего ноутбука Lenovo G570 - там имеется дискретная карта AMD Radeon HD 6300, но интегрированной Intel HD 3000 мне хватает за глаза.

Я не устанавливал проприетарных драйверов для AMD, использую открытые, которые поставляются вместе с системой. Поэтому отключается всё очень просто, командой вроде (запускать нужно от администратора):
echo OFF > /sys/kernel/debug/vgaswitcheroo/switch
Для того, чтобы эта команда выполнялась при каждой загрузке системы, её можно добавить в файл /etc/rc.local, перед строчкой exit 0;

Однако, тут возникает проблема, которая проявляется, по крайней мере на моей системе (но не только на моей). Проблема заключается в том, что при выходе из ждущего режима система просто зависает. Чтобы этого избежать, нужно всего лишь включать дискретную видео карту (в данном случае Radeon) перед уходом в ждущий режим и затем включать обратно при выходе из него. Для этого создайте файл /etc/pm/sleep.d/77_amd_toggle со следующим содержимым:
#!/bin/bash
# Script to disable and enable the discrete graphics card before suspend and after resume

case "${1}" in
suspend)
  # We turn it on before suspend to prevent bugs
  echo ON > /sys/kernel/debug/vgaswitcheroo/switch
  ;;

resume)
  # We turn it off after resume to save energy
  # Your GFX would freeze if you turn off discrete card immediately, that's why this delay:
  sleep 3
  echo OFF > /sys/kernel/debug/vgaswitcheroo/switch
  ;;
esac
Итого: система работает от аккумулятора около 5 часов в режиме активной работы в IDE, с кучей открытых вкладок в Chrome, с непрерывно играющей музыкой.