Créer/modifier un DSDT

Lors de l’installation d’un Hackintosh, l’utilisation d’un fichier DSDT est fortement conseillée pour garantir une machine stable et fonctionnant sans problème. Ils permettent de résoudre certains problème de reconnaissance des composants (carte graphique, chipset audio et réseau en particulier) et de résoudre une majorité des problèmes de mise en veille/sortie de veille. Ce qui tombe sous le sens vu que le DSDT est avant tout un fichier conçu pour que l’OS puisse communiquer sans problème lors de la mise en veille/réveil.

Le plus simple reste bien sûr d’utiliser un DSDT sur le net, adapté à sa configuration (l’élément clé étant la carte mère), mais d’un certain cas, il peut être plus aisé de concevoir son propre DSDT: s’il n’est pas fournis pour votre modèle de carte mère, que celui proposé vous pose des problèmes, qu’il ne soit pas mis à jour, ou simplement par curiosité.

Les différentes étapes sont généralement les même, extraire un fichier DSDT depuis le BIOS de votre carte mère, l’ouvrir avec un logiciel adapté, le modifier en appliquant des patchs et correctifs, le re-compiler, et enfin l’installer dans le dossier extra de votre Hackintosh. Il existe de nombreux logiciels qui permettent de faire tout ou partie de ces opérations, certains plus ou moins bien, ce qui fait que chaque logiciel à ses avantages et ces inconvénients. Je vais donc essayer de vous donner les bases pour comprendre les différentes étapes de la création d’un DSDT, et vous présentez les logiciels qui me paraissent les plus performants (et simples) dans ce domaine.

 

Les bases pour comprendre

Le DSDT est une table qui fait partie de la norme ACPI, cette norme vise à harmoniser la gestion de l’énergie sur les différentes plateforme. En pratique, cela correspond à plusieurs fichiers qui vont indiquer à l’OS des informations sur les différents composants pour qu’il puisse leur envoyer un signal électrique permettant de les mettre dans différents niveau d’économie d’énergie. C’est ce qui permet par exemple aux ordinateurs d’avoir plusieurs niveaux de veille, allant d’une simple veille de l’écran, à la mise en veille de tout l’ordinateur, et nécessitant un certain délai pour sortir de veille. Plus récemment, c’est aussi ce qui sert à mettre au repos un partie d’un processeur (éteindre 2 coeurs sur 4 par exemple), lorsqu’ils ne sont pas sollicité.

Au niveau du hackintosh, le problème qui se pose est que la table DSDT contenue dans le BIOS de votre carte mère n’est pas utilisable par OSX; cela pour une raison toute simple: windows tolère de nombreuses erreurs dans l’écriture du DSDT alors qu’OSX respecte strictement la norme ACPI et ne les accepte pas. Attention, je ne dis pas que les tables DSDT PC sont complètement buggé, mais simplement qu’elles contiennent des expressions qui normalement ne font pas partie de la norme ACPI: des choses parfois toutes simple comme mettre « 0″ à la place de « zero ».

 

Extraire le DSDT

La première étape va donc consister à récupérer le DSDT contenu dans le BIOS de votre carte mère. Certains logiciels permettent de l’extraire à partir du fichier BIOS que vous pouvez télécharger sur le net sur le site du constructeur de votre carte mère, l’avantage est que cela permet de créer un DSDT sans avoir forcément la machine correspondante sous la main. Dans la majeure partie des cas, les logiciels proposent d’extraire directement le DSDT à partir de la machine correspondante simplement en allant le chercher dans la zone de mémoire ou il est stocké, il faut donc absolument avoir la machine sous la main et utiliser le logiciel dessus. Cette étape est réalisable sous OSX mais à une condition, que vous n’ayez pas pas démarré votre hackintosh avec un DSDT déjà installé, sinon le logiciel va l’extraire, et c’est le DSDT situé dans le BIOS que l’on veut. Il vous faudra donc supprimer le fichier DSDT dans le répertoire Extra, puis re-démarrer la machine avant de vous lancer (cette opération peut vous obliger à réutiliser votre clé ou cd de Boot de type Unibeast/iBoot/rBoot/Chameleon… pour démarrer le temps de l’opération). Sinon vous pouvez aussi lancer le logiciel sous Windows ou Linux (s’il est disponible sous ces OS bien sûr), ou extraire le DSDT à l’aide d’un script sous Windows ou Linux (on conseille généralement d’utiliser un simple boot cd de Linux avec le script sur une clé USB) et ensuite de l’ouvrir avec un logiciel sous OSX pour le patcher.

 

Regarder rapidement à quoi ça ressemble

A ce niveau, votre DSDT s’est ouvert dans le logiciel, et vous pouvez voir plusieurs milliers de lignes de code dans l’écran principal et un menu en section sur le coté.  Le menu contient le nom de toutes les sections du DSDT, cliquer dessus vous renvois à la ligne correspondante dans la fenêtre principale, vous pouvez alors modifier manuellement le code de la section qui vous intéresse. Malheureusement, le langage utilisé est assez complexe, donc vous risquez surtout de faire des bêtises, ce qui nous amène au point suivant qui consiste à modifier le DSDT en utilisant des patch.

 

Patcher le DSDT

Les patchs sont de simples fichiers textes qui contiennent des instructions permettant d’ajouter/modifier/supprimer des parties du DSDT, tout en respectant la norme ACPI. Vous pouvez trouver ces fichiers dans pas mal de recoins du net, mais la plus grosse base de donnée reste le forum de Mald0n: olarila.com qui regroupe un nombre impressionnant de patch pour un nombre encore plus grand de configuration différentes. Certains logiciels proposent un certains nombres de patch directement intégrés. Il suffit de les appliqué avec le logiciel, et les parties correspondantes du DSDT seront modifiées. Attention, à ce niveau il faut bien vérifier de ne jamais appliquer un patch sur un DSDT qui contient déjà ce patch! Sinon cela créer des doublons et vous ne pourrez jamais recompiler le fichier DSDT. C’est d’ailleurs pour cette raison que l’on utilise pour commencer, un DSDT extrait depuis le BIOS plutôt qu’une version téléchargé sur internet, on est sûr comme cela qu’il ne contient aucun patch.

 

Recompiler le DSDT

Et oui, un fichier DSDT c’est du code qui ne permet pas simplement d’enregistrer les modifications et d’utiliser le fichier. Il faut d’abord recompiler le code. Pour cela les logiciels utilisent un compilateur intégré appelé IASL qui est fournit sur le site de l’ACPI. Il est fréquent de rencontrer quelques erreurs à ce niveau, et des mécanisme de correction intégré devrait pouvoir les résoudre. Si cela ne suffit pas, c’est que vous avez fait une erreur quelque part ou que votre DSDT ou vos patch n’étaient pas adapté, chaque erreur étant accompagné du numéro de ligne où elle se situe vous pouvez allez voir si vous pouvez la résoudre manuellement mais cela nécessitera un minimum de compétences…

 

Sauvegarder et installer

Si vous avez passer avec succès l’étape de la compilation, vous pourrez alors sauvegarder le fichier au format .aml. Il ne vous restera alors qu’à copier ce fichier dans le répertoire Extra de votre Hackintosh, le renommez DSDT.aml et re-démarrer la machine. Et si votre DSDT contient contient des bugs vous devriez le savoir assez tôt :-)

 

Et en pratique:

Pour finir, vous pouvez regarder ces deux screencast qui vous montrent en direct la création d’un DSDT, le premier avec DSDT ACPI Patcher, le second avec DSDT Editor:

1ère méthode

2ème méthode

 

  • teteuf
    #1 écrit par teteuf Il y a 2 ans

    merci pour tes videos ( surtout la 2eme )
    j ai reussis a reinstaler lion sur mon ssd grace a mon DSDT personel (avec celuis de tonymac ça ne fonctionnez pas) bizard !!!!!
    car j ai fais fonctionner lion sur la meme carte mere avec pendent un ans????

  • amir6160
    #2 écrit par amir6160 Il y a 1 an

    Salut ,
    Es qu il est possible Mr itOtO que vous fassiez un tuto bien détailler sur l’édition du DSDT puisque les 2 méthodes cité sont basique,
    et le sens et effets des différents patch appliqué puisque sur le site OLARILA.com on ne sait vraiment pas quel type de patch utiliser il y a un nombre impressionnant de patch: HDEF Gigabyte,Misc,

    Desktop: DTGP ;EHCI; HID para;;CIDICH9 ;USB sleep IRQs LPC ICH10L PC ICH7
    LPC ICH8; LPC ICH9, LPC NEHALEM,LPC SANDYBRIDGE, MUTE PATCH REMOVE
    ,RTC, SMBUS ,Shutdown _T_x rename alias fix

    Et autre chose comment savoir ou être sur que le DSDT a été bien chargé
    puisque avec la méthode » easybeast  » le système démarre sans DSDT

    • itOtO
      #3 écrit par itOtO Il y a 1 an

      J’ai uniquement fait des tutos sur les modifications basiques d’un DSDT pour la simple raison que aborder tous les patch demanderait trop de temps, serait beucoup trop compliqué et accessible a très peu de personnes, et moi le premier je n’ai pas le niveau pour ce genre de manip.
      Ce n’est pas pour rien qu’il est difficile d’avoir un DSDT sur mesure, c’est quelques choses de très compliqué a faire, et toutes les methodes automatiques ont de nombreuses limites qui obligent a mettre les mains dans le camboui… Donc ce n’est vraiment pas quelque chose de très abordable en tuto.
      En plus, la compayibilité de l’UEFI des cartes gigabyte rend le DSDT quasi obsolète… :-)

      Le DSDT est chargé par le bootloader a partir du moment ou un fichier DSDT.aml se situe dans le dossier extra.

  • Patoche
    #4 écrit par Patoche Il y a 1 an

    Bonjour et merci pour tous ces tutos ça fait toujours plaisir.

    Malheureusement pour moi impossible d’avoir le son sous Mountain Lion.
    J’ai eu mon DSDT original avec l’aide de DSDT Editor , je suis donc retourné sur osx pour patcher avec un générique ALC889 mais en vain , d’ailleurs lequel dois-je prendre de AppleHDA celui avec ou sans dsdt ?.
    La méthode avec le bios et ACPI Pätcher ne fonctionne pas il me dit manque un fichier dsdt.dsl
    ************* Texte de l’exception **************
    System.IO.FileNotFoundException: Impossible de trouver le fichier ‘C:\Users\patoche\Desktop\dsdt.dsl’.
    Nom du fichier : ‘C:\Users\patoche\Desktop\dsdt.dsl’

    j’ai une evga classified 3 bios award x58 tout ce qui faut pour la compatibilité , mais j’y arrive pas :)

    • itOtO
      #5 écrit par itOtO Il y a 1 an

      Tu utilises quoi comme carte mère? Il n’existe pas de DSDD tout fait?
      Sinon l’audio dépend avant tout de kext, le DSDT permet uniquement de se passer d’un kext enabler pour l’audio, mais on peut très bien faire sans! Tu as installé quoi comme kexts pour l’audio?

  • patoche
    #6 écrit par patoche Il y a 1 an

    J’ai une EVGA X58 Classified 3 , apparemment les autres carte mère de la même famille ne font pas le DSDT , ils utilisent le ALC889 sans dsdt mais chez moi ne marche pas

    En gros je fais ça:
    Easybeast
    PCI Root ID Fix
    Lnx2Mac’s Realtek
    Trim enabler
    GraphicsEnabler=No
    Realtek ALC8xx-without DSDT ALC889

    voici la carte mère:

    http://www.materiel.net/carte-mere-socket-1366/evga-x58-classified-3-141-gt-e770-a1-61969.html

    résultat Audio

    Audio haute définition Intel :

    Identifiant audio: 889

    Sortie numérique optique audio S/PDIF :

    Connexion: RCA

    Sortie de ligne :

    Connexion: Prise Jack 1/8 pouce

    Microphone externe / Casque d’écoute iPhone :

    Connexion: Prise Jack 1/8 pouce

    Microphone externe / Casque d’écoute iPhone :

    Connexion: Prise Jack 1/8 pouce

    Sortie de ligne :

    Connexion: Prise Jack 1/8 pouce

    Entrée numérique optique audio S/PDIF :

    Connexion: RCA

    Mais le Haut parleur reste gris

  • TomTomGo
    #7 écrit par TomTomGo Il y a 3 mois

    Bonjour,

    Bien que le sujet date un peu je souhaiterais remercier l’auteur pour cette explication simple et détaillée qui m’a permis d’apprendre un truck !

    Merci =)
    (on le dit jamais assez souvent)

  • Snake-Fight
    #8 écrit par Snake-Fight Il y a 1 mois

    Salut je viens de découvrir ce site et je suis très enthousiaste a l’idée de commencer a toucher « vraiment » au DSDT.aml, bien que personnellement j’aimerai trouver un patch pour mon laptop lenovo ideapad U410 (il avait win8 je l’ai rapidement viré mais mon HDD était incompatible « ST1000 de 1T0″ que j’ai remplacer par un « WD scorpio » de 150GO) je suis assez fier d’avoir déja réussi (sans DSDT) a avoir ma carte graphique HD4000 et je suis tomber sur ça => http://www.tonymacx86.com/mountain-lion-laptop-support/77392-lenovo-ideapad-u410-mountain-lion-90-working.html bien que c’est en anglais j’ai compris que la seule façon d’avoir l’audio et le wifi (seule chause qui me manque mais le bluetooth fonctionne dès le début sur cette carte combo) j’ai essayer de me connecter aussi autrement dans le terminal en entrant des commande d’activation de ma carte et quand je vais sur rapport système j’ai les info relative de ma carte wifi pour le kext donc utiliser se qui veut dire que cette anglophone a raison pas le choix je dois toucher au DSDT qui me semble au première abord complexe bien qu’avec ta video « ça a l’ai presque banal on dirait ^^ »

  • Snake-Fight
    #9 écrit par Snake-Fight Il y a 4 semaines

    re salut j’ai resolu le probleme de carte son avec multibeast avant j’utilisait voodooet j’avais le son déformé meme si j’utilisait la clé aureon dual usb compatible mac, par hazard un soir j’ai lancer l’installation de legacy usb sur la version 5.2.0 je redemare et la ma web cam fonctionne mieux en reel hd avant c’etait avec des point plutot moche et la calité audio est nettement plus agréable me reste plus que le probleme wifi et je crois que pour ce qui la concerne est endomagee parce que cette carte ne fonctionnais deja pasd sur le w8 et quand j’essayait de me conncter le pc buggait et rebootait la carte est combo atheros compatible natvement avec mac mais ne fontionne pas et mon port pci aussi aparemment bref la route est encore longue sur le chemain du hackintosh ;-)

  • Vous pouvez utiliser ces mots-clés HTML : <a> <abbr> <acronym> <b> <blockquote> <cite> <code> <del> <em> <i> <q> <strike> <strong>
    Powered by sweetCaptcha


  • Flux de commentaires pour cet article
Haut de page