ACPI veut dire "Advanced Configuration and Power Interface", soit "interface avancée de configuration et de gestion de l'énergie".
DSDT veut dire "Differentiated System Description Table", soit "table de description différenciée du système".
Sans entrer dans les détails car ce n'est pas le but de cette page, l'ACPI est utilisée à l'allumage et à l'extinction de l'ordinateur, la mise en veille, la gestion de la batterie pour les portables, etc. La table DSDT est un élément permettant de faire fonctionner l'ACPI, si la table DSDT contient des erreurs, l'ACPI pourra poser problème.
La table DSDT est fournie dans le bios de la carte mère. D'ailleurs, avant de continuer plus loin, avez vous vérifié que votre bios est bien à jour ?
Cette table DSDT est souvent générée avec un outil (qu'on appelle compilateur) de Microsoft par ceux qui produisent les bios, or ce compilateur est plus que tolérant avec la syntaxe permettant de créer cette table. Or si une table DSDT peut comporter des erreurs sans que cela pose à Windows, il n'en est pas de même pour Linux. En effet, Linux ne met pas en place de contournement spécifique, l'ACPI posera donc problème.
Parallèlement aux outils de Microsoft, il existe aussi l'outil d'Intel qui lui respecte complètement les règles et génèrera une table sans erreur. Une fois la nouvelle table créée, il faudra alors faire en sorte que Linux puisse l'utiliser.
Le principe consiste à décompiler le fichier binaire (format aml) de la table actuelle en format texte (format asl) puis de le recompiler afin de voir s'il contient des erreurs.
D'abord, il faut vérifier que /proc/acpi soit présent, si cela n'est pas le cas, cela veut dire que le noyau ne gère pas l'ACPI, il faut alors activer le support de l'ACPI soit en statique dans le noyau soit sous la forme de modules.
Puis nous créons un répertoire en local afin d'avoir un espace de travail délimité. Ainsi sur son home, on pourra créer un répertoire acpi puis s'y positionner avec la commande :
Nous pouvons alors récupérer la table DSDT actuelle du bios avec la commande :
Ce fichier n'est pas lisible sous format texte, il faut d'abord le convertir avec le compilateur d'Intel. Avant de continuer, il faut télécharger ce fichier qui contient les sources du compilateur. Il faut ensuite décompresser et détarrer le fichier avec la commande suivante :
Nous pouvons alors générer l'outil (on parle de compilation) à partir des sources en tapant les commandes suivantes :
Attention, la compilation nécessite les packages bison et flex (sudo apt-get install bison flex). A la fin de la compilation, si tout s'est bien passé, le fichier iasl sera présent dans le répertoire compiler. Pour plus de facilité, on copiera ce fichier dans le répertoire acpi et nous y positionnerons avec les commandes suivantes :
Décompilons le fichier binaire, ce qui génèrera le fichier dsdt.dsl :
Nous pouvons alors compiler le fichier afin de vérifier s'il contient des erreurs :
Si la compilation s'est déroulée sans erreur, 2 fichiers seront créés : dsdt.aml et dsdt.hex. Sinon, il faudra corriger le fichier dsdt.dsl et retenter une compilation avec la commande précédente.
C'est la partie la plus difficile, soit vous pouvez chercher une table dsdt corrigée qui corresponde à votre bios comme sur ce site, soit il faudra que vous la corrigiez vous-même en vous aidant de cette page par exemple.
Taper les commandes suivantes :
Vous pouvez poser des questions ou laisser un commentaire sur la boîte mail XXX.free.fr, le XXX étant à remplacer par le mot-clé qui finit par 2412 dans l'url. (Qu'est ce qu'il ne faut pas faire pour éviter le spam...).