На цей раз стало мені цікаво – а чи можна якось поекономити заряд батерії ноутбука? Не сказати, що швидко разряжається – на 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.










