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) (1 - 5)
chris27
posté 2 Feb 2016, 19:52
Message #2


Macbidouilleur d'Or !
*****

Groupe : Ancien de la team
Messages : 1 792
Inscrit : 26 Feb 2006
Membre no 56 395



MaciASL permet de sortir un DSDT écrit correctement, ce qui est rarement le cas des PC.
Il existe des patchs maciASL pour rentre la DSDT compilable : genre AMI-Clean_Compile-9series du dépôt : http://maciasl.sourceforge.net/pjalm/repos/intel9/
En général, ça fait le ménage.

Pour les USB je te conseil la méthode du dummy ou de l'injection déjà expliqué sur ce forum. (section tuto).
Pour recherche/remplacer dans maciasl (afin de renommer XHC1 etc...) il y a un patch à personnaliser, mais je ne le trouve plus ...


--------------------
Hackintosh : MSI Z97GAMING 5 + Core i7 4790k + Noctua NH U12S + 8 Go DDR3 + MSI Geforce GTX 760 + SSD CRUCIAL MX 100 (Clover) + Os X El Capitan // Imac G4 "retina" ;) basé sur un NUC6I3SYK + 8 go de ram avec écran 1680*1050
iPhone 6 + MacBook Pro Retina 13" Début 2015
FAQ Générale du Hackintosh - FAQ des Bootloaders - FAQ des Bootflags - FAQ des problèmes les plus courants - Tutoriels
Go to the top of the page
 
+Quote Post
fljagd
posté 2 Feb 2016, 20:12
Message #3


Adepte de Macbidouille
*

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



oui j ai la métope dummy d'installer et qui fonctionne il a juste fallu que je fasses sauter la limite de 15 ports
Mais surtout ce qui m'intéresse c'est de comprendre comment fonctionne un DSDT et de savoir le bidouiller si nécessaire
J ai récupérer iaslme qui nettoie correctement car j ai réussi à compiler depuis maciasl


--------------------
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
polyzargone
posté 4 Feb 2016, 19:15
Message #4


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
fljagd
posté 4 Feb 2016, 20:09
Message #5


Adepte de Macbidouille
*

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



Merci Poly


--------------------
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
polyzargone
posté 5 Feb 2016, 00:32
Message #6


Macbidouilleur d'Or !
*****

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



Un autre fil où Rehabman explique bien ce qu'est une DSDT, à quoi elle sert ou ne sert pas et pleins d'autres infos très instructives wink.gif.

Pour terminer, je vais tout de même le citer en guise de rappel :

Citation
Without any programming experience, you'll have difficulty understanding DSDT...


Donc en ce qui me concerne, c'est mort !


--------------------
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

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 : 1st August 2025 - 15:25