La batterie de mon portable n'est pas reconnue par Linux, ce qui veut dire que linux ne me donne pas d'indicateur de charge quand je suis débranché.
Jusqu'à présent je devais à chaque changement de noyau le recompiler avec un patch spécial. J'ai trouvé hier une méthode complémentaire sur un blog qui m'évite d'avoir à recompiler le noyau, je la documente donc ici en français, pour moi-même, mais aussi pour ceux qui auraient le même problème.
Mon portable est un Toshiba L735-116 mais de nombreux autres modèles de Toshiba sont affectés, donc si vous avez le même problème sur votre portable, rien ne vous empêche d'essayer, le geek qui a analysé et trouvé la solution au problème a lui un L650.
Les informations que je synthétise ici en français sont issues de ces deux billets :
Un grand merci donc à leurs auteurs Faheem et Michael Kuron pour avoir partagé leurs connaissances et apporté une solution.
Typiquement, vous savez que vous n'avez pas de batterie reconnue avec ces commandes :
~$ cat /proc/acpi/battery/BAT1/*
present: no
present: no
present: no
Les étapes à suivre sont les suivantes :
- ouvrir un terminal et passer en root (sudo -s)
cd /boot/
- On récupère le tableau DSDT de la machine
cat /sys/firmware/acpi/tables/DSDT > dsdt.dat
- on le désassemble
- on ouvre le fichier désassemblé avec son éditeur de texte favori (gedit, geany, vi...)
geany dsdt.dsl
- on cherche la ligne :
OperationRegion (EMEM, SystemMemory, 0xFF808001, 0xFF)
et on la remplace par
OperationRegion (EMEM, EmbeddedControl, 0x00, 0xFF)
- On enregistre le fichier
- On lance la commande pour le recompiler en un fichier dsdt.aml (ça créera aussi un fichier dsdt.hex mais on s'en servira pas)
iasl -tc dsdt.dsl
- On récupère ce script 01_acpi.txt et on l'enregistre dans le dossier /etc/grub.d/ sous le nom 01_acpi (on enlève l'extension .txt)
- On donne à ce script les droits d'exécution
chmod +x /etc/grub.d/01_acpi
- On lance la commande
update-grub2
- On redémarre et normalement c'est bon :)
Pour info, ce bug est déjà signalé dans le bugzilla du kernel depuis deux ans et n'est pas réglé dans le noyau 3.2 que j'utilise (Bug 15707 - can not get AC/DC status).
Pascal Chevrel
01-03-2012
Ubuntu