[WIP] Lenovo T530 ohne DSDT unter OpenCore

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

    Einmal editiert, zuletzt von 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?

    Einmal editiert, zuletzt von 5T33Z0 ()

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

    Einmal editiert, zuletzt von 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.

    Dateien

    • EFI.zip

      (6,24 MB, 127 Mal heruntergeladen, zuletzt: )
    • clover config.zip

      (2,99 kB, 104 Mal heruntergeladen, zuletzt: )
  • 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-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)

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

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

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

  • So, ich habe mich der Herausforderung jetzt gestellt und alle EInträge in der DSDT wo "_DSM" drin steht mit If (_OSI ("Darwin")) umklammert. Windows startet jetzt. yay! (mit DSDT_halb_gefixt.aml)


    Aber: Catalina startet nicht mehr. Nur Logo, kein Ladebalken. Habe ein Foto vom Kernel Panic gemacht.


    Könnte sich das jemand ansehen? Ich komme nicht weiter. Vielleicht eine Klammer zuviel oder an der Falschen Stelle gesetzt irgendwo? grt veilleicht?


    Bootlog im Anhang. Danke


  • 5T33Z0

    Hat den Titel des Themas von „Lenovo T530 ohne DSDT in OpenCore, aber wie?“ zu „Benötige Hilfe: Laptop DSDT für Dualboot mit WIndows anpassen (OSI-Methode)“ geändert.
  • 5T33Z0

    Hat das Label In Arbeit hinzugefügt
  • Habe mich jetzt dazu entschlossen, ganz auf die DSDT zu verzichten. Und da seitdem auch irgendwie immer dran rumgebastelt.


    Grafik: läuft samt External Monitor Support

    Battery Status: läuft.

    Fn Keys funktionieren


    Was ich bisher immer noch nicht hinbekommen habe, ist Audio aus der Kiste zu bekommen. Es braucht anscheinend mehr, als ein DeviceProperty mit passender Layout ID anzulegen.


    Also habe ich mit die gepatchte DSDT angesehen und darin ist ein HDEF Audio Device definiert:

    Die Frage ist jetzt: kann ich daraus eine "SSDT-HDEF" oder so basteln, damit es dann funktioniert oder was muss ich tun? Oder muss ich noch woander gucken?

  • 5T33Z0

    Hat den Titel des Themas von „Benötige Hilfe: Laptop DSDT für Dualboot mit WIndows anpassen (OSI-Methode)“ zu „[WIP] Lenovo T530 ohne DSTD unter OpenCore“ geändert.
  • Vllt. kann al6042 was zu dem HDEF Thema sagen. Die DSDT fürs T530 die hier im Forum rumschwirrt stammt ursprünglich von ihm. Hätte schon was wenn man auf VoodooHDA verzichten könnte.

  • al6042

    Hat den Titel des Themas von „[WIP] Lenovo T530 ohne DSTD unter OpenCore“ zu „[WIP] Lenovo T530 ohne DSDT unter OpenCore“ geändert.
  • Ja, wäre nice. Bei HDEF und bei dem Lid Sleep/Wake Problem bin ich bisher nicht weiter gekommen. Dieses ACPI Gefrickel ist auch echt Neuland für mich.


    Was ist eigentlich diese TGT Bridge? Habe gesehen, dass in der Clover Config, die ich habe mehrere Patches drin sind, die das verwenden, die man aber nicht ohne weiteres in OpenCore übertragen kann, da es dieses Feature nicht hat.

  • Mit den Angaben oben sollte sich auch eine SSDT bauen lassen.

    Hier mal ein erster Versuch dafür... ;)

    Dateien

    • SSDT-HDEF.aml

      (366 Byte, 73 Mal heruntergeladen, zuletzt: )

    Gruß
    Al6042

    Keine Unterstützung per PN oder Pinnwand... Eure Anfragen gehören ins Forum, nicht in mein Postfach!

  • Super, danke dir, al6042. Probiere ich gleich mal aus.


    Hab hier noch was zum Thema Sleep und Lid gefunden: https://ooh3dpsdytm34sfhws63yj…6%AD%A3%E6%96%B9%E6%B3%95


    Dieser Github ist echt ne Goldrube!


    Lieber al6042, vielen Danke für HDEF.aml. Leider funktioniert sie noch nicht. Ist aber nicht so wichtig, da VoodooHDA ja funzt.


    Hier ist die aktuellste Version der EFI Lenovo T530 OC 0.6.5 DSDT-los (v3).zip


    Es funktioneren bislang:

    • Alles, was auf Kexts basiert
    • Audio (via VoodooHDA)
    • Batterieanzeige
    • Sleep Key (Fn+F4)
    • Brightness Keys (Fn+F8 u. Fn+F9)
    • Backlight Controller (PNLF)
    • Speicherung des Helligkeitswerts nach Sleep/Wake/Boot (ALS0)
    • Fix der LED des Powerbuttons nach Sleep/Wake (ohne pulsiert sie weiter nach dem Wake)
    • Externer Monitor

    Wo ich nicht weiterkomme:

    • Audio via AppleALC. Device Property für Soundkarte ist vorhanden, aber deaktiviert (#PciRoot(0x0)/Pci(0x1B,0x0))
    • Umschalten auf externen Monitor bzw. Sleep, wenn Display zugeklappt wird

    3 Mal editiert, zuletzt von 5T33Z0 ()

  • 5T33Z0

    Hat das Label von In Arbeit auf Umsetzung prüfen geändert
  • Geil, nachdem ich noch "Change OSIF to XSIF" rename hinzugefügt habe, bootet er jetzt auch Windows von derselben Disk direkt aus OpenCore.


    Bleibt jetzt nur noch Sleep/Clamshell Modus, wenn die Kiste zugeklappt wird zu lösen al6042