Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
tutoriel:comment_afficher_statut_batterie_acpi [Le 13/03/2008, 22:06]
YoBoY déplacé de /materiel/batterie_acpi
— (Version actuelle)
Ligne 1: Ligne 1:
-{{tag>​hoary breezy dapper edgy énergie matériel installation}} 
----- 
  
-[[https://​wiki.ubuntu.com/​ACPIBattery|Traduit]] par [[utilisateurs:​ZeBob]],​ [[utilisateurs:​Sbrunner]] 
- 
-====== Batteries ACPI ====== 
-Certains ordinateurs portables n'​affichent pas le statut de la batterie. Ce guide va vous montrer comment résoudre cet ennuyeux problème. Il y a beaucoup de messages sur les forum concernant ce sujet mais aucun ne vous montre comment résoudre facilement le problème. 
- 
-Note: Le noyau d'​Ubuntu contient déjà le correctif nécessaire au bon fonctionnenment des batteries, donc aucune recompilation de noyau n'est nécessaire dans ce guide! 
- 
-===== Prérequis ===== 
-Nous allons avoir besoin de compiler certaines choses, il nous faut pour cela le paquet build-essential. Nous avons aussi besoin des paquets flex-old (qui remplacera flex) et bison. 
- 
-  sudo apt-get install build-essential bison flex-old 
- 
-===== Le DSDT pour votre portable ===== 
-Le DSDT (Differentiated System Description Table) se situe dans votre BIOS. Il sert à informer Linux de tous les composants de votre ordinateur. Le vôtre est manifestement désordonné,​ nous allons donc en trouver un nouveau. 
- 
-Rendez vous à la [[http://​acpi.sf.net/​|page ACPI]] sur sourceforge et dans le menu sur la gauche cliquez sur DSDT puis sur View. Lorsque vous y êtes sélectionnez le fabriquant, le modèle et la version correspondant à votre BIOS. Sur la page que vous obtenez ensuite, vous pourrez télécharger un DSDT corrigé pour votre portable. Si le vôtre ne s'y trouve pas, allez voir les liens à la fin de ce document. S'il n'​existe pas de DSDT pour votre version de BIOS, mettez votre BIOS à jour (cela pourrait déjà régler le problême). 
- 
-Copiez l'​adresse de téléchargement (pour la coller dans la console) et dans votre $HOME faites: 
- 
-  mkdir acpi 
-  cd acpi 
-  wget http://​acpi.sourceforge.net/​dsdt/​tables/​Manufacturer/​Model/​DSDT.asl.gz 
-  gzip -d DSDT.asl.gz 
- 
-(le lien après wget doit être remplacé par celui de votre DSDT) 
- 
- 
-===== Téléchargement du compilateur iasl d'​Intel ===== 
-Le DSDT doit être compilé. Pour cela nous avons besoin d'un compilateur spécial d'​Intel. Téléchargez les sources Unix [[http://​www.intel.com/​technology/​IAPC/​acpi/​downloads.htm|ici]] 
- 
-vous avez deux solutions pour installer iasl: 
- 
-sur Ubuntu 6.10 vous pouvez l' installer avec apt-get (depots multiverse et universe activés), la version installée est plus fiable qu' avec l' installation par les sources dicté ci dessous. En console : 
- 
-    sudo apt-get install iasl 
- 
-ou à partir des sources 
- 
-  wget http://​www.intel.com/​technology/​iapc/​acpi/​downloads/​acpica-unix-20050624.tar.gz 
-  tar zxf acpica-unix-20050624.tar.gz 
-  cd acpica-unix-20050624/​compiler 
-  make 
-  cp iasl ../.. 
-  cd ../.. 
- 
-Si le ''​make''​ n'a pas fonctionné il se peut que bison ne soit pas installé ou que vous ayez encore ''​flex''​ au lieu de ''​flex-old''​. 
- 
-===== Compilation de votre DSDT ===== 
-Puisque les versions 2005 d'iasl sont plus restrictives que les anciennes versions, il est possible que votre DSDT ne se compile pas. Vous pouvez toujours essayer de trouver une ancienne version d'iasl (je n'ai pas réussi) ou corriger votre DSDT vous-même (ce que je vais expliquer maintenant). 
- 
-  cp dsdt.asl yourdsdtfile.asl # sauvegarde 
-  ./iasl -tc dsdt.asl ​         # compilation 
- 
-Si tout fonctionne correctement,​ vous devriez obtenir 0 erreur, quelques avertissements et deux nouveaux fichiers : un fichier ''​.hex''​ et un fichier ''​.aml''​. Dans le cas contraire, de nombreux messages d'​erreurs vous disant qu'une "''​ResourceSource string''​ est manquante"​ (//​missing//​) s'​afficheront. Ces erreurs sont facilement corrigeables. Gardez ouverte la fenêtre avec les erreurs de compilation pour avoir les numéros de ligne des erreurs. 
- 
-Voici à quoi ressemblent les erreurs: 
- 
-  dsdt.asl ​ 1028:                     ​0x0100,​ 0x00) 
-  Error    1094 -                                 ^ Missing ResourceSource string (required) 
- 
-  dsdt.asl ​ 1034:                     ​0x00000CF8,​ 0x00) 
-  Error    1094 -                                     ^ Missing ResourceSource string (required) 
- 
-  dsdt.asl ​ 1041:                     ​0x0000F300,​ 0x00) 
-  Error    1094 -                                     ^ Missing ResourceSource string (required) 
- 
-Ouvrons le fichier ''​.asl''​ et regardons à la ligne 1028. 
- 
-  gedit dsdt.asl&​ 
- 
-Il doit ressembler à: 
- 
-  1023  WordBusNumber (ResourceProducer,​ MinFixed, MaxFixed, PosDecode, 
-  1024      0x0000, /* Address Space Granularity */ 
-  1025      0x0000, /* Address Range Minimum */  
-  1026      0x00FF, /* Address Range Maximum */ 
-  1027      0x0000, /* Address Translation Offset */ 
-  1028      0x0100, 0x00) 
- 
-Nous devons simplement enlever le ''​0x00''​ pour que la ligne 1028 ressemble à: 
- 
-  1028      0x0100) 
- 
-Répétez cette opération pour toutes les erreurs ''​Missing ResourceSource string''​ (elles devraient toutes être à la même position), enregistrez le fichier et fermez gedit. 
-D'​autres erreurs peuvent se présenter, notamment concernant des fichiers à inclure. 
-Par exemple, pour un Acer TM4000, des fichiers du patch http://​sourceforge.net/​projects/​sbs-linux/​ ont été nécessaires. 
-Maintenant compilez de nouveau avec la commande ''​./​iasl -tc dsdt.asl''​ 
- 
- 
-Il se peut également que les fins de lignes posent problème si le fichier est au format DOS (<​CR><​LF>​). 
-Si tel est le cas vous obtiendrez un très grand nombre d'​erreurs (en fait une par ligne) du style : 
-  DSDT.asl ​  ​204: ​        Else 
-  Error    1094 -             ^ Invalid character (0x0D), expecting ASL keyword or name 
-  ​ 
-  DSDT.asl ​  ​205: ​        { 
-  Error    1094 -          ^ Invalid character (0x0D), expecting ASL keyword or name 
-Le remède est le suivant: 
-  sudo apt-get install sysutils 
-  dos2unix dsdt.asl 
-Maintenant compilez de nouveau avec la commande ''​./​iasl -tc dsdt.asl''​ 
- 
-===== Quelques sauvegardes ===== 
-Comme nous ne voulons pas endommager votre système fonctionnel,​ nous allons travailler sur une sauvegarde puis nous l'​ajouterons à votre chargeur de boot. 
- 
-  sudo -s -H   # suivi du mot de passe de l'​utilisateur 
-  cp /​boot/​initrd.img-2.6.10-5-686 /​boot/​initrd.img-2.6.10-5-386.acpi 
-  cp /​boot/​vmlinuz-2.6.10-5-686 /​boot/​vmlinuz-2.6.10-5-386.acpi 
-  exit 
- 
-Pour pouvoir démarrer à partir cette copie, nous devons ajouter une section correspondante dans le chargeur de boot Grub. 
- 
-  gedit /​boot/​grub/​menu.lst&​ 
- 
-Ajoutez une section qui ressemble à ceci (regardez les autres sections dans votre ''​menu.lst''​ afin de comparer)... 
- 
-  title           ​Ubuntu,​ kernel 2.6.10-5-386 Battery 
-  root            (hd0,3) 
-  kernel ​         /​boot/​vmlinuz-2.6.10-5-386.acpi root=/​dev/​hda4 ro quiet splash 
-  initrd ​         /​boot/​initrd.img-2.6.10-5-386.acpi 
-  savedefault 
-  boot 
- 
-...et placez-la où vous voulez qu'​elle s'​affiche dans le menu de démarrage. 
- 
- 
- 
-===== Ajout de votre DSDT dans initrd ===== 
-Il ne nous reste plus qu'à ajouter le DSDT dans votre initrd. 
- 
-  echo -n "​INITRDDSDT123DSDT123"​ >> /​boot/​initrd.img-2.6.10-5-386.acpi 
-  cat DSDT.aml >> /​boot/​initrd.img-2.6.10-5-386.acpi 
-  echo -n "​INITRDDSDT321DSDT321"​ >> /​boot/​initrd.img-2.6.10-5-386.acpi 
- 
-Ca y est! Redémarrez votre ordinateur et choisissez l'​option de démarrage nouvellement créée. Si tout fonctionne correctement,​ vous pouvez en toute sécurité supprimer le dossier $HOME/acpi et modifier le menu de démarrage en conséquence (c'​est-à-dire faire de la nouvelle option de démarrage celle par défaut). 
- 
-====Autre possibilité==== 
-(chez moi la première n'a pas marché :( ) 
- 
-Copier le fichier dsdt au bon endroit, puis reconfigurer le noyau Linux : 
- 
-** 
-* Edgy, Feisty et Gutsy:** 
-  sudo cp dsdt.aml /​etc/​initramfs-tools/​DSDT.aml 
-  sudo dpkg-reconfigure linux-image-$(uname -r) 
-** 
-* Breezy et Dapper :** 
-  sudo cp dsdt.aml /​etc/​mkinitramfs/​DSDT.aml 
-  sudo dpkg-reconfigure linux-image-$(uname -r) 
-** 
-* Hoary :** 
-  sudo cp dsdt.aml /​etc/​mkinitrd/​DSDT 
-  sudo dpkg-reconfigure linux-image-$(uname -r) 
- 
-(Méthode postée à l'​origine par xuzo ici : http://​www.ubuntu-es.org/​node/​4164) 
- 
-===== Liens ===== 
-[[http://​acpi.sourceforge.net/​|acpi.sf.net]] - ACPI Homepage\\ 
-[[http://​forums.gentoo.org/​viewtopic.php?​t=122145|Gentoo Forums]] - How to fix a DSDT yourself\\ 
-[[http://​www.intel.com/​technology/​IAPC/​acpi/​downloads.htm|Intel ACPI]] - Download iasl compiler\\ 
-[[http://​gaugusch.at/​kernel.shtml|gaugusch.at]] - the kernel patch to make this work\\ 
- 
- 
- 
-===== Note(s) ===== 
- 
-Il est aussi possible de trouver des fichiers DSDT au format asl ici : http://​acpi.sourceforge.net/​dsdt/​view.php 
- 
-Vous êtes bien évidement invité à contribuer votre DSDT si vous possedez une image dsdt fonctionnelle. 
- 
-===== Sur Breezy =====  
-Après recompilation de la DSDT j'​avais perpétuellement une erreur au reboot : 
-<​code>​ 
-kernel panic - not syncing: VFS: Unable to mount root fs on unknown block (0,0) 
-</​code>​ 
-Voici la manipulation à faire pour corriger ce problème : 
-    - copier la DSDT fraîchement compilée dans /​etc/​mkinitramfs 
-<​code>​cp DSDT.aml /​etc/​mkinitramfs/​DSDT.aml</​code>​ 
-    - faire un mkinitramfs -o <​nomdunouveauinitrd>​ 
-<​code>​mkinitramfs -o DSDTok</​code>​ 
-    - copier ce nouveau fichier dans /boot 
-<​code>​cp DSDTok /​boot/​DSDTok</​code>​ 
-    - configurer le menu.lst de grub correctement. C'​est-à-dire comme ceci : 
-<​code>​ 
-title           ​Ubuntu,​ kernel 2.6.10-5-386 Batterie 
-root            (hd0,3) 
-kernel ​         /​boot/​vmlinuz-2.6.10-5-386 root=/​dev/​hda4 ro quiet splash 
-initrd ​         /​boot/​DSDTok 
-savedefault 
-boot</​code>​(n'​oubliez pas de mettre la bonne version de votre noyau). 
-\\ 
-Et voilà, c'est fini ! \\ 
-A noter que les fichier .acpi créés plus haut ne sont plus d'​aucune utilité. 
  • tutoriel/comment_afficher_statut_batterie_acpi.1205442393.txt.gz
  • Dernière modification: Le 18/04/2011, 14:51
  • (modification externe)