2.2 DSDT und SSDT

  • Die DSDT.aml ist eine Konfigurations-Datei die in jedem BIOS eines Mainboards vorhanden ist und die Geräte beschreibt, die auf dem Mainboard verbaut sind.
    Das Format .aml bezieht sich auf die tatsächliche Datei in Maschinensprache kompiliert, während die .dsl-Variante eine Text-basierende Version der gleichen Datei ist, aber nicht direkt genutzt werden kann.

    Da Windows und Linux eine eigene Hardwareerkennung mitbringen, ist die DSDT der PC-Mainboards sehr rudimentär gehalten, während in Apple-Geräten alles haarklein beschrieben wird.
    Eine fertige DSDT muss in .aml-Form genutzt werden und ist nicht mit einem Kext vergleichbar, da sie bereits vor dem Starten des Betriebssystems zum Einsatz kommt.

    Mit dem Programm Maciasl kann sowohl die .dsl- als auch die .aml-Variante bearbeitet werden. Ein kompilieren ist aber nur möglich, wenn in der DSDT keine Fehler mehr vorhanden sind.

    Die SSDT.aml ist gleich aufgebaut, hält aber meistens nur CPU-spezifische Informationen oder zusätzliche "Scope"-Einträge für bereits definierte Geräte.
    Deswegen kann man mit dem Script ssdtprgen.sh sich eine spezielle SSDT für seinen verbauten Prozessor generieren lassen, um zum Beispiel die SmartStep Takte-Schritte sauber an OSX zu übergeben. Noch dazu gibt es nicht nur eine SSDT in einem Board. Die Anzahl kann locker bis zu 10 Stück sein. Auf Laptops ist es üblich, dass in einer dieser SSDTs auch wichtige Daten zu den verbauten Grafik-Karten (sowohl IntelHDs als auch AMD/Nvidias) drinnen stehen.

    DSDT.aml, SSDT.aml und alle weiteren .aml-Dateien sind keine Treiber oder EXE-Dateien, sondern nur Beschreibungen der verbauten Hardware und deren Konfiguration in "ACPI Machine Language Binary", auf deutsch Maschinensprache...
    Die Dateien werden nicht ausgeführt, sondern aus-, bzw. eingelesen. Aber nicht von einem Programm unter WIndows, Linux oder OSX, sondern vom jeweiligen Kernel des Betriebssystems. Dieser holt sich die Daten aus dem BIOS.
    Mit einem OSX-Bootloader werden gepatchte DSDT.aml's oder SSDT.aml's in den Kernel injected und somit die Original Infos aus dem BIOS im Kernel "überschrieben".



    Unter Clover kommen manuell gepatchte .aml-Dateien immer in den Ordner /EFI/CLOVER/ACPI/patched, damit sie vom Bootloader auch eingelesen werden können.


    Unter OpenCore kommen manuell gepatchte .aml-Dateien immer in den Ordner /EFI/OC/ACPI.

    Damit sie vom Bootloader auch eingelesen werden können., müssen sie aber zusätzlich in der dortigen config.plist eingetragen sein:

Share