03Jan 2007
Connaître le niveau de la batterie sous GNU/Linux sur un Acer Aspire 1680
02:28 - By Fabien Poulard
Les Acer Aspire 1680 utilisent un système pas génial pour la gestion de la batterie, à savoir : Smart Battery System. Contrairement à son nom, ce système n’est pas vraiement smart étant donné qu’il est beaucoup moins évolué que l’ACPI actuel et qu’en plus les systèmes ACPI n’arrivent pas à discuter avec lui.
Prérequis
Pour pouvoir suivre cet article, vous devez savoir :
- compiler un noyau
- installer un programme sous votre distribution
- lancer une commande en mode console
Configuration du noyau
La gestion du SBS est dans le noyau courant (2.6.19) présente sous la forme de code expérimental. Pour y avoir accès il est donc nécessaire de cocher l’option :
-> Code maturity level options [*] Prompt for development and/or incomplete code/drivers
Le support de SBS est intégré au sous-système ACPI. Il est donc nécessaire que celui-ci soit compilé dans le noyau pour pouvoir accéder à l’option. De plus, le support de ces batteries semble également se faire par le biais d’un bus I2C. Il est donc nécessaire de compiler ce dernier.
Je fais le choix de compiler SBS sous la forme d’un module afin de :
- alléger mon noyau de base;
- car le code est expérimental;
- car il n’est pas nécessaire au système pour démarrer.
L’option de compilation se trouve à :
-> Power management options (ACPI, APM)
-> ACPI (Advanced Configuration and Power Interface) Support
-> ACPI Support (ACPI [=y])
<M> Smart Battery System (EXPERIMENTAL)
Vous devriez maintenant voir les options suivantes dans votre fichier .config :
... # # I2C support # CONFIG_I2C=y CONFIG_I2C_CHARDEV=y ... # # Power management options (ACPI, APM) # CONFIG_PM=y CONFIG_PM_LEGACY=y CONFIG_PM_DEBUG=y ... # # ACPI (Advanced Configuration and Power Interface) Support # CONFIG_ACPI=y ... CONFIG_ACPI_SBS=m ...
Compilation du noyau et chargement du module
Selon que vous aviez déjà le support de I2C et de l’ACPI dans votre noyau, ou non, vous devrez respectivement recompiler tout le noyau ou juste les modules.
Dans le cas où il est nécessaire de ne compiler que les modules, vous pouvez lancer les commandes suivantes :
shell# make modules && make modules_install
Puis vous pouvez charger le module SBS par le biais de la commande :
shell# modprobe sbs
Si tout s’est passé comme prévu, vous devriez voir apparaître une arborescence du type suivant sous le répertoire /proc/acpi/battery :
+ /proc/acpi/battery
+ BAT0
+ alarm
+ info
+ state
Visionner le niveau de batterie
Vous pouvez bien entendu "lire" le niveau de la batterie par le biais des fichiers présents dans le sous-répertoire /proc/acpi/battery/BAT0 ; cependant un petit utilitaire graphique pourrait être bien plus appréciable !
Parmis les applications intéressantes - et étant donné que j’utilise un bureau de type wm -, on peut trouver :
- wmbattery qui permet de surveiller le niveau de batterie et de vous avertir lorsque cette dernière arrive à un niveau bas;
- wmacpi qui permet de surveiller plusieurs évènements ACPI, dont la batterie. Je le trouve personnellement moins pratique que wmbattery.
Si vous utilisez des environnements comme Gnome ou KDE, il existe un certain nombre d’applets permettant de surveiller les niveaux de batterie. Je vous laisse le soin de les découvrir par vous même.
About the ICS format