(Diese Methode ist nur bei gepatchten Kernels notwendig, bei OpenCore-Patches ist es viel einfacher ;))
Noch immer bin ich begeistert, wie problemlos macOS High Sierra auf einem Ryzen-System läuft, ganz im Gegenteil zu Windows, das ich nach dem 2018-01er Patch gerade aufgrund von Bluescreens neu installieren durfte. Da ich schon öfters gelesen habe, dass ein Update, z.B. von 10.13.2 auf 10.13.3 nicht möglich sei auf einem Ryzen, ich das aber seit 10.13 mit jedem Update erfolgreich durchgeführt habe, möchte ich hier mal meine Methodik schildern.
Kommt ein Update über den App Store, läuft der Prozess seit High Sierra so ab, dass in der ersten Phase noch vor dem Neustart ein Boot-Eintrag "Boot macOS from macOS Installer" angelegt wird. Beim ersten Reboot wird dieser Eintrag gebootet und das eigentliche Update installiert, beim zweiten Reboot wird dann wieder in das normale System gebootet. Auf einem Ryzen bleibt man beim Versuch, den Installer zu booten, stecken. Der Grund dafür ist ganz einfach, der Installer bringt seinen eigenen Kernel mit, welcher natürlich nicht Ryzen-Tauglich ist.
Anstatt in den Installer zu booten, bootet man jetzt den Stick, mit dem man macOS ursprünglich installiert hat (kann natürlich auch ein neuer Stick sein, generell sollte man immer einen solchen Stick da haben, für den Fall der Fälle). Wichtig ist, dass man an ein macOS-Terminal kommt, und dass auf dem Stick der Kernel (nicht der PrelinkedKernel, sondern der normale Kernel) für den Ryzen drauf ist. Dies findet sich im Installer unter 'Dienstprogramme'. Im Terminal muss man nun seinen schon vorhandenen PrelinkedKernel in den vom Update erzeugten Installer-Ordner kopieren. Dazu führt man folgenden Befehl aus:
Daraufhin sollte man sich den PrelinkedKernel auch auf dem Stick sichern, ebenso für den Fall der Fälle.
Das "Image Volume" ist im Installer der Stick.
Nun muss man noch die Signaturprüfung für das Update abschalten, damit es mit dem fremden Kernel läuft:
Jetzt ist ein Neustart fällig, diesmal wird "Boot macOS from macOS Installer" gebootet.
Die Installation sollte nun erfolgreich durchgelaufen sein, der Boot-Eintrag ist dann verschwunden. Jetzt muss erneut vom Stick gebootet und ein Terminal geöffnet werden. Wir tauschen im frisch aktualisierten System nun den Kernel aus:
Hinweis: Der Befehl geht davon aus, dass der Kernel direkt auf dem Stick, also nicht in einem Unterordner liegt, bei Bedarf muss der Befehl also angepasst werden.
Hinweis 2: Ich lade den System.kext durch Clover. Liegt der bei dir in /System/Library/Extensions wurde er durch das Update ersetzt und du musst ihn wieder dort hin kopieren, und die Rechte mit folgendem Befehl beheben:
Nun wird noch der Cache geleert und ein neuer PrelinkedKernel erzeugt:
Es ist normal, dass beim Erzeugen des PrelinkedKernels im letzten Befehl ein paar Warnmeldungen auftauchen - das liegt daran, dass die Signatur des Kernels durch die Ryzen-Anpassungen nicht mehr stimmt. Der PrelinkedKernel wurde dennoch erfolgreich erzeugt, wenn in einer der letzten Zeilen eine ID erscheint (beim nächsten Update liefere ich ein Bild nach).
Hat alles funktioniert begrüßt einen jetzt nach einem Reboot das frisch aktualisierte System.
Ich hoffe, dass einer der Ryzen-User hier mit meinem Vorgehen etwas anfangen kann. Natürlich ist die Prozedur etwas umständlicher als auf einem Intel, aber immer noch einfacher, als für jedes Update das System neu aufzusetzen. Einige der Befehle stammen aus einem Thread bei Insanelymac, den ich leider nicht mehr finde (liegt seitdem ich den Ryzen habe schon im Downloads-Ordner). Dort gibt es auch zwei Skripte, die mir aber aus verschiedenen Gründen nicht gefallen, u.a. wird dort der System.kext nach SLE installiert.