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

среда, 21 мая 2014 г.

Ubuntu 14.04: апгрейд и проблемы с раскладкой

Я обновил свою систему до Ubuntu 14.04, и этот апгрейд прошёл на удивление безболезненно. Всё то, что мешало жить, раздражало и в итоге вынудило откатиться с 13й ветки на 12.04, здесь исправлено и никак не мешает.

Есть правда одна проблема. И проблема эта связана с тем, что я не просто пользователь убунты, я пользователь который привык определённые вещи настраивать под себя. Так, например, я не пользуюсь юнити, т.к. не смог с ней ужиться по ряду причин (дело не столько в привычках, а в том, что некоторых функций там нет а заменить их она сильно мешает), и использую то, что раньше называлось Gnome Fallback, а в 14.04 называется Gnome Flashback.

Но особенно важно для меня, чтобы адекватно работала клавиатура.
 

среда, 12 февраля 2014 г.

Если не работает VPN через роутер

Убил кучу времени на решение проблемы, так что опишу решение здесь.

Итак, картина маслом по хлебу: при смене провайдера перестал работать VPN (securityKISS, kebrum) в Ubuntu. Соединения настроены через Network Manager. Однако, обнаружилось, что если подключить кабель к ноутбуку напрямую, а не через роутер, то всё работает.

Схема такая: Интернет → Провайдер → PPPoE → Роутер (Zyxel Keenetic Lite) → Компьютеры с Ubuntu (12.04.4 64 бита).

До этого провайдер не использовал PPPoE и всё работало.

Итак, тут есть сразу две проблемы. Во-первых, нужно проверить, включен ли проброс пакетов в ядре:
cat /proc/sys/net/ipv4/ip_forward
Ответом должно быть "1". Если ответ "0", то нужно включить проброс пакетов на постоянной основе (будет действовать после перезагрузки):
echo "net.ipv4.ip_forward=1" | sudo tee -a /etc/sysctl.conf
Но перезагружаться не обязательно, можно включить проброс пакетов в текущей сессии:
echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward
Но это только полбеды. Если у вас заработал VPN - поздравляю. Если нет - читаем дальше. Проблема тут в том, что провайдер использует PPPoE. А это значит, MTU (максимальный размер пакета) уменьшается. Роутер его тоже уменьшит. Проверяем:
$ traceroute --mtu 8.8.8.8
Ответом будет что-то вроде:
traceroute to 8.8.8.8 (8.8.8.8), 30 hops max, 65000 byte packets
1  192.168.1.1 (192.168.1.1)  0.868 ms F=1400  0.740 ms  0.669 ms
2  x.x.x.x (x.x.x.x)  1.722 ms  1.684 ms  1.582 ms
Вот там есть F=1400 это и есть наш MTU. Заходим в свойства соединения с роутером в Network Manager и меняем MTU на это число.

Собственно, всё, после этого VPN должен работать.