понедельник, 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. Перезагрузить систему. После этого вновь станет доступно полное отключение дискретной графики.