ACPI : Advanced Configuration and Power Interface : Interface avancée de configuration et de gestion de l'énergie
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
Informations secteur :
$ ls /sys/class/power_supply/AC0
device online power subsystem type uevent
Informations batterie :
$ 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=
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
Lors de la déconnexion secteur :
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
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, .....)
# 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)
Liste (énumération) 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'
Le démon upower :
$ upower -d
......
Daemon:
daemon-version: 0.99.1
on-battery: no
lid-is-closed: no
lid-is-present: yes
critical-action: HybridSleep
Le comportement en cas de niveau batterie critique est définit dans /etc/UPower/Upower.conf.
L'action critique peut être l'arrêt ou l'hibernation ou l'hibernation hybride (mise en veille plus hibernation).
Il est possible de définir le niveau critique soit par rapport au pourcentage batterie restant, soit au temps restant.
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
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
Notes : Le Moniteur de batterie de xfce4 n'utilise pas upower, il n'est donc pas affecté par ce bug. Par contre le Gestionnaire d'énergie xfce4-power-manager utilise upower et est affecté par ce bug.
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 :