Opencore Bootmanager - Booten von Windows führt zu Bluescreen

  • es gelingt mir nicht, den Opencore Bootmanager dazu zu bringen, das auf der anderen Festplatte installierte Windows zu booten, und zwar weder mit dem internen PickerMode noch mit OpenCanopy.efi.

    Hier erstmal eine Übersicht über meine Hardware:

    • AMD Ryzen 7 3700X
    • MSI B450M Mortar Max
    • Sapphire Radeon Pulse RX 5600 XT 6G
    • Samsung 860 QVO, 1 TB SSD (PciRoot(0x0)/Pci(0x1,0x3)/Pci(0x0,0x1)/Sata(0x5,0xFFFF,0x0)) - auf dieser Platte ist MacOS 10.15.7 installiert
    • Kingston A2000 SSD 1TB M.2 2280 NVMe (PciRoot(0x0)/Pci(0x1,0x1)/Pci(0x0,0x0)/NVMe(0x1,15-AD-CD-26-28-B7-26-00)) - auf dieser Festplatte ist Windows 10 installiert
    • OpenCore 0.6.1
    • beide Platten natürlich GPT
    • UEFI


    Die Opencore EFI Partition:


    EFI

    ├── EFI

    │ ├── BOOT

    │ │ └── BOOTx64.efi

    │ └── OC

    │ ├── ACPI

    │ │ ├── SSDT-EC-USBX-DESKTOP.aml

    │ │ └── SSDT-SHC0.aml

    │ ├── Bootstrap

    │ │ └── Bootstrap.efi

    │ ├── Drivers

    │ │ ├── HFSPlus.efi

    │ │ ├── OpenCanopy.efi

    │ │ └── OpenRuntime.efi

    │ ├── Kexts

    │ │ ├── AMDRyzenCPUPowerManagement.kext

    │ │ ├── AppleALC.kext

    │ │ ├── AppleMCEReporterDisabler.kext

    │ │ ├── Lilu.kext

    │ │ ├── RealtekRTL8111.kext

    │ │ ├── SMCAMDProcessor.kext

    │ │ ├── VirtualSMC.kext

    │ │ └── WhateverGreen.kext

    │ ├── OpenCore.efi

    │ ├── Resources

    │ │ ├── Audio

    │ │ ├── ...

    │ │ ├── Font

    │ │ ├── ...

    │ │ ├── Image

    │ │ ├── ...

    │ │ └── Label

    │ │ ├── ...

    │ ├── Tools

    │ │ └── OpenShell.efi

    │ └── config.plist

    └── boot


    (config.plist ist angehängt)



    Wenn ich im BIOS die A2000 als Bootmedium auswähle, bootet Windows 10 problemlos, das gleiche gilt, wenn ich die Samsung SSD auswähle für MacOS X, es läuft sehr gut, nur Grafikkarte und USB muss ich

    noch tunen. Wenn ich aber im Opencore Bootmanager 'Windows 10' zoom Booten auswähle, kommt gleich ein Windows Bluescreen (SYSTEM THREAD EXCEPTION NOT HANDLED). Im abgesicherten Modus started Windows 10 dann.


    Wenn ich im BIOS wieder die A2000 auswähle, bootet Windows einwandfrei.



    Der Eintrag für Windows 10 in Misc->Entries:


    Der sollte soweit OK sein. Was ist da los? Was führt zum Bluescreen? Sobald der Bootloader von Windows gestartet ist, sollte doch eigentlich egal sein, dass ich von Opencore komme. Verstehe ich nicht...

    Dateien

    • config.plist

      (41,81 kB, 84 Mal heruntergeladen, zuletzt: )
  • Windows Festplatte am besten übers BIOS Bootmenü (oft F12) starten, weil dann werden keine ACPI Patches von OpenCore angewandt und Window startet "clean".

  • Windows Festplatte am besten übers BIOS Bootmenü (oft F12) starten

    Kann nicht die Lösung sein, allenfalls ein Umweg, um dem Problem, das immer noch besteht, aus dem Weg zu gehen. Wäre mir persönlich auch zu umständlich, den Weg über den Manager zu gehen - dafür ist der BL aka OC da.


    Ich nutze seit ca. 3 Monaten OC, habe immer eine Windows-Installation dabei und noch nie einen BS beim Win-Booten via Picker gehabt.

    Allerdings steht in meiner config.plist in misc/entries überhaupt nichts zu Windows & Co. . Muss da zwingend was stehen? Es gibt noch weitere kleine Unterschiede.



    Ich bin nun wirklich nicht der OC-Spezialist, aber manchmal hilft vergleichen und schauen, wie es woanders funktioniert.

    Versuch macht kluch. ;)

    Einmal editiert, zuletzt von LuckyOldMan ()

    • Hilfreich

    Wenn Windows beim Start über OpenCore aussteigt gibt es dafür eigentlich nur 2 Gründe ;)

    1. Windows wurde nicht im GPT/UEFI Mode installiert.
    2. Es sind ACPI Patches/DSDT Modifikationen/zusätzliche SSDT's im Einsatz bei denen nicht darauf geachtet das sich die ggf. vorgenommenen Änderungen nur auf "Darwin" auswirken (_OSI Methode)

    Im vorliegenden Fall tippe ich wie auch schon 5T33Z0 auf ACPI Patches oder zusätzliche Tabellen die Windows aus dem Tritt bringen. Ohne zu wissen was genau in der EFI steckt ist das alles aber natürlich reiner Spekulatius (lecker aber selten zielführend *gg*)

  • Windows wurde nicht im GPT/UEFI Mode installiert.

    Dürfte es dann in der Liste überhaupt zu sehen sein? Meine Kenntnislage war bislang immer so, dass bei Legacy-Installationen im BL-Menü nichts angezeigt wird.

    Somit dürfte der Fall 1 hier nicht vorliegen.

  • Ich habe mit jetzt den Entries Eintrag nicht genau angesehen aber grundsätzlich ist es richtig das Legacy Installation von Windows nicht von allein im Picker auftauchen.

  • Was würde passieren, wenn der TE testweise den Win-Eintrag deaktiviert (Haken weg)? Schlechter kann es nicht werden, aber u. U. Eure Vermutung bestärken, wenn es läuft.

  • Da Windows auf ner NVME installiert ist, vielleicht zum Testenden nmvefix.kext und/oder den nvmexpressdxe.efi dazu packen? Vielleicht ist da ja was inkompatibel?

  • Was soll ein Kext bei Windows bewirken? :/

    NVMe.efi braucht man bei den neueren (Haswell und neuer) nicht, das ist im BIOS integriert...

  • Hi,


    läuft alles mit UEFI (kein Legacy Boot von Windows), und in der Tat war die Windows Partition auch ohne extra Eintrag schon zu sehen (es werden wohl alle bootbaren Partitionen vom Opencore Bootmanager gescannt. Ich wollte nur sicherstellen, dass es damit nichts zu tun hat, daher hab ich den Windows Booteintrag sicherheitshalber nochmal händisch hinzugefügt. Der "automatisch" angelegte Booteintrag für Windows führt zum gleichen Ergebnis).


    Ich wollte das nervige Springen ins BIOS vermeiden, um Windows zu booten, daher meine Frage.


    Aber Ihr habt ja schon ein paar interessante Hinweise gegeben (ACPI Patches). Gibts da noch genauere Infos dazu? Ich werd aber die vorgeschlagenen Sachen mal ausprobieren.

    Danke!

  • Das hängt immer ein wenig davon ab was Du an ACPI Patches oder Modifikationen verwendest hackstef. Ich hatte ja schon angedeutet das man ohne die EFI gesehen zu haben dazu wenig sagen kann. Vom Grundsätzlichen Konzept sollte es so gemacht werden das alle Modifikationen in ein IF Konstrukt eingeschlossen werden also etwa so:

    Code
    1. if(_OSI("DARWIN"))
    2. {
    3. hier der Code der für macOS zum tragen kommen soll...
    4. } else {
    5. hier kommt dann der Code der im Original vorhanden war
    6. }

    Der Effekt der hieraus entsteht ist das der macOS spezifische Code nur ausgeführt wird wenn macOS auch gestartet wird (OS ist "Darwin") und ansonsten eben das ausgeführt wird was in der else Klausel steht. Als Beispiel wie es zu machen ist kannst Du Dir die mit OpenCore mitgelieferten AcpiSamples ansehen denn hier wird das Konzept bereits konsequent umgesetzt. Windows ist für sich genommen nicht so sehr empfindlich wenn es ums ACPI geht dennoch gibt es wohl einige Dinge die es aus dem Tritt bringen. Um herauszufinden wo genau das Problem liegt kannst Du Dir die EFI ja mal klonen und auf einen Stick schmeißen und bei dieser geklonten Version dann erstmal alle ACPI Geschichten deaktivieren und dann schrittweise wieder aktivieren bis Windows wieder Probleme bekommt. Auf die Weise kann man recht gut eingrenzen wo das Problem liegt und dann gezielt daran arbeiten ohne gleich alle Änderungen am ACPI anfassen zu müssen. Auf lange Sicht und wegen der guten Sitten und Gepflogenheiten macht es aber natürlich sinn alle vorgenommenen Anpassungen entsprechend zu kapseln.

  • Also wenn ich das richtig verstehe, würde es doch reichen, einfach alle ACPI Patches auszuschliessen, wenn man Windows booten möchte, denn dann bekommt man die "Originale" vom BIOS, mit denen Windows natürlich sowieso bootet.

    Wäre also doch eigentlich cool, wenn es in der config.plist einfach einen Schalter gäbe, mit dem man für bestimmte Einträge in Misc->Entries: das Einbinden der ACPI Patches einfach deaktiviert.

    Im Grunde braucht man es doch sowieso nur, wenn man MacOS booten möchte.


    Korrigiert mich bitte, wenn ich falsch liege.


    Was die aml Dateien anbetrifft:
    https://www.hackintosh-forum.d…ent/138297-ssdt-shc0-aml/
    https://github.com/dortania/Ge…/SSDT-EC-USBX-DESKTOP.aml

  • Hallo nochmal! Irgendwelche Ideen?


    Hier sind die dekompilierten ACPI Patches (ich hab wirklich nur diese zwei in Verwendung). Soweit ich das überblicke, sind die genauso konstruiert, wenn griven das in seinem Beitrag beschrieben hat:


    Das hängt immer ein wenig davon ab was Du an ACPI Patches oder Modifikationen verwendest hackstef. Ich hatte ja schon angedeutet das man ohne die EFI gesehen zu haben dazu wenig sagen kann. Vom Grundsätzlichen Konzept sollte es so gemacht werden das alle Modifikationen in ein IF Konstrukt eingeschlossen werden also etwa so:

    Code
    1. if(_OSI("DARWIN"))
    2. {
    3. hier der Code der für macOS zum tragen kommen soll...
    4. } else {
    5. hier kommt dann der Code der im Original vorhanden war
    6. }

    Demnach müsste Windows 10 doch stinknormal booten, oder nicht? Was könnte noch relevant sein?

    ich bin für jede Hilfe dankbar!

  • hackstef bootet Windows denn normal wenn Du die beiden SSDT's mal weglässt? Hast Du das mal getestet?

  • Eventuell sind Renames in der config.plist die zu dem Bluescreen führen.


    Am beste. wäre F12 Bootmenü und dort Windows Booten.


    Opencore und Windows ist meistens ein Problem vor allem für Anfänger ( mich auch )


    Mfg

  • hackstef bootet Windows denn normal wenn Du die beiden SSDT's mal weglässt? Hast Du das mal getestet?

    hab die SSDTs (bzw. die AMLs) weggelassen, Ihre Einträge aus der config.plist geworfen -> Keine Änderung: weiterhin BlueScreen beim Windows Boot.

    Vielleicht hat KMBeatz recht, und ich lasse das erstmal - der Aufwand steht ihm keinem Verhältnis zum gewonnenen Komfort...


    Aber tausend Dank, Leute!