Fonctionnement sur batterie

Terminologie

ACPI : Advanced Configuration and Power Interface : Interface avancée de configuration et de gestion de l'énergie

1 - Périphériques secteur

1.1 - Liste des périphériques et caractéristiques

La liste des périphériques secteur (batterie, alimentation sauvegardée) et leurs caractéristiques sont présentes dans sysfs :

$ ls /sys/class/power_supply/
AC0 BAT0
$ ls /sys/class/power_supply/AC0
device online power subsystem type uevent
$ ls /sys/class/power_supply/BAT0
alarm energy_full_design present uevent
capacity energy_now serial_number voltage_min_design
capacity_level manufacturer status voltage_now
cycle_count model_name subsystem
device power technology
energy_full power_now type

Par exemple :

$ cat /sys/class/power_supply/BAT0/status 
Discharging

Récapitulatif de toutes les informations BAT0 :

$ cat /sys/class/power_supply/BAT0/uevent 
POWER_SUPPLY_NAME=BAT0
POWER_SUPPLY_STATUS=Discharging
POWER_SUPPLY_PRESENT=1
POWER_SUPPLY_TECHNOLOGY=Li-ion
POWER_SUPPLY_CYCLE_COUNT=0
POWER_SUPPLY_VOLTAGE_MIN_DESIGN=11100000
POWER_SUPPLY_VOLTAGE_NOW=11975000
POWER_SUPPLY_POWER_NOW=6809000
POWER_SUPPLY_ENERGY_FULL_DESIGN=48400000
POWER_SUPPLY_ENERGY_FULL=69960000
POWER_SUPPLY_ENERGY_NOW=68156000
POWER_SUPPLY_CAPACITY=97
POWER_SUPPLY_CAPACITY_LEVEL=Normal
POWER_SUPPLY_MODEL_NAME=N55--52
POWER_SUPPLY_MANUFACTURER=ASUSTek
POWER_SUPPLY_SERIAL_NUMBER=

1.2 - Propriétés acpi

Lorsque la connexion secteur est gérée par l'acpi noyau, acpi_listen permet d'afficher les événements au fur et à mesure de leur détection. Voir ACPI - Advanced Power and Configuration Interface

Vérifier la bonne détection du secteur et de la batterie :

$ acpi_listen
ac_adapter ACPI0003:00 00000080 00000000
PNP0C14:01 000000ff 00000000
processor LNXCPU:00 00000081 00000000
processor LNXCPU:01 00000081 00000000
processor LNXCPU:02 00000081 00000000
processor LNXCPU:03 00000081 00000000
battery PNP0C0A:00 00000080 00000001
ac_adapter ACPI0003:00 00000080 00000001
PNP0C14:01 000000ff 00000000
processor LNXCPU:00 00000081 00000000
processor LNXCPU:01 00000081 00000000
processor LNXCPU:02 00000081 00000000
processor LNXCPU:03 00000081 00000000
battery PNP0C0A:00 00000080 00000001

Un état récapitulatif de la charge et du secteur sont affichables avec la commande acpi (dépréciée) :

$ acpi -i
Battery 0: Discharging, 96%, 06:38:37 remaining
Battery 0: design capacity 4011 mAh, last full capacity 6264 mAh = 100%

$ acpi -a
Adapter 0: on-line

2 - upower

upower permet d'afficher les propriétés des sources d'énergie et de générer des actions en fonction de leur niveau. Il utilise le bus système (D-Bus) pour communiquer.

Il prend en charge l'alimentation secteur du système et tout périphérique compatible sur batterie ou pile (souris, clavier, .....)

2.1 - Installation

# apt install upower

upower dispose d'un service lancé par systemd :

$ systemctl status upower.service 
● upower.service - Daemon for power management
Loaded: loaded (/lib/systemd/system/upower.service; disabled)
Active: active (running) since ven. 2016-12-30 18:31:22 CET; 17min ago
Docs: man:upowerd(8)

2.2 - Affichage des sources d'énergie

$ upower -e
/org/freedesktop/UPower/devices/line_power_AC0
/org/freedesktop/UPower/devices/battery_BAT0
/org/freedesktop/UPower/devices/mouse_0003o046DoC52Fx0002
/org/freedesktop/UPower/devices/DisplayDevice

4 sources d'énergie ont été trouvées : le secteur, la batterie du PC, la pile de la souris et l'affichage de l'état de la batterie

$ upower -i /org/freedesktop/UPower/devices/battery_BAT0
native-path: BAT0
vendor: ASUSTek
model: N55--52
power supply: yes
updated: ven. 30 déc. 2016 22:46:04 CET (6 seconds ago)
has history: yes
has statistics: yes
battery
present: yes
rechargeable: yes
state: discharging
warning-level: none
energy: 68,156 Wh
energy-empty: 0 Wh
energy-full: 69,96 Wh
energy-full-design: 48,4 Wh
energy-rate: 6,809 W
voltage: 11,975 V
time to empty: 10,0 hours
percentage: 97%
capacity: 100%
technology: lithium-ion
icon-name: 'battery-full-symbolic'
$ upower -d 
......
Daemon:
daemon-version: 0.99.1
on-battery: no
lid-is-closed: no
lid-is-present: yes
critical-action: HybridSleep

2.3 - Action sur niveau batterie critique

2.3.1 Principe

Le comportement en cas de niveau batterie critique est définit dans /etc/UPower/Upower.conf.

Par défaut, la détection s'effectue lorsque le temps restant est de 120 secondes et l'action est la mise en hibernation hybride.

Après avoir modifié le fichier de configuration /etc/UPower/UPower.conf, relancer upower :

# systemctl restart upower.service

2.3.2 bug de fonctionnement de upower

Toutefois un bug dans la version upower de Jessie fait que même si l'action critique demandée est l'arrêt ou l'hibernation, l'action réalisée (ou tentée) est l'hibernation hybride. Le bug semble corrigé dans Strech, mais la version n'est pas compatible avec Jessie : https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=799624

3 - Moniteur de batterie du bureau Xfce

La gestion de la batterie, des niveaux d'alerte et des actions à entreprendre est fournie par le plugin xfce4-battery-plugin :

# apt install xfce4-battery-plugin

Une fois le plugin installé, cliquer sur Propriétés pour faire afficher la fenêtre permettant le paramétrage et sélectionner l'onglet Système :

Moniteur de batterie