Lenovo T530 ohne DSDT in OpenCore, aber wie?

  • Hallo,


    ich habe seit einen Paar Monaten ein Lenovo T530 und von jemandem hier aus dem Forum einen EFI Ordner für OpenCore bekommen, der auch echt super funktioniert für MacOS.


    Sobald ich aber Windows damit starten möchte (2. Partition), dann bekomme ich einen ACPI BIOS Error.


    Zum Spaß habe ich dann die DSDT mal deaktiviert, die restliche notwendigen .aml für IvyBridge Notebooks dazu gepackt und neugestartet, mit dem Ergebnis:


    – Windows 10 Boot funktioniert einwandfrei

    – macOS bootet auch, aber ist langsam, die Batterie-Anzeige, Helligkeitskontrolle und Audio funktionieren dann nicht mehr


    Ich nehme an, die ganzen Patches dafür befinden sich in der DSDT.


    Die frage ist, kann man irgendwas in die DSDT eintragen, damit windows sich Windows beim Booten nicht mehr aufhängt?


    Oder soll ich die DSDT rauswerfen und die anderen sachen fixen? Aber wie macht man das - über deviceproperties? Mit IORegistry Explorer und Hackintool?

  • 5T33Z0

    Wenn du die Patches in der DSDT findest, so können diese in eine if/else-Schleife gepackt werden mit Abfrage auf macOS bzw korrekt "Darwin".


    Könnte dann so aussehen:




    Edit:

    "SSDT-IMEI.aml" benötigst du nicht, darin wird abgefragt, ob du ein Device "IMEI" hast und wenn nicht, dann wird eines eingetragen. Exakt den Eintrag hast du natürlich schon in der DSDT. Also weg mit dieser SSDT.

    "SSDT-EC.aml" ebenfalls. Es gibt kein "EC0" in der DSDT, ein "EC" ist vorhanden und sollte hier bei einem Laptop auch genutzt werden, die SSDT ist also ebenfalls zu entfernen.

    "SSDT-XOSI.aml" – ich denke die kann auch raus, ebenso die beiden ACPI-Patches in der config.plist. Der erste Patch bezieht sich auf die "SSDT-XOSI.aml", der zweite Patch ist sehr unsinnig: hiermit wird versucht, das vorhandene Device "EC" in "EC0" umzubenennen. Weg damit …


    Probiere das mal. Dann die zusätzlichen _DSM-Methoden in der SSDT klammern.

    ASUS PRIME X299-DELUXE i9-7900X • DDR4 64GB • SSD 960 PRO 1TB • Thunderbolt3 Titan Ridge • 2x AMD Radeon RX Vega 64

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

    Edited once, last by apfelnico ().

  • Okay, cool. Danke. Ich probier mal, ob ich das hin bekomme.


    apfelnico So, SSDT-IMEI, -EC, -XOSI und patches habe ich rausgeworfen. Aber das mit dem Ausklammern habe ich noch nicht verstanden. Ich sehe zwar Einträge in der DSDT in denen "_DSM" steht, aber ich verstehe ich nicht, wo die Einträge dann jeweils enden. Ist wie 瑟哈伊艾娜耶艾丝伊艾丝瑟哈 für mich.


    Gibt's irgendwo n Guide dafür?

  • 5T33Z0

    Die "_DSM-Methoden" nur für macOS zu beschreiben, ist recht einfach. Achte darauf, das nicht jede dieser Methoden macOS betreffen. Doch, alle sind "zusätzlich". Die original in der DSDT vorhandenen sind wohl gelöscht worden.


    OK, verfahre nach diesem Beispiel:


    Wie du siehst, habe ich nach "_DSM" gesucht (Cmd-F). Am Beispiel der "IGPU" mal geschaut, hier siehst du zwei _DSM-Methoden. Die untere ist für das Device "IGPU", die darüber ist für das eingeschobene Device "HDAU" (High Definition Audio, also die Audioeinheit der internen Grafikkarte). Wo die Methoden jeweils enden, siehst du sehr genau durch die wunderbar gestaltete Einrückung des QuellCodes.


    Schau dir jetzt an, was ich verändert habe:


    Die Einrückung musst du nicht machen, beim sichern, schließen und erneutem öffnen ist der Quellcode perfekt angepasst. Du siehst, dass ich vor der eigentlichen Methode


    Code
    1. If (_OSI ("Darwin"))
    2. {

    eigefügt habe, die Klammer ist geöffnet. Entsprechend der Syntax muss ich nach der Methode noch eine geschlossene Klammer hinzufügen. Somit wird der Inhalt, in diesem Fall die Methode "_DSM" nur ausgeführt, wenn die Systemabfrage positiv hinsichtlich "Darwin" erfolgt. Windows wird das nun ab sofort ignorieren.


    Das ist eine einfache Übung. Da ich aber nicht die originale DSDT kenne, denke ich, es wird nicht nur bei diesen beschreibenden Methoden geblieben sein, die Windows auch sicher nicht unbedingt stören. Es sind etliche Devices umbenannt worden, und es fehlen die originalen _DSM-Methoden (die macOS wiederum nicht auswertet, die aber ihren Grund haben). Idealerweise wäre es also, wenn man mit den originalen _DSM-Methoden arbeitet (die macOS gar nicht stören) und zusätzlich die neuen Inhalte für macOS mit einer If-Schleife integriert.


    Dann werden da noch weitere "Patches" enthalten sein etc pp.

    Dennoch ist eine solche Übung nicht "für die Katz". Ich hoffe, ich konnte dir helfen, viel Spaß.



    Edit:

    Mal abgesehen von der Übung wäre es in der Tat hilfreich, zu klären, welche Patches denn tatsächlich überhaupt gebraucht werden. Aus verschiedenen Gründen rate ich von einer Bearbeitung der DSDT ab, man sollte schauen, was per SSDT geht und dort dann mittels Darwin-Abfrage arbeiten. ACPI-Patches in OpenCore würde ich auch nicht nutzen wenn irgend möglich, denn auch diese sind systemübergreifend dann vorhanden. Viele dieser Sachen erledigen heute schon Lilu/AppleALC/WhatEverGreen – diese benennen Devices selbstständig für macOS genehm um. Und für Windows spielen die natürlich keine Rolle. DSM-Deklarationen (wenn nicht im Original enthalten) gern per SSDT, ansonsten per DeviceProperties über den Bootloader.

    ASUS PRIME X299-DELUXE i9-7900X • DDR4 64GB • SSD 960 PRO 1TB • Thunderbolt3 Titan Ridge • 2x AMD Radeon RX Vega 64

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

    Edited once, last by apfelnico ().

  • apfelnico Danke für die ausführlichen Erläuterungen.


    Ich versuche dann glaube ich die Sachen die nicht funktionieren ohne DSDT einzubinden. Steht ja auch überall, dass man die nicht benutzen soll.


    In meinem Clover "Origin"-Ordner hätte ich ansonsten noch die originale ungepatchete DSDT.

  • Ich hab vorhin mal auf auf Github so rumgeschaut. Da habe ich eine EFI gefunden für Clover. In ACPI waren alles schön in einzelne Dateien aufgesplittet. Booten konnte ich mit OC schon aber es geht noch eine ganze Reihe nicht. Helligkeit, Audio, Batterieanzeige etc. Mit allen ACPI Patches aus Clover aktiviert kommt beim Booten ne Kernelpanic. Auch so kommen ein paar ACPI Errors während des Bootens.


    Da ist irgendwo noch der Hase im Pfeffer und bedarf noch einiges an Schliff. Aber vllt. als Ausgangsbasis ganz hilfreich. Habs mal angehangen.


    Bei der ig-platform-id musst du ggf aus der 4 ne 3 machen falls dein Display < 1600x900 ist.


    Die Cloverconfig hab ich auch mal beigelegt. Da hat derjenige ziemlich wild Haken gesetzt. Das meiste davon dürfte wohl nicht nötig sein.

    Files

    • EFI.zip

      (6.24 MB, downloaded 9 times, last: )
    • clover config.zip

      (2.99 kB, downloaded 3 times, last: )

    Airportkompatible Karte trotz BIOS Whitelist? >> Klick <<

  • Ist vielleicht nicht so hilfreich, wenn es zum einem um OpenCore geht und zum anderen die Clover-Variante eh völlig kaputt ist …

    ASUS PRIME X299-DELUXE i9-7900X • DDR4 64GB • SSD 960 PRO 1TB • Thunderbolt3 Titan Ridge • 2x AMD Radeon RX Vega 64

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

  • In der EFI.zip ist doch OpenCore drin. Von Clover ist lediglich die plist als Muster hier noch extra dran.


    Es ging sich mir in erster Linie um die .aml Dateien. So wäre man zum. schonmal die DSDT als solches los. Das war eigtl. der Hintergedanke dabei. Diese Dateien sollten unter OC doch genauso funktionieren oder? Hab hier nochmal etwas mit den ACPI Patches rumprobiert. Habe alle aktiviert die nicht mit Battery zu tun haben. Da booted er durch. Ist es zumindest schonmal etwas eingegrenzt.

    Airportkompatible Karte trotz BIOS Whitelist? >> Klick <<

  • Ich hab bei meiner Recherche eine Sammlung von Patches und Kexts für den T530 gefunden. Aber ich glaube, das sind die gleichen von Rehabman, die schon in maciASL enthalten sind, um die DSDT zu patchen, eben nur als Text. Keine Ahnung wie man da irgendwas für OpenCore draus bastelt.


    Aber es sind u.a. 2 kexts für Battery und Backlight dabei, die probiere ich gleich mal mit nem boot stick aus. mit deaktivierter DSDT.

  • In der EFI.zip ist doch OpenCore drin. Es ging sich mir in erster Linie um die .aml Dateien. So wäre man zum. schonmal die DSDT als solches los. Das war eigtl. der Hintergedanke dabei. Diese Dateien sollten unter OC doch genauso funktionieren oder?

    Hatte das dann falsch verstanden, hatte nicht reingeschaut. Nur mal grob überflogen, die ACPI-Patches sind hier notwendig, damit die SSDTs greifen. Das eine bedingt das andere. Da die Patches dann aber auch bei Windows aktiv sind, sehe ich in diesem Fall diese Nummer dennoch als die schlechtere.


    Dann lieber die vorhandene DSDT mit einer originalen DSDT vergleichen und wo es nötig ist, die gepatchte DSDT mit "OSI-Weichen" ausstatten. Dann ist alles sauber, nur eine DSDT, keine komplexen ACPI-Patches, fertig. Ich denke das ist der bessere Weg hier, die zwei DSDT zu vergleichen kann ja auch nicht so aufwendig sein.

    Im übrigen wäre da Clover schon fast ideal, weil dort ganz einfach je Windows und macOS eine eigene DSDT geladen werden kann. Aber es ist auch mit OpenCore hinzubekommen.

    ASUS PRIME X299-DELUXE i9-7900X • DDR4 64GB • SSD 960 PRO 1TB • Thunderbolt3 Titan Ridge • 2x AMD Radeon RX Vega 64

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

  • Alternativ könnte man aber auch mit F12 das Boot-Menu aufrufen und dann die Win Partition auswählen. Dann wäre es komplett an OC vorbei und es gäbe die DSDT Problematik nicht. Ginge zur Not ja auch.

    Airportkompatible Karte trotz BIOS Whitelist? >> Klick <<