OEM _DSM-Methoden

  • Ich habe mich schon häufiger gefragt, wie wichtig die _DSM-Methoden in den ACPI-Tables unserer Hackintoshs sind. Wenn ein Device direkt in der DSDT gepatcht wird, wird ja häufig die _DSM-Methode mit einer passenden überschrieben und das Original dementsprechend verworfen. Rehabman empfiehlt einen Clover-Patch, der alle _DSM-Methoden in XDSM umbenennt, damit man ggfs. Patches in eine SSDT auslagern kann, ohne dass eine Methode mehr als einmal vorkommt. Das klingt nun für mich so, als ob die OEM-_DSM-Methoden grundsätzlich für macOS unwichtig wären, aber ist das wirklich so, gibt es Ausnahmen? Mir ist bekannt, dass man auch _DSM-Methoden einzelner Devices z.B. mit einem Clover-Patch (s. TgtBridge) umbennen kann und das ist momentan auch mein bevorzugtes Vorgehen. Nachtrag: Ich sollte mich mal etwas intensiver mit den ACPI-Spezifikationen auseinandersetzen, aber bis dahin... :whistling:

    Einmal editiert, zuletzt von Harper Lewis ()

  • Sämtliche original _DSM-Methoden interessieren macOS nicht, liegen in unverständlicher Form vor.


    Ich fummle nicht an der DSDT rum, sondern lasse diese von Clover patchen. Allerdings nutze ich nicht Clovers vorbereiteten Device-Injects/Fixes, sondern lediglich Clovers sehr mächtige DSDT-Patches. Warum diese in der Sektion ACPI "DSDT-Patches" heißen, ist mir ein Rätsel, da nicht nur die DSDT, sondern die komplette ACPI inkl. der internen SSDTs durchgegangen wird.
    Hier nehme ich nun folgende Umbenennungen vor.
    _DSM zu XDSM
    _HECI zu IMEI
    und so weiter und so fort, die Apple-Bezeichnungen halt für die ansonsten gleichen Devices.


    Eine recht neue und ebenfalls sehr mächtige Funktion ist "RenameDevices". Hiermit ist es möglich, gleich lautende Devices an unterschiedlichen Bridges einzeln und direkt anzusprechen und erfolgreich umzubenennen.


    Für die spätere Deklaration per _DSM und weiteres, also zusätzliche Einträge, nehme ich ausschliesslich SSDTs. Gern auch auf verschiedene aufgedröselt, so behält man besser den Überblick (ich mag einfach nicht in der riesigen DSDT rumwurschteln, auch keine einzelne riesige SSDT anlegen).
    Interessant dabei ist, dass man Clover auch mitteilen kann, in welcher Reihenfolge einzelne SSDTs geladen werden sollen. Nicht uninteressant ist es weiterhin, bestimmte Tables der ACPI von Clover ausgrenzen zulassen. Bei SSDTs ist das über den internen Namen möglich, oder besser, über die "length".

    ASUS PRIME X299-DELUXE i9-9940X • DDR4 64GB • SSD 960 PRO 1TB • Thunderbolt3 Titan Ridge • 2x AMD Radeon RX Vega 64 • BMD Intensity Pro 4K

    ASUS WS X299 SAGE/10G i9-10980XE • DDR4 64GB • SSD 970 PRO 1TB • Thunderbolt3 Titan Ridge • 2x AMD Radeon VII • BMD DeckLink 4K Extreme 12G


    Ordnung ist die primitivste Form von Chaos. (Hans-Jürgen Quadbeck-Seeger)

  • Moin @apfelnico,


    besten Dank für die Bestätigung. Das hatte ich mir so auch schon gedacht. Da ich mir aber nicht ganz sicher war...


    Mein Skylake-Desktop kommt ebenfalls mit einer Kombination aus Clover-Patches (Renames )und SSDTs aus, das funktioniert richtig gut und hat mir beim letzten Update für mein Mainboard auch schon Ärger erspart. RenameDevices habe ich mir auch schon angesehen und werde diese Funktion sicherlich auch noch gebrauchen können.


    Einzig bei meinem Laptop tue ich mich noch schwer, was erstmal nur am Battery-Patch liegt. Da muss ich mir nochmal genauer anschauen, wie man diesen am Besten auslagert.

  • Auch Clover pfuscht in der DSDT rum. Warum dann nicht gleich diese selber ändern und man weiß was dort geändert wurde. Mit meinen Hackis fahre ich jedenfalls sehr gut damit.

  • Hm... Wenn man die vorgegebenen Fixes anwendet, dann sicherlich. Ansonsten sehe ich den großen Vorteil darin, dass ich nach einem Update oder geänderten UEFI-Einstellungen für das Mainboard die DSDT nicht erneut zu patchen brauche. Da scheint aber eh jeder seine bevorzugte Vorgehensweise zu haben.

  • Habe mir angewöhnt alle Patches in eine Datei zu speichern. Ist auch nicht schwer wenn man mal die Struktur kapiert hat. Somit kann ich problemlos nach einem BIOS Update die DSDT neu patchen. Funktioniert super. :)


    https://github.com/anonymous-writer/ASUS-Zenbook-UX330UAK-High-Sierra-EFI/blob/master/Additional things/Asus_Zenbook_UX330UA_DSDT_Patches.txt

  • Vollkommen richtig Harper. Ich nutze es auch nur für die Renames. Und die greifen komplett in der ACPI durch. Dass wäre nur über DSDT Editing teilweise schwer umzusetzen. Zum Beispiel, wenn XHCI nicht nur in der DSDT liegt, sondern weiter näher in einer internen SSDT beschrieben wird und ich XHCI in meinetwegen XHC umbenennen will. Es geht mit hier nicht um ein "sinnvolles" Beispiel, sondern um die technische Machbarkeit. Hier muss ich also die DSDT und die entsprechende SSDT anfassen, diese SSDT zusätzlich in Patched packen und per Clover die originale interne SSDT ausklamüsern.


    Ich kann aber auch in Clover einfach einen ACPI-Patch "XHCI zu XHC" setzen (ein Hex-Converter befindet sich erfreulicherweise gleich in Clover Configurator). Das ist alles. Clover wird in Zukunft "on the fly" beim booten nicht nur die DSDT, sondern auch alle weiteren internen SSDTs durchsuchen und an jeder Stelle(!) – eben auch an weiteren Verknüpfungen – XHCI durch XHC ersetzen. Das finde ich genial, da wird viel Arbeit abgenommen, das übersteht auch BIOS-Updates.


    Und die kleinen zusätzlichen Dinge schreibe ich in eine oder mehrere SSDTs.


    Wobei es unbenommen bleibt, zum Beispiel fürs Entfernen von bestimmten Einträgen, auch die DSDT direkt zu bearbeiten.


    Aber, viele Wege führen nach Rom … :)

    ASUS PRIME X299-DELUXE i9-9940X • DDR4 64GB • SSD 960 PRO 1TB • Thunderbolt3 Titan Ridge • 2x AMD Radeon RX Vega 64 • BMD Intensity Pro 4K

    ASUS WS X299 SAGE/10G i9-10980XE • DDR4 64GB • SSD 970 PRO 1TB • Thunderbolt3 Titan Ridge • 2x AMD Radeon VII • BMD DeckLink 4K Extreme 12G


    Ordnung ist die primitivste Form von Chaos. (Hans-Jürgen Quadbeck-Seeger)

  • Jau, bei meinem Laptop hat das SATA-Device den Namen "SAT1", taucht so in der DSDT auf und wird in einer SSDT konkreter beschrieben. Ein Umbennen in der DSDT zu "SATA" führt dann zu ACPI-Fehlern beim Booten, wenn man den Gerätenamen nicht auch in der SSDT ändert. Da war mir der Clover-Rename-Patch direkt viel sympathischer.



    Aber, viele Wege führen nach Rom … :)


    In der Tat!

  • Der Clover Rename-Patch patcht alles was er da so zu findet ist in der DSDT oder SSDT mit diesem Code. Habt ihr das schon mal direkt in der DSDT probiert. Kann ungewünschte Effekte 8o erzielen wen man die DSDT so anpasst wie es Clover macht. :)


    Für mich war das immer nur eine Lösung um das System kurzfristig zum Laufen zu bringen, aber keine saubere Dauerlösung.


    Aber, viele Wege führen nach Rom :)

  • Kann ungewünschte Effekte erzielen wen man die DSDT so anpasst wie es Clover macht.


    Kann ich bestätigen, in einem Chat mit @al6042 und mehreren Versuchen ist uns genau das passiert, also kein Rename in der DSDT sondern über Clover und die Probleme waren gelöst.

  • Man muss schon wissen, was man tut und/oder sollte das Ergebnis nach dem Booten in z.B. MaciASL kontrollieren (das geht ja fix). Ich hatte mit Renames bisher noch nie Probleme und Clover bietet ja mit TgtBride bei den "normalen" Renames und unter RenameDevices weitere Möglichkeiten an, um das Ergebnis zu verfeinern zu können.


    Hier mal die Patches, die ich (zum Teil in Kombination mit einer SSDT) auf meinem Skylake-Desktop im Einsatz habe:


    Einmal editiert, zuletzt von Harper Lewis ()


  • Kann ich bestätigen, in einem Chat mit @al6042 und mehreren Versuchen ist uns genau das passiert, also kein Rename in der DSDT sondern über Clover und die Probleme waren gelöst.


    Verstehe ich nicht. Das bestätigt doch mein Vorgehen?

    ASUS PRIME X299-DELUXE i9-9940X • DDR4 64GB • SSD 960 PRO 1TB • Thunderbolt3 Titan Ridge • 2x AMD Radeon RX Vega 64 • BMD Intensity Pro 4K

    ASUS WS X299 SAGE/10G i9-10980XE • DDR4 64GB • SSD 970 PRO 1TB • Thunderbolt3 Titan Ridge • 2x AMD Radeon VII • BMD DeckLink 4K Extreme 12G


    Ordnung ist die primitivste Form von Chaos. (Hans-Jürgen Quadbeck-Seeger)

  • Aber du hast es geliked?

    ASUS PRIME X299-DELUXE i9-9940X • DDR4 64GB • SSD 960 PRO 1TB • Thunderbolt3 Titan Ridge • 2x AMD Radeon RX Vega 64 • BMD Intensity Pro 4K

    ASUS WS X299 SAGE/10G i9-10980XE • DDR4 64GB • SSD 970 PRO 1TB • Thunderbolt3 Titan Ridge • 2x AMD Radeon VII • BMD DeckLink 4K Extreme 12G


    Ordnung ist die primitivste Form von Chaos. (Hans-Jürgen Quadbeck-Seeger)

  • Wenn du alles in der DSDT stur mit clover umbenennst kann es sein das auch Bereiche umbenannt werden die du gar nicht ändern möchtest. Clover mach nichts anders als alle HEX XXXXXX in HEX YYYYYY umzubenennen. Es kann nicht erkennen is das auch wirklich das XXXXXX was ich umbenennen möchte. Mehr wollte ich nicht schreiben.

  • Völlig klar, finde ich auch gut. Ich weiß ja worum es geht. Es ist simpel und effektiv.

    ASUS PRIME X299-DELUXE i9-9940X • DDR4 64GB • SSD 960 PRO 1TB • Thunderbolt3 Titan Ridge • 2x AMD Radeon RX Vega 64 • BMD Intensity Pro 4K

    ASUS WS X299 SAGE/10G i9-10980XE • DDR4 64GB • SSD 970 PRO 1TB • Thunderbolt3 Titan Ridge • 2x AMD Radeon VII • BMD DeckLink 4K Extreme 12G


    Ordnung ist die primitivste Form von Chaos. (Hans-Jürgen Quadbeck-Seeger)

  • Wenn man nicht weiß worum es geht kann man sich ja jemand dazu holen, ob nun Experte oder Mod oder Community, einfach alles umbenennen ist vielleicht ein wenig zu viel und wenig Ziel führend.