SSDT für USB-Ausgänge unter OpenCore ohne Kext erstellen

  • Ich versuche Anhand dieser kurze Anleitung zu zeigen, wie ihr einfach unter OpenCore eine SSDT für die USB-Ausgänge erstellt.


    Was wir benötigen:

    • Hackintool
    • MaciASL
    • 2 USB-Stick (1x nur USB2.0 und 1x USB3.0)


    Erste Schritt:

    Zuerst wollen wir die USB-Ausgänge indentifizieren, welsche Nummer gehört zum welchen Ausgang, daher aktivieren wir den quirk "XhciPortLimit" Unter Kernel -> Quircks

    dann starten wir den PC neu.


    Hier öffnen wir Hackintool und weckseln zu USB Fenster, hier werden wir alle USB-Ausgänge ansehen, wenn nicht einfach mal mit dem Tool aktualisieren. Wer mag kann auch an diese Stelle iORegistryExplorer verwenden.


    Dann stecken wir in jeden Ausgang 1x USB2.0 und USB3.0 und notieren auf einem Zettel die Nummern.

    Hier an diesem Beispiel sehen wir HS04 mit USB2.0-Stick

    Und hier den selben USB-Ausgang mit USB3.0 Stick

      

    Das heißt diesen Ausgang hat die Nummer 4 und gleichzeitig besitzt USB2.0 & USB3.0, daher müssen wir diesen Ausgang nachher als USB3.0 deklarieren. Wenn dieser Ausgang nur USB2.0 hat dann müssen wir ihn als USB2.0 deklarieren


    USB3.0 = 0x03

    USB2.0 = 0x00

    Internal = 0xFF

    USB-C = 0x0A


    Am Ende habt ihr so einen Zettel, der so aussieht

    hier ist das hintere Panel für mein Asus ROG X299-E Gaming Mainboard


    Da in macOS System die Ausgänge auf 15 begrenzt sind, dann dürfen wir nur 15 Ausgänge auswählen.

    zum Beispiel habe ich mich für 3(2x), 4(2x), 5(2x), 6(2x), 7(2x), 8(2x), 11, 13, 14 entschieden, heißt es insgesamt 15.


    Zweite Schritt:

    Öffnen wir MaciASL und unter File -> New from ACPI sieht man alle DSDT und SSDT des Systems, hier suchen wir die SSDT für unsere USB-Ausgänge (meisten heißt es "A M I" unter X299 Mainboards und "xh_rvp" unter Zxxx Mainboards)

    So sieht für mein Asus X299 aus

    Bevor wir mit irgendwas anfangen, schreiben wir die Länge der SSDT auf, weil nachher diese SSDT in config.plist deaktivieren wollen und stattdessen unsere SSDT laden lassen.

    Am Anfang steht Methode GUPC, wo jeder Ausgang es zurück gibt, daher steht für alle Ausgänge.

    Hier wollen wir diese Methode für jeden Ausgang allein schreiben, deshalb löschen wir sie.

    danach löschen wir die Ausgänge, die wir nicht brauchen, bei mir sieht es so aus

    Unter jedem Ausgang steht die Methode "Method (_UPC, 0, NotSerialzed)", die die Methode GUPC zurück gibt, was wir vorher gesehen haben, deshalb ändern wir diese Methode zu

    Und zwar für jeden Ausgang, hier ist dabei zu beachten, an erste Stelle steht One und an der 2. Stelle die Codierung für deinen Ausgang, ob USB3.0(0x03) oder USB2.0(0x00) oder Internal (0xFF) ist

    Hier ist einer Ausschnitt aus mein SSDT

    danach speichern wir die SSDT als ACPI Machine Language Binary und wir geben sie irgendeine Name zum Beispiel SSDT-USB-X299.aml


    Dritte Schritt:

    wählen wir die EFI Ordner und öffnen die config.plist, hier tragen wir unsere SSDT unter ACPI ein und SSDT selber kommt in den ACPI Ordner

    Unter ACPI -> Delete deaktivieren wir die originale SSDT

    danach deaktivieren wir wieder den quirk "XhciPortLimit" und starten den PC neu.


    Am Ende Sieht so aus unter iOREg.

  • Der_Trottel Fein fein, prima Anleitung. Danke

    iMacPro1,1 im PowerMac G5 Wakü ● AsRock Z270 Taichi ● i7 6700k 4,7GHz 1,22V ● 32GB HyperX 3200 DDR4 ● Sapphire RX Vega 64 ● WIFI+BT Apple BCM94360CD ● 2x Samsung NVMe OpenCore Big Sur & Win10 ● Style/Umbau


    MacBookPro11,1 ● Lenovo IdeaPad Z710 ● i5-4210M ● 8 GB DDR3 ● Atheros AR9565 WLAN & BT ● Samsung SSD OpenCore Big Sur & Win10


    MacBookPro10,1 ● Lenovo G500 i5 3230m ● 8 GB DDR3 ● WIFI BCM94312MCG ● Samsung SSD Clover MacOS Mojave