На цей раз стало мені цікаво – а чи можна якось поекономити заряд батерії ноутбука? Не сказати, що швидко разряжається – на 5-6 годин роботи вистачає, але зайвим не буде.
Знайшов декілька утіліт, про них сьогодні й запишу.
Зміст
Upower
Перша утілітка – upower
:
[simterm]
$ sudo pacman -S upower
[/simterm]
Спочатку можна визвати з опцією --monitor-detail
– буде в ріалтаймі виводити інформацію про стан батареї:
[simterm]
$ $ sudo upower --monitor-detail Monitoring activity from the power daemon. Press Ctrl+C to cancel. [20:42:20.071] device changed: /org/freedesktop/UPower/devices/battery_BAT0 native-path: BAT0 vendor: SMP model: LNV-5B10W13895 serial: 2056 power supply: yes updated: Fri Nov 18 20:42:20 2022 (0 seconds ago) has history: yes has statistics: yes battery present: yes rechargeable: yes state: charging warning-level: none energy: 36.7 Wh energy-empty: 0 Wh energy-full: 0 Wh energy-full-design: 0 Wh energy-rate: 15.538 W voltage: 12.391 V charge-cycles: N/A time to full: 22.7 minutes percentage: 86% technology: lithium-polymer icon-name: 'battery-full-charging-symbolic' History (charge): 1668796940 86.000 charging 1668796850 85.000 charging History (rate): 1668796940 15.538 charging 1668796910 15.784 charging 1668796880 16.006 charging 1668796850 16.253 charging
[/simterm]
Відразу бачимо модель батареї ноута – LNV-5B10W13895, та її стан – кількість ватт-годин (36.7 Wh), та скількі споживає зараз (15.538 W), і на якій потужності – 12.391 V.
Можна порахувати в ампер-годинах:
[simterm]
>>> 37.31/12.3 3.03
[/simterm]
Тобто зараз 3033 mAh заряду в батареї.
Заодно побачили сам девайс батареї – /org/freedesktop/UPower/devices/battery_BAT0
.
Отримати інфо про неї без моніторингу, а один раз – опція -i
з пристроєм – sudo upower -i /org/freedesktop/UPower/devices/battery_BAT0
.
ACPI
Друга, аналогічна утіліта – acpi
, але ще вміє відображати температуру (і не тільки – див. About ACPI):
[simterm]
$ sudo pacman -S acpi
[/simterm]
Виводимо інформацію щодо батареї:
[simterm]
$ acpi -i Battery 0: Charging, 91%, 00:21:40 until charged Battery 0: design capacity 3649 mAh, last full capacity 3431 mAh = 94%
[/simterm]
“design capacity 3649 mAh” – все майже як рахували вище, тільки там брали поточний заряд, який зараз десь 94% від design capacity.
Batstat
Третя корисна річ – batstat
. Простенька, але може стати в нагоді.
Качаємо репозіторій, збираємо:
[simterm]
$ git clone https://github.com/Juve45/batstat.git $ cd batstat $ make $ chmod +x batstat $ sudo mv batstat /usr/local/bin/
[/simterm]
І запускаємо:
Powertop
Powertop вміє не просто виводити інформацю про батарею, але й по-перше – виводити інформацю про процеси, які споживать енергію, по-друге – може виконати налаштування для економії заряду.
[simterm]
$ sudo pacman -S powertop
[/simterm]
Запускаємо під рутом:
[simterm]
$ sudo powertop
В табі Tunables виводиться інформація по налаштуванням, які можуть оптимізувати споживання енергії.
Вибираємо потрібний пункт, Enter – і опція переключається:
Вміє генерувати html:
[simterm]
$ sudo powertop --html=powerreport.html
[/simterm]
І результат:
Можна додати systemd-сервіс, який буде виконувати автоматичний тюнінг при старті системи.
Створюємо файл /etc/systemd/system/powertop.service
:
[Unit] Description=Powertop tunings [Service] Type=oneshot RemainAfterExit=yes ExecStart=/usr/bin/powertop --auto-tune [Install] WantedBy=multi-user.target
Та активуємо:
[simterm]
$ sudo systemctl start powertop.service $ sudo systemctl enable powertop.service
[/simterm]
TLP
Це просто монстр. Краще почитати більше інформації тут>>> та тут>>>, а зараз про основні можливості.
Встановлюємо:
[simterm]
$ sudo pacman -S tlp $ sudo pacman -S tlp-rdw
[/simterm]
Є графічний інтерфейс:
[simterm]
$ yay -S tlpui $ sudo tlpui
Під капотом вже має всі налаштування, що робить powertop
, тож powertop.service
краще вікдлючити.
Стартуємо сервіс:
[simterm]
$ sudo systemctl enable tlp.service
[/simterm]
І блокуємо (mask
) сервіси, які можуть завадити tlp
:
[simterm]
$ sudo systemctl mask systemd-rfkill.service $ sudo systemctl mask systemd-rfkill.socket
[/simterm]
Файл налаштувань – /etc/tlp.conf
, в каталозі /etc/tlp.d/
можна задавати свої параметри.
Вивести параметри, що є зараз:
[simterm]
$ sudo tlp-stat --- TLP 1.5.0 -------------------------------------------- +++ Configured Settings: defaults.conf L0004: TLP_ENABLE="1" defaults.conf L0005: TLP_WARN_LEVEL="3" defaults.conf L0006: TLP_PERSISTENT_DEFAULT="0" defaults.conf L0007: DISK_IDLE_SECS_ON_AC="0" ...
[/simterm]
Виводить прям купу всього, що стосується заліза та опцій по оптимізації, і все це можна налаштувати під себе.
Загальні поради
Ну і не забуваємо про самі базові речі.
Яскравість екрану та девайси
Перш за все це, звичайно, яскравість екрану – знизити кнопками Fn +/-brightness, або через файл, в мене це /sys/class/backlight/amdgpu_bl0/brightness
:
[simterm]
$ sudo bash -c 'echo -n 25 > /sys/class/backlight/amdgpu_bl0/brightness'
[/simterm]
Ще можна відключити непотрібні USB-девайси, такі як миша/клава/зовнішній диск, та Bluetooth чи/або WiFi, якщо підключені кабелем.
Сервіси
Також має сенс перевірити сервіси в автостарті:
[simterm]
$ systemctl list-unit-files --state=enabled UNIT FILE STATE PRESET acpid.service enabled disabled bluetooth-autoconnect.service enabled disabled bluetooth.service enabled disabled gdm.service enabled disabled [email protected] enabled enabled NetworkManager-dispatcher.service enabled disabled NetworkManager-wait-online.service enabled disabled NetworkManager.service enabled disabled pritunl-client.service enabled disabled sshd.service enabled disabled tlp.service enabled disabled remote-fs.target enabled enabled
[/simterm]
Bluetooth мені постійно не потрібен, рідко його включаю, теж саме з Притунлом.
tick_sched_timer
та Polybar
Ще виявив цікаву річ – tick_sched_timer
, шедулєр ядра, з’їдав аж 1.7W:
Погуглив, знайшов цей тред, прибив процес Polybar, який зверху виводить всяку інформацю по системі, використовуючи власні модулі – і tick_sched_timer
почав споживати лише 150-300 mW.