IPB

Bienvenue invité ( Connexion | Inscription )

> DSDT
Options
fljagd
posté 2 Feb 2016, 17:28
Message #1


Adepte de Macbidouille
*

Groupe : Membres
Messages : 124
Inscrit : 7 Mar 2015
Membre no 194 485



Salut à tous
Comme bon nombre d'entre nous , il arrive parfois que nous ayons besoins d'un DSDT pour notre Hack
Jusque là tous va bien je vais bien
Le DSDT permet de modifier les allocations afin de faire correspondre notre materiel avec l'OS
D'apres ce que j'ai pu lire sur le net, les DSDT de nos machine ne sont pas optimisés, ce qui donne lieu à des correctifs, les patchs.
Si je me trompe merci de me rectifier.

Donc voici mes questions:
Pourquoi lorsqu'on patch unDSDT sous Os X, impossible de compiler avec MacIasl, trop d'erreur?
Ensuite, comment puis-je créer mon patch, par exemple régler le problème d'adressage des usb sous El Capitan.
Quel est le language utilisé dans les DSDT?
Amicalement
Fred


--------------------
Clover - El Capitan 10.11.6 - Sierra 10.12.3

Asus X99-A -Bios 3204- i7 5820K - Ripjaws RAM DDR4 3000 16 Go - Carte graphique Sapphire AMD HD 7950

Installer X99 - M-T-H
Go to the top of the page
 
+Quote Post
 
Start new topic
Réponse(s)
polyzargone
posté 4 Feb 2016, 19:15
Message #2


Macbidouilleur d'Or !
*****

Groupe : Modérateurs
Messages : 13 775
Inscrit : 11 May 2006
Membre no 60 938



Je suis très très loin d'être un expert en la matière et je ne le serais très probablement jamais. Faut dire aussi que c'est quand même super technique et pas forcément intéressant/compréhensible sans être "du métier".

Je vais quand même essayer de te répondre et te donner quelques pistes de recherches wink.gif.

Citation (fljagd @ 2 Feb 2016, 17:28) *
Donc voici mes questions:
Pourquoi lorsqu'on patch unDSDT sous Os X, impossible de compiler avec MacIasl, trop d'erreur?


Parce que beaucoup de Bios ne sont pas conformes à la norme ACPI (même chez Apple tongue.gif). Il faut d'abord éliminer toutes les erreurs avant de pouvoir commencer à patcher. Ensuite, la plupart des patchs DSDT disponibles nécessitent d'appliquer celui-ci en premier :

Code
#Maintained by: PHPdev32 for: Sourceforge
into method label DTGP remove_entry;
into definitionblock code_regex . insert
begin
Method (DTGP, 5, NotSerialized)\n
{\n
    If (LEqual (Arg0, Buffer (0x10)\n
            {\n
                /* 0000 */    0xC6, 0xB7, 0xB5, 0xA0, 0x18, 0x13, 0x1C, 0x44, \n
                /* 0008 */    0xB0, 0xC9, 0xFE, 0x69, 0x5E, 0xAF, 0x94, 0x9B\n
            }))\n
    {\n
        If (LEqual (Arg1, One))\n
        {\n
            If (LEqual (Arg2, Zero))\n
            {\n
                Store (Buffer (One)\n
                    {\n
                        0x03\n
                    }, Arg4)\n
                Return (One)\n
            }\n
            If (LEqual (Arg2, One))\n
            {\n
                Return (One)\n
            }\n
        }\n
    }\n
    Store (Buffer (One)\n
        {\n
            0x00\n
        }, Arg4)\n
    Return (Zero)\n
}
end


Pour une raison que j'ignore, seuls les patchs de Rehabman n'en ont pas besoin.

Citation (fljagd @ 2 Feb 2016, 17:28) *
Ensuite, comment puis-je créer mon patch, par exemple régler le problème d'adressage des usb sous El Capitan.


Je dirais que pour créer un patch, il faut vraiment connaître cette norme ACPI sur le bout des doigts. Sans ça, c'est un peu comme faire de la chirurgie quand tu n'y connais rien en anatomie ohmy.gif. Sinon, pour appliquer un patch, il faut savoir où le mettre et que ce patch corresponde à un élément existant de la DSDT.

Par exemple, si tu veux appliquer un patch HDEF (pour l'audio), il faut que ta DSDT contienne un device (HDEF) sans quoi, tu pourras toujours essayer, le patch ne s'appliquera/fonctionnera pas. Et comme les bios ne respectent pas toujours parfaitement la norme ACPI, il peut être nécessaire de renommer un device pour qu'il corresponde.

C'est le cas par exemple de certaines vieilles CM dont le device (HDEF) s'appelle en fait device (AZAL). Un patch pour le renommer existe justement pour ça.

Comme c'est pas évident de savoir quel device correspond à quoi et à quoi il sert, on utilise IORegistry Explorer qui permet de visualiser le tout plus "clairement". Ainsi, en cherchant HDEF (sous condition que la DSDT soit correctement patchée si on en utilise une et que l'on ait un AppleHDA fonctionnel), on peut voir que l'AppleHDA y est rattaché :



Ce qui correspond bien au device (HDEF) de la DSDT (notez le layout-id, c'est le même) :

Code
         Device (HDEF)
         {
             Name (_ADR, 0x001B0000)  // _ADR: Address
             OperationRegion (HDAR, PCI_Config, 0x4C, 0x10)
             Field (HDAR, WordAcc, NoLock, Preserve)
             {
                 DCKA,   1,
                 Offset (0x01),
                 DCKM,   1,
                     ,   6,
                 DCKS,   1,
                 Offset (0x08),
                 Offset (0x09),
                 PMEE,   1,
                     ,   6,
                 PMES,   1
             }

             Name (_PRW, Package (0x02)  // _PRW: Power Resources for Wake
             {
                 0x0D,
                 Zero
             })
             Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
             {
                 If (LEqual (Arg2, Zero))
                 {
                     Return (Buffer (One)
                     {
                          0x03
                     })
                 }

                 Return (Package (0x06)
                 {
                     "layout-id",
                     Buffer (0x04)
                     {
                          0x1C, 0x00, 0x00, 0x00
                     },

                     "hda-gfx",
                     Buffer (0x0A)
                     {
                         "onboard-1"
                     },

                     "PinConfigurations",
                     Buffer (Zero) {}
                 })
             }
         }


Citation (fljagd @ 2 Feb 2016, 17:28) *
Quel est le language utilisé dans les DSDT?


L'ASL pour ACPI Source language d'où l'extension .asl. Sous sa forme décompilé, c'est le .dsl pour Disassembled Source Language. MaciASL (et d'autres) sont des compilateurs/décompilateurs qui utilisent iasl (développé par Intel).

Le sujet étant bien trop vaste, voici une liste de liens pour en savoir plus :

Mais avant tout, une liste de repositories de patch pour MaciASL (à copier/coller dans Preferences > Sources). Ils sont cliquables directement mais ça renverra une erreur. Il faut récupérer l'adresse du lien et copier/coller): :

• Toleda :

- pour l'audio
- pour l'audio HDMI séries 9
- pour l'audio HDMI séries 8

• PJAlm :

- Patchs génériques
- Patchs pour CM Gigabyte
- Patchs pour CM Asus
- Patchs pour CM ASRock
- Patchs pour CM MSI
- Patchs les cartes graphiques
- Patchs les CM à base de chipset Intel6 (Là, il suffit de remplacer 6 par 7/8/9 pour avoir les autres).

• Rehabman (pour les portables notamment) :

- Laptop DSDT Patch

Quelques liens :

Olarila.com - demandes de patchs et aide si tu bloques sur des erreurs de compilation ou sur d'autres trucs, les gars pourront certainement t'aider.

Et un guide très instructif également.

Et pour terminer, une explication rapide pour injecter une CG par exemple.


--------------------
Un MacmacOS 10.15.7 MacBook Air mi-2012 Core i5 1,7 GHz Intel HD 4000 SSD 64 Go
Des Hacks Asus Z170-P - Core i7 6700 3,40 GHz - XFX 6800 XT 16 Go - 32 Go DDR4 Gigabyte H110M-S2H - Core i5 6600 3,30 GHz - Zotac GTX 1060 6 Go - 32 Go DDR4 Gigabyte GA-H97-HD3 - Core i5 4570 3,20 GHz - MSI GTX 650 Ti 2 Go - 16 Go DDR3 Acer Aspire V3 772G Core i5 4210M 2,60 GHz - Intel HD 4600 + GTX 850M 2 Go (désactivée) - 16 Go DDR3 Dell Latitude e7470 Core i5 6300U 2,40 GHz - Intel HD 520 - 16 Go DDR4 Dell Latitude 7490 Core i7 8650U 1,90 GHz - Intel UHD 620 - 16 Go DDR4 Dell Latitude e7440 Core i7 4600U 2,10 GHz - Intel HD 4400 - 16 Go DDR3 HP Elite 8300 USFF - Core i7 3770S 3,90 GHz - Intel HD 4000 (+ quelques autres...)

Politique vis à vis des outils automatisés et des distributions - Guide d'installation - Tutoriels - Lexique et utilité des Kexts - FAQ Générale du Hackintosh - FAQ des Bootloaders - FAQ des Bootflags - FAQ des problèmes les plus courants - FAQ sur les Mises à jour Majeures sur Hackintosh
Go to the top of the page
 
+Quote Post

Les messages de ce sujet


Reply to this topicStart new topic
1 utilisateur(s) sur ce sujet (1 invité(s) et 0 utilisateur(s) anonyme(s))
0 membre(s) :

 



Nous sommes le : 2nd August 2025 - 11:16