Vorwort:
Die Einbindung der SSD auf diesem Wege ist zwar etwas aufwändiger, dafür aber sehr erfolgreich. Die meisten Informationen hierfür habe ich von „RehabMan“, „Pike R. Alpha“ und „Mork vom Ork“.
Auf der github.com-Projektseite von RehabMan gibt es dann einen Link auf TomatenTony’s Forum, in dem RehabMan das sehr ausführlich erklärt. Allerdings alles in englisch und teilweise sehr kompliziert. Deshalb mein Versuch, dieses leichter verständlich auf deutsch zu erklären
...die Tomate ist übrigens ein Apfel…
Hier im Forum gibt es schon eine ähnliche Anleitung von lupotmac, da wird die Methode mit KextToPatch-Einträgen beschrieben bzw. eine Methode bei der man die originale IONVMeFamily.kext löschen muss.
Bei dieser Anleitung hier kann man die originale IONVMeFamily.kext unbeachtet lassen und die Patch-Einträge fallen auch weg!
macOS Version: 10.12.3
Zuletzt bearbeitet: 22.03.2017
Was wird gebraucht:
Das erkläre ich an Hand meines Systems. Es gibt viele vergleichbare Komponenten, mit denen das wahrscheinlich genauso funktioniert. Wichtig ist es, keine zu exotischen Bauteile zu verwenden. Bei der Auswahl meiner Komponenten, wie Chipsatz, CPU, SSD und Grafik habe ich mich an diverse Empfehlungen aus dem Netz gehalten.
-
Hardware:
-
Motherboard: GA-Z170X-UD5 TH
-
CPU: i7-6700K
-
RAM: 32 GB - 2666 MHz - DDR4
-
Grafik: Integrierte Grafik HD530
-
HD / SSD:
- Samsung SSD 850 Evo 256GB (Windows 10)
- Samsung SSD 850 Evo 256GB (Datenspeicher)
- NVMe Samsung SSD 950 PRO 256GB (Systemplatte)
-
USB Stick
- SanDisk 16GB USB3 *zum erstellen eines Bootstick, besser zwei: Windows / macOS
-
Software:
-
Windows 7, 8 oder 10 ,braucht man um den ACPI-Pfad seiner NVMe SSD herauszufinden. Diesen Pfad benötige ich dann für die SSDT.
-
macOS Sierra
- als Betriebssystem
- zum Erstellen des Bootstick
- zum Generieren der SSDT-NVMe-Pcc.aml
- zum Generieren der HackrNVMeFamily-*.kext
-
Tools:
-
Kexts:
- FakeSMC.kext
- HackrNVMeFamily-*.kext (wird nachher selbst generiert)
-
SSDT:
- SSDT-NVMe-Pcc.aml (wird nachher selbst generiert)
Los geht‘s:
Hinweis: zur Bearbeitung von .plist-Dateien bitte keinen Text-Editor benutzen. PlistEdit Pro oder Xcode sind gefahrloser und machen die Dateien nicht unbrauchbar.
Hinweis: habe festgestellt, dass ein Reboot nach Änderungen mit dem Clover Configurator oft nicht ausreicht. Da hilft nur, Rechner runterfahren (ausschalten) und wieder neu starten.
Hinweis: falls du an einem bestehenden System arbeitest - Backup Sicherung nicht vergessen!
Die grünen Menüpunkte sind erforderlich, die schwarzen Menüpunkte sind optional:
1. ggfs. Bootstick für Windows erstellen
- falls nur eine ISO aber keine Installations CD vorliegt
2. BIOS update
- Auf der Hersteller-Seite das neueste BIOS (F20) runtergeladen und geflasht.
3. Installiere Windows
- Um die SSDT erstellen zu können, musste ich zuerst Windows auf dem Rechner installieren und zusätzlich alle Treiber für das Board, damit alle Controller und Geräte im Gerätemanager auftauchen. Das habe ich auf einer der zwei SSD gemacht.
4. ggfs. Firmware-Updates durchführen
- Um meinen Thunderbolt-Controller nutzen zu können musste ich dafür ein Firmwareupdate durchführen. Das ging nur unter Windows! Deshalb habe ich auch alle anderen Treiber installiert und jedes Gerät unter Windows überprüft.
5. Finde den ACPI Pfad der NVMe SSD
- In - Systemsteuerung > Gerätemanager > Speicher Controller > Standard NVM Express Controller > Eigenschaften > Details - findet man den ACPI Pfad. Hierfür sucht man den "BIOS Gerätename".
-
- Der Pfad sieht bei mir so aus:
\_SB.PCI0.RP09.PXSX
- Dieser ist von Board zu Board und dem jeweiligen Steckplatz, falls mehrere vorhanden sind, unterschiedlich, deshalb wirklich selber suchen.
6. Bootstick erstellen (macOS)
- Einen USB-Installationsstick habe ich mir zuvor bei einem Freund am Mac erstellt. Anleitungen dafür gibt es auch hier im Forum.
7. Installiere macOS Sierra
- Um die SSDT zu erstellen brauchen wir einen Rechner mit macOS also habe ich das schnell mal installiert. Ich habe ja noch eine zweite SSD zur Verfügung. Die Windows SSD abgestöpselt und die leere SSD angestöpselt. Eine Installationsanleitung gibt es hier im Forum oder mal Google fragen.
8. Erstelle die SSDT-NVMe-Pcc.aml, hierfür habe ich MaciASL verwendet.
- // Inject bogus class-code for NVMe SSD to prevent IONVMeFamily.kext from loading
- DefinitionBlock("", "SSDT", 2, "hack", "NVMe-Pcc", 0)
- {
- External(_SB.PCI0.RP09.PXSX, DeviceObj)
- Method(_SB.PCI0.RP09.PXSX._DSM, 4)
- {
- If (!Arg2) { Return (Buffer() { 0x03 } ) }
- Return(Package()
- {
- "class-code", Buffer() { 0xff, 0x08, 0x01, 0x00 },
- "built-in", Buffer() { 0 },
- })
- }
- }
- //EOF
Alles anzeigen
- Eine Vorlage im DSL-Format findest du im Anhang dieser Anleitung.
- Vor dem Kompilieren überprüfen, ob alles richtig eingestellt ist:
- MaciASL > Preferences > iASL auf ACPI 6.1 setzen
- Die SSDT-NVMe-Pcc.dsl Vorlage in maciASL öffnen
- ACPI Pfad anpassen
- Die angepasste SSDT-Vorlage speichern:
- Save As > „SSDT-NVMe-Pcc“
- Format: ACPI Machine Language Binary
- Vorzugsweise auf dem Desktop speichern, damit du sie leicht findest
8a. Die fertige Datei wird jetzt in folgenden Ordner der EFI-Partition des USB-Stick kopiert:
- EFI/Clover/ACPI/patched/SSDT-NVMe-Pcc.aml
9. Einen Patcheintrag in die config.plist eintragen - Change all _DSM to XDSM - WICHTIG!
-
Entweder mit dem Clover Configurator unter
Comment: Change all _DSM to XDSM
Find: 5f44534d
Replace: 5844534d
• EFI/Clover/config.plist
• z.B. mit dem PlistEdit Pro die config.plist öffnen und folgenden Code kopieren, einsetzen und speichern.
- <dict>
- <key>ACPI</key>
- <dict>
- <key>DSDT</key>
- <dict>
- <key>Patches</key>
- <array>
- <dict>
- <key>Comment</key>
- <string>change _DSM to XDSM</string>
- <key>Find</key>
- <data>X0RTTQ==</data>
- <key>Replace</key>
- <data>WERTTQ==</data>
- </dict>
- </array>
- </dict>
- </dict>
- </dict>
Alles anzeigen
10. HackrNVMeFamily-*.kext erstellen
- Hierfür habe ich im Terminal folgende Befehle ausgeführt:
- cd Desktop
- git clone https://github.com/RehabMan/patch-nvme.git patch-nvme.git
- cd patch-nvme.git
...hier wird das Paket auf den Desktop geladen.
- cd ~/Desktop/patch-nvme.git
- ./patch_nvme.sh --spoof 10_12_3
...hier wird die Kext-Datei generiert und auf dem Desktop abgelegt.
- 10_12_3 ist meine Version von Sierra, die Zahl im Befehl muss an die eigene macOS-Version angepasst werden.
- Es werden aber nur Patch-Scripts für die Versionen macOS 10.11.5 bis 10.12.3 bereitgestellt!
-
Das kann dann auch mal einen exotischen Namen haben, z.B. 10_11_6_beta4 - also unbedingt mit der eigenen Version vergleichen und bei RehabMan nachschauen!
10a. Generierte "HackrNVMeFamily-*.kext" auf den USB-Installationsstick in folgenden Ordner kopieren:
11. macOS Sierra auf NVMe SSD installieren
- Nachdem ich mit dem vorbereiteten Bootstick den Rechner gebootet habe und im Installationsbildschirm gelandet bin, kann ich im Festplattendienstprogramm meine NVMe SSD auswählen und wie gewohnt die Formatierung bzw. Die Installation durchführen.
- Nach erfolgreicher Installation folgende Dateien vom USB-Stick in den EFI-Ordner der NVMe SSD kopieren:
- EFI/Clover/ACPI/patched/SSDT-NVMe-Pcc.aml
- EFI/Clover/kexts/other/HackrNVMeFamily-*.kext
- EFI/Clover/Config.plist
12. macOS Sierra updaten
- Vor einem macOS-Update sollte man auf das Update vom "patch-nvme github project" warten, um dann die HackrNVMeFamily*.kext mit der neuesten Version zu tauschen.
...diese Anleitung werde ich immer wieder erweitern bzw. anpassen. Falls Fehler vorhanden sind, bitte Bescheid sagen, die werden dann umgehend berichtigt.