Неожиданно обнаружил, что Ubuntu 16.04 не умеет переходить в энергосберегающий режим при переходе на батарею.
Это происходит из-за того, что systemd не умеет определять режим питания. Так что пакет pm-utils просто не работает автоматическии. Руками переключать можно.
Это же относится к 15.04 и 15.10, где тоже systemd.
Я озадачился этим вопросам и сделал простой фикс. Надо через udev получить событие и запустить скрипт.
Добавляем файл /etc/udev/pm-utils.rules с таким содержанием
SUBSYSTEM=="power_supply", ATTR{online}=="0", RUN+="/usr/sbin/pm-powersave true"
SUBSYSTEM=="power_supply", ATTR{online}=="1", RUN+="/usr/sbin pm-powersave false"
Теперь скрипты срабатыают при выдергивании шнура и вставлении его обратно. Вот только при загрузке скрипты не отрабатыаются. Поэтому добавляем
udevadm trigger -s power_supply
в rc.local
В 16.04, а может быть и раньше появилась "проблема" с NetworkManager. Он по дефолту идет с выключенным энергосбережением.
Для некоторых адаптеров и систем это хорошо, так как оно не везде работает хорошо. У меня проблем с этим нет, поэтому исправил это скриптом /etc/NetworkManager/dispatcher.d/02-powersave
#!/bin/sh
[ "$1" = "wlan0" ] && [ "$2" = "up" ] && udevadm trigger -s power_supply
У кого интерфейс не wlan0 надо соответственно заменить.
Я еще сделал более тонкие настройки питания и получил отличный результат на двух ноутах. Но это отдельная тема.
Здесь написал как завести стандартные настройки.