Toshiba L735-116 et reconnaissance de la batterie sous Linux

Billet

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 :

  1. ouvrir un terminal et passer en root (sudo -s)
  2. cd /boot/
  3. On récupère le tableau DSDT de la machine
    cat /sys/firmware/acpi/tables/DSDT > dsdt.dat
  4. on le désassemble
    iasl -d dsdt.dat
  5. on ouvre le fichier désassemblé avec son éditeur de texte favori (gedit, geany, vi...)
    geany dsdt.dsl
  6. on cherche la ligne :
    OperationRegion (EMEM, SystemMemory, 0xFF808001, 0xFF)
    et on la remplace par
    OperationRegion (EMEM, EmbeddedControl, 0x00, 0xFF)
  7. On enregistre le fichier
  8. 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
  9. 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)
  10. On donne à ce script les droits d'exécution
    chmod +x /etc/grub.d/01_acpi
  11. On lance la commande
    update-grub2
  12. 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).

Commentaires

1. Le vendredi 23 mars 2012, 09:06 par Swâmi Petaramesh

Merci, je viens d'acquérir un Toshiba Satellite L735-101 qui présente les même problème sous les divers pingouins avec lesquels je l'ai essayé (principalement *ubuntu et des dérivatives Mint, Bodhi...), votre post va donc m'être extrêmement utile :-)

...Au cas où, je cherche aussi un moyen de rendre fonctionnelles les touches de réglage de luminosisté écran, etc... Si vous aviez un pointeur... ;-)

2. Le mardi 27 mars 2012, 22:10 par Pascal Chevrel
@swami
Sur mon Toshiba, les touches spéciales que j'utilise (luminosité, son, désactivation souris) fontionnent, je ne me rappelle pas avoir fait quelque chose de spécial pour ça.
3. Le samedi 21 avril 2012, 20:15 par lazih

Merci ça marche pour mon Toshiba Satellite L750-1QN avec Mint 12 Lisa sauf que lors de la compilation j'ai eu deux erreurs que j'ai pu corriger avec le premier lien externe.
Pour les touche 'fn' voila un lien pour rendre fonctionnelles les touches de réglage de luminosité écran
http://askubuntu.com/questions/8396...
par contre j'ai pas toutes les touches qui fonctionne