Wlan слишком быстро разряжает батарею в Ubuntu 16.04
У меня есть ноутбук Asus N55SL, на котором батарея может работать почти 4 часа в Windows 7.
До прошлой недели у меня было 2х50-3ч автономной работы от батареи с Ubuntu 16.04 и Linux 4.13. Произошло что-то (обновления или что-то еще), из-за чего мой аккумулятор прослужил меньше 1 часа 30 минут
У меня есть TLP, настроенный для включения управления питанием на карте Wi-Fi и USB приостановить. Используемый драйвер процессора - Intel Pstate на регуляторе powersave.
При открытии powertop все настройки находятся в хорошем состоянии, кроме времени ожидания обратной записи виртуальной машины, но сетевые интерфейсы wlp3s0 (iwlwifi) и enp5s0 (atl1c) отстой соответственно 14 Вт и 6 Вт, а общее энергопотребление системы составляет 25 Вт. У меня также есть USB -device-8086-0189, потребляющая 2 Вт, которая, по-видимому, является радиомодулем Bluetooth, а Bluetooth выключен.
Я помню, как несколько недель назад работал с общей мощностью 15 Вт. Что можно сделать / что здесь может пойти не так?
2 ответа
Проблема возникла из-за неисправного DKMS, как описано здесь: Высокое энергопотребление eth0 | archlinux.org
DKMS не работает bbswitch
модуль для правильной компиляции во время обновления ядра. Таким образом, графический процессор Nvidia постоянно включался и плохо калибровался при включении питания, так что дополнительная потеря мощности была ошибочно отнесена к сетевой карте.
Мне пришлось очистить и переустановить DKMS, bbswitch и драйвер Nvidia, как описано здесь: dkms не перестраивается автоматически после обновления ядра
Сейчас я вернулся в 13-14 Вт.
Сначала я хотел бы убедиться, что powertop правильно измеряет энергопотребление, возможно, он учитывает какое-то другое устройство, но приписывает его eth0. Вы можете проверить это с powertop --calibrate
как обсуждено здесь в Arch Linux wiki
Если вы уверены, что правильно измеряете энергопотребление, вам нужно будет просмотреть параметры драйвера для вашего конкретного драйвера. Вы можете определить драйвер с lshw -c network
как обсуждено здесь Как найти какой модуль ядра находится за сетевым интерфейсом?
После того, как вы узнаете драйвер, вы можете поэкспериментировать с различными опциями модуля, выгрузив модуль (используя modprobe -r <module name>
, так что он выгружает зависимости) затем добавление файла.conf в /etc/modprobe.d/
с параметрами, которые вы хотите попробовать и запустить modprobe <module name> again
- здесь очень хорошее обсуждение того, как найти доступные опции и как их настроить (даже если для более старой версии Ubuntu) здесь Как добавить параметры модуля ядра?
Наконец, лично у меня возникли трудности с картой Intel 9260, хотя они не были связаны с питанием, и простое обновление ядра до текущей серии 4.17.x с помощью пакета UKUU (доступно в центре программного обеспечения) исправило мои проблемы без дальнейшего вмешательства требуется. Это может быть что-то, что нужно запомнить, как вариант последней инстанции, или простой тест, в зависимости от вашего удобства при обновлении ядра.
Удачи