Dabei geht es darum die iGPU mit voller Grafikbeschleunigung nutzbar zu machen und endlich keinen Blackscreen mehr zu erhalten.
Da einige, die zum ersten Mal einen Hackintosh installieren, nur eine iGPU zur Verfügung haben und damit gar kein Bild bekommen, erkläre ich zuerst, wie man überhaupt erstmal ein Bild bekommt ohne Grafikbeschleunigung (vesa mode).
In den weiteren Punkten sind verschiedene Möglichkeiten beschrieben wie du deine iGPU mit voller Beschleunigung zum laufen bekommen kannst. Dabei wird auf ein möglichst großes Spektrum an Systemen eingegangen.
Grundvoraussetzungen
Kexte:
- aktuelle Version von Lilu.kext und Whatevergreen.kext
- https://www.sl-soft.de/kext-updater/
Software:
- Hackintool - https://github.com/headkaze/Hackintool/releases
- Clover Configurator
- TextEdit, ProperTree, Xcode oder PlistEdit Pro
1. Vesa mode für Clover und OpenCore
Um mit Clover den vesa mode zu erhalten reicht es aus in der config.plist mit Clover Configurator unter dem Punkt Graphics irgendeinen 8-stelligen Zahlenwert bei ig-platform-id einzutragen und einen Haken bei Inject Intel zu setzen.
oder hier in die config eintragen
Bei OpenCore setzt du irgendeinen 8-stelligen Zahlenwert genau an diese Stelle.
Nun bekommst du ein Bild und kannst macOS installieren, vorausgesetzt alles andere stimmt in deiner EFI
Windows Nutzer, die noch kein macOS zur Verfügung haben, können diese Einstellungen mit ProperTree vornehmen.
Du wirst bemerken, dass das Dock nicht transparent ist, Glitches vorkommen und das der GPU Speicher bei etwas um die 8 MB liegt. Um volle Grafikbeschleunigung zu erhalten müssen die richtigen Framebuffer (FB) gepacht und bei den DeviceProperties eingetragen werden. War das patchen erfolgreich, treten diese Phänomene nicht mehr auf.
Die gepatchten FB sind bei jedem mainboard verschieden. Das heißt nur weil jemand die gleiche iGPU hat kannst du nicht die funktionierenden FB übernehmen. Nur wenn es das gleiche mainboard ist und die gleiche device-id der iGPU.
Für alles Weitere solltest du im Vorfeld folgendes tun:
Kopiere den EFI Ordner, mit dem du installieren konntest vom Stick in die EFI Partition deiner Festplatte. Boote von der Festplatte und schau ob alles soweit läuft. Funktioniert das, lege den Stick bei Seite und nehme nun alle Änderungen an der config.plist vor die sich auf deiner Festplatte befindet. Gibt es Fehlversuche, kommst du mit dem Stick wieder zurück in dein System.
Außerdem musst du bei Clover alle Schritte, die du gemacht hast, um den vesa-mode zu erhalten, in der config auf der Festplatte rückgängig machen!
Das ig-platform-id Feld leeren und den Intel Inject Haken entfernen.
Bei OC musst du nichts machen, da die ig-platform-id in den nächsten Schritten erneuert wird.
2. Voreingestellte Patches im Hackintool
Öffne das Hackintool und schau zuerst nach, dass diese Optionen, entsprechend deiner macOS Version, angewählt sind:
Nun kannst du hier schauen ob deine FB patch im Hackintool schon hinterlegt ist.
Hast du Glück und dein board ist enthalten, werden dir an dieser Stelle die FB angezeigt.
Dies dient zunächst als gute Grundlage.
Nun gehst du auf den Reiter Patch, wo es noch 3 Fenster für Einstellungen gibt. Geh alles durch und mit den Einstellungen, die in den Bildern zu sehen sind, sollte es in den meisten Fällen funktionieren.
Mit Spoof Video Device ID wählst du deine passende device-id aus. Du findest sie auf der Intel Ark Seite. Für meinen Fall (i5 8400) hier
https://ark.intel.com/content/…cache-up-to-4-00-ghz.html
an dieser Stelle.
Überprüfe nochmals alle Einstellungen sorgfältig, weil durch bestimmte Modifikationen sich andere Werte verändern können. Anschließend klickst du auf Patch erstellen.
3. Einfügen des Patches in die config.plist
Mounte vorher genau die EFI Partition, in welche der Patch eingefügt werden soll.
Dann gehst du im Hackintool an diese Stellen.
Nun speicherst du die config und startest neu.
4. Patch mittels Whatevergreen (WEG)
Meines Erachtens hat sich WEG soweit entwickelt, dass allein durch die folgenden Angaben in den DeviceProperties die richtigen Ports „automatisch“ beim boot gefunden werden können.
Dies ist ein Beispiel für Coffee Lake i5 8400. Du musst die platform-id und die device-id entsprechend deinem System noch anpassen.
Bei OC
In Textform sehen die Einstellungen so aus:
- </dict>
- <key>DeviceProperties</key>
- <dict>
- <key>Add</key>
- <dict>
- <key>PciRoot(0x0)/Pci(0x2,0x0)</key>
- <dict>
- <key>AAPL,ig-platform-id</key>
- <data>
- BwCbPg==
- </data>
- <key>device-id</key>
- <data>
- kj4AAA==
- </data>
- <key>framebuffer-patch-enable</key>
- <data>
- AQAAAA==
- </data>
- </dict>
- </dict>
- <key>Delete</key>
- <dict/>
- </dict>
Für Clover:
Unter bestimmten Vorraussetzungen können bzw. müssen diese zusätzlichen Einträge noch genutzt werden.
Falls du Clover verwendest, kannst du sie auch so in den CloverConfigurator schreiben.
Wie du deine richtige device id findest ist unter Punkt 2 erklärt.
Ist diese z.B. als 0x3E92 angegeben, bedeutet das in Hex: 00 00 3E 92
Dies muss jedoch als Hex reversed eingetragen werden was dann 92 3E 00 00 ist.
Diese Umkehrung läßt sich ganz leicht mit dem Hackintool Calculator errechnen.
Die ig-platform-id muss der der verwendeten CPU Architektur entsprechen und auch im Hex reversed Format eingetragen werden.
Beispielhaft für Coffee Lake Desktop ig-platform-id
3E 9B 00 07 : Hex
07 00 9B 3E : Hex reversed
Im nächsten Abschnitt sind einige Empfehlungen für die entsprechende platform-IDs zu finden.
Tip: Ein Displayport läßt sich mit dieser Methode eher lauffähig bekommen. HDMI ports auch, aber die Wahrscheinlichkeit ist etwas geringer.
Anmerkung: Bei HDMI kommt es vor, dass das Kabel nach dem boot ab- und wieder angesteckt werden muss, damit es Bild gibt.
Das bootarg igfxonln=1 kann in diesem Fall helfen, sodass per HDMI nach dem boot und dem sleep gleich das Bild erscheint.
Im Clover Configurator bleiben alle Felder in der Sektion Graphics und in der Sektion Devices /Fake ID leer. Es sollen auch keinerlei Haken gesetzt werden. Dies erledigt alles Whatevergreen.
In manchen Fällen hat jedoch ein Haken bei Inject Intel geholfen. Dies wäre also optional möglich.
5. Multi-Monitor-Betrieb
Falls du mehrere Monitore an der iGPU betreiben möchtest und es kommt zu Fehldarstellungen, dann können dir diese 2 bootargumente helfen.
igfxagdc=0 & igfxonln=1
(credits für den Fund KarlDieter )
6. Framebuffer herausfinden
Sind deine FB nicht hinterlegt, du findest sie nirgends im Internet oder die WEG Methode greift nicht, bleibt dir leider nichts weiter übrig als alle erdenklichen Kombinationen auszuprobieren.
Als erstes musst du die passende Intel Generation und Platform ID für deine Hardware auswählen.
Platform-id Übersicht für Desktop und Laptop für verschiedene CPU - Architekturen
- Gen 2: Sandy Bridge (Intel HD Graphics 2000/3000)
- - Support started with OS X 10.7.x and ended with macOS 10.13.6
- - Metal support is not available
- - AAPL,snb-platform-id (desktop): 0x00030010 (default)
- - AAPL,snb-platform-id (laptop): 0x00010000 (default)
- Gen 3: Ivy Bridge (Intel HD Graphics 2500/4000)
- - Support started with OS X 10.8.x
- - AAPL,ig-platform-id (desktop): 0x0166000A (default), 0x01620005
- - AAPL,ig-platform-id (laptop): 0x01660003 (default), 0x01660009, 0x01660004
- Gen 4: Haswell (Intel HD Graphics 4200-5200)
- - Support started with OS X 10.9.x
- - AAPL,ig-platform-id (desktop): 0x0D220003 (default)
- - AAPL,ig-platform-id (laptop): 0x0A160000 (default), 0x0A260005 (recommended) 0x0A260006 (recommended)
- Gen 5: Broadwell (Intel HD Graphics 5300-6300)
- - Support started with OS X 10.10.2
- - AAPL,ig-platform-id (desktop): 0x16220007 (default)
- - AAPL,ig-platform-id (laptop): 0x16260006 (default)
- Gen 6: Skylake (Intel HD Graphics 510-580)
- - Support started with OS X 10.11.4
- - AAPL,ig-platform-id (desktop): 0x19120000 (default)
- - AAPL,ig-platform-id (laptop): 0x19160000 (default)
- Gen 7: Kaby Lake (Intel HD Graphics 610-650)
- - Support started with macOS 10.12.6
- - AAPL,ig-platform-id (desktop): 0x59160000 (default), 0x59120000 (recommended)
- - AAPL,ig-platform-id (laptop): 0x591B0000 (default)
- Gen 8: Coffee Lake & Comet Lake (Intel UHD Graphics 630)
- - Support started with macOS 10.13.6 (17G2112) / 10.14 beta 4 (18A336e)
- - AAPL,ig-platform-id (desktop): 0x3EA50000 (default), 0x3E9B0007 (recommended)
- AAPL,ig-platform-id (laptop): 0x3EA50009 (default)
Weiterführende Informationen findest du hier:
https://github.com/acidanthera…/Manual/FAQ.IntelHD.en.md
Die richtigen FB ergeben sich aus einer Kombination von Index (1-3), BusID (1-6), Pipe (8, 9, 10, 18) und Typ (HDMI, DVI, DP, LVDS).
Für laptops wählst du als Index=0 und Type=LVDS damit das interne Display läuft.
Konzentrier dich erstmal auf nur einen Port (Type), den du vorzugsweise verwenden willst.
Beginne erstmal nur mit einer Pipe (8, 9, 10 oder 18)
Die erste Einstellung soll dann, anhand eines HDMI Beispiels, so aussehen. Du kannst natürlich auch den DP oder DVI wählen. Index wird immer 1-3 verwendet, wodurch du Überschneidungen von Index und BusID vermeidest.
Nun machst du teilweise Schritt 2 (patch erstellen) und 3 (patch in die config einfügen) von weiter oben. Speichern --> Neustart.
Schlägt ein Versuch fehl, kommst du per Stick wieder ins System und kannst weitere Veränderungen vornehmen.
Nun werden nur noch die BusIDs geändert nach diesem Schema, wobei jede Spalte für eine config.plist steht.
Die nächste config würde dann das beinhalten.
….und so weiter…..
Zum besserem Verständnis: So ist das gemeint
Wenn die 6 Möglichkeiten für Pipe 8 durchgespielt sind, wiederhole das gleiche, nur setzt du die Pipe auf 9.
Den nächsten Durchgang dann mit Pipe 10 und den nächsten mit Pipe 18.
Leider gibt es sehr viele Kombinationsmöglichkeiten und hoffentlich ist die zündende dabei.
Viel Erfolg!
Das Thema FB patching der iGPU hat sich mir immer als eines dargestellt, wo immer wieder ungeklärte Fragen und Phänomene auftreten. Dieser Thread kann gerne dazu genutzt werden um solche zu stellen und zu klären. Verbesserungsvorschläge und nützliche Ergänzungen sind natürlich auch erwünscht.