[Anleitung] iGPU - Framebuffer patching & Blackscreen Problem beheben für Clover und OpenCore

    • Hilfreich

    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:

    Software:



    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:


    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


    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.

  • griven

    Hat das Thema freigeschaltet
  • Endlich macht es mal jemand Daumen hoch dafür ;)


    Was mir aufgefallen ist, du hast in deinem Beispiel den "framebuffer-stolenmem" Parameter verwendet was evtl bei den meisten für Verwirrung sorgt da man diesen nur braucht wenn man im Bios keine Option an den Speichereinstellungen hat zu schrauben .


    Das kommt bei Coffee Lake Desktop recht selten bis garnicht vor und wird oft nur bei mobilen und vermehrt bei älteren iGPUs verwendet.


    Wenn es dir bei stolenmem darum geht den VRAM zu erhöhen was nicht empfohlen ist wäre das framebuffer-unifiedmem.

  • Super Guide. Der fehlte noch. CTRL+D ;)


    Zwei Fragen hätte ich noch:


    1. Wenn ich mit Hackintool Sachen ausprobiere, wirkt sich das nur auf die plist aus die ich damit bastle aus oder verändert es auch intern etwas an der laufenden Konfiguration, sodass ich die kaputtmachen kann?


    2. Das mit dem definieren der Anschüsse habe ich noch nicht verstanden Ich verstehe auch die begriffe nicht - LVDS = extern oder intern? Ich habe zum Beispiel ein Lenovo T530 IvyBridge Laptop mit nem Dock und verwende


    AAPL,ig-platform-id 04006601, mit 03006601 bleibt das externe Display aus.


    Das Bild wird durchgeschleust zum Dock. Das Dock hat sowohl einen DVI als auch einen DisplayPort. Der DVI Port funktioniert. Der Displayport funktioniert nicht. Der Mini-DP am Laptop selbst funktioniert jedoch. Wie findet man sowas raus?


    Danke!

  • AkimoA Danke für dein feedback und deinen Hinweis. Stimmt, wenn man den Speicher im Bios einstellen kann, braucht es framebuffer-stolenmem und auch framebuffer-fbmemnicht. Dann würde ja framebuffer-patch-enable erstmal ausreichen.

    Ich werde das noch ändern mit den entsprechenden Hinweisen.


    framebuffer-unifiedmem habe ich bei mir im Einsatz um den VRAM auf 2048MB zu erhöhen. Bisher hab ich keinerlei Nachteitle dadurch merken können. Richtig, auf der WEG Seite wird das nicht empfohlen. Wäre interessant zu erfahren wieso es nicht empfohlen ist.


    5T33Z0 Danke für's feedback :)


    1. Wenn du im hackintool Einstellungen unter Patch veränderst, dann werden diese erst im System aktiv nachdem sie in deine config eingefügt wurden nach einem Neustart.


    2. LVDS ist für interne Displays. Ich werde die Formulierung an der Stelle noch präzisieren.

    Da ich keinen Laptop habe zum testen, kann ich leider auch nicht sagen, wie dort die BusID und die Pipe eingestellt werden müssen. Soweit ich erfahren konnte, läuft das interne, wenn Index=0 ist und Typ=LVDS ist. Kannst du das vielleicht bei dir mal testen mit unterschiedlichen BusIDs und Pipes?


    Dann ist die AAPL,ig-platform-id 04006601 bei dir der richtige FB. Es stehen mehrere zur Auswahl und man muss auch dort den richtigen erwischen, wobei man sich erst an die empfohlenen halten sollte und wenn der nicht läuft dann die anderen ausprobieren.


    Wenn du im Hackintool auf Patch--> Connectors geht, werden dir die funktionierenden Ports rot hinterlegt, sofern angeschlossen. Wenn noch ein Index frei ist, kannst du da mit versch. Einstellungen versuchen deinen DP am Dock zu aktivieren.

  • framebuffer-unifiedmem habe ich bei mir im Einsatz um den VRAM auf 2048MB zu erhöhen. Bisher hab ich keinerlei Nachteitle dadurch merken können. Richtig, auf der WEG Seite wird das nicht empfohlen. Wäre interessant zu erfahren wieso es nicht empfohlen ist.

    Ich persönlich bau das bei anderen auch mit ein wenn sie grundsätzlich genug RAM verbaut haben da es ja davon abgeht und sehe es gleich, aber eigtl. geht es bei der Sache nicht darum mehr VRAM für die Interne GPU zu haben sondern generell diese zu unterstützen bei 4K Auflösung soweit ich mich erinnere.

  • Hi, ich versuch grad jemanden auf Github zu helfen, der Probleme mit Audio über HDMI/DP hat: https://github.com/SchmockLord…e-Z490-Vision-D/issues/92


    Ich kann es nur schwer testen, weil ich selber das Vision D nicht mehr laufen hab und ich werd meinen miniITX jetzt nicht deswegen zerlegen.


    Wenn ich die Settings auf meinem AsRock Z490 Phantom Gaming ITX/TB3 benutze, funktioniert alles: Video + Audio über HDMI und DP. Bei ihm aber HDMI nicht mehr, DP ja. Audio aber nicht.



    Wenn er die folgende Config benutzt, funktioniert wiederum Video über DP Und HDMI. Aber immer noch kein Audio. Hauptsächlich die Device-ID ist anders, das ist die aus dem Dortania Guide. Die oben hab ich von Intel und funzt bei mir prima.



    Für mich sieht es so aus, als würde er beim Vision D explizite Framebuffer Settings brauchen, ich beim meinem AsRock Z490 Phantom Gaming ITX/TB3 aber nicht.


    Hab mit den Settings oben während ich hier schreibe am Mainboard DP und HDMI an meinem Samsung CRG9 angeschlossen und höre Musik über den Monitor.


    Hast du ne Idee?


    Danke übrigens für den Guide, der kam genau zur richtigen Zeit :)

    vorgefertigte EFIs für diverse Intel Plattformen auf meiner

    ---------------------------------------------------------------------------

    Github Seite: https://github.com/SchmockLord?tab=repositories

    ---------------------------------------------------------------------------

    My Youtube Channel: https://www.youtube.com/channel/UCnohQxGguJlqTeOsZUl3E4A

    ---------------------------------------------------------------------------

    Desktop: MikroATX Build ASRock B650M Riptide | 7800X3D | 6900 XTXH MSI Gaming Trio Z

    Laptop: MacBook Pro 16 Base Model

  • SchmockLord Gerne :)

    Interessant, dass HDMI & DP mit einer anderen device id bei ihm funktioniert, obwohl intel eine andere angibt.

    Man kann die device id übrigens auch unter Win an dieser Stelle auslesen, um wirklich sicher zu gehen.



    Da bei mir Audio via DP und HDMI immer funktioniert haben, kann ich da leider nicht viel helfen.

    Ich hätte getippt, dass die layout-id noch richtig eingetragen werden muss, aber selbst ohne layout-id läuft bei mir der Sound über den Monitor.

  • Vielen Dank für den Guide! Habe es für mein i5-4670k mit HD4600 befolgt und es funktioniert soweit auch mit einem Monitor.


    Was allerdings leider nicht funktioniert ist Dual-Monitor. DVI oder HDMI einzeln funktionieren, beide zusammen aber nicht. Kann man da noch etwas an den Ports Feintunen und das ggf. sogar in deinem Guide ergänzen?

  • Freut mich, dass es soweit geholfen hat. Wenn wir die Lösung finden, füge ich das gern hinzu.

    Was mir immer noch ein Rätsel ist, sind die Flags. Die spielen auch eine Rolle und ich hab mich bisher immer darauf verlassen, was das Hackintool dort einträgt.

    Wenn ich nun Haswell und als platformid 0D220003 auswähle, zeigt er mir diese Flags an.



    Du könntest probieren an dieser Stelle noch ein bischen zu experimentieren.

    Kannst du deine config ohne SN auch mal hochladen?

  • Sehr gerne, Config ist anbei.


    Hatte in meinen Screenshots oben eine andere platformid getestet. Mit 0D220003 und den Flags aus deinem Screenshot macht es aber leider keinen Unterschied. Werde mal ein bisschen mit den Flags rumspielen, aber dass ich durch Zufall die richtige Kombination aus "CNUnknownFlags" treffe ist ja ungefähr so wahrscheinlich wie ein Lottogewinn :D

    Dateien

    Klassiker:
    Gigabyte EP43-DS3 / Intel Core2Quad Q9550 @3,6Ghz / GTX-770 / BCM94352HMB / 8GB-RAM / SSD
    Installiert mit Clover


    Daily:

    Gigabyte Z87-D3HP / Intel i5 4670k / HD4600 / BCM94360CD / 16GB RAM / SSD

    Installiert mit Clover

  • Als erstes würde ich es ohne das bootarg igfxonln=1 testen.

    Da es bei dir soweit "nur" mit framebuffer-patch-enable funktioniert, würde ich vorschlagen, dass du es mit Schritt 5 noch probierst, wodurch die Ports deklariert in der config drin stehen.

    Das sieht bei mir dann so aus also Beispiel.



    Ich gehe davon aus, dass dir im Hackintool die richtigen BusIDs etc. angezeigt werden, wenn sie rot hinterlegt sind allein durch die framebuffer-patch-enable funktion. Vondaher musst du da nicht groß suchen welche BusIDs es sind auf welchem Index.


    Ich hab aber auch schon erlebt, dass das auch nicht funktioniert. Allgemein kann ich sagen, das die iGPU in Hinsicht mulitmonitoring nicht die zuverlässigste ist. Bei manchen klappt's, bei manchen leider nicht.

  • Bringt leider beides auch kein Erfolg...ich vermute es funktioniert bei mir einfach nicht mehr.


    Kommando zurück! Mit Bootflag "igfxagdc=0" habe ich endlich Dual Monitor :) Allerdings ist der zweite Monitor komischerweise ein Stück abgeschnitten (siehe Anhang)...mal sehen ob der letzte Feinschliff das auch noch behebt...

    Bilder

    Klassiker:
    Gigabyte EP43-DS3 / Intel Core2Quad Q9550 @3,6Ghz / GTX-770 / BCM94352HMB / 8GB-RAM / SSD
    Installiert mit Clover


    Daily:

    Gigabyte Z87-D3HP / Intel i5 4670k / HD4600 / BCM94360CD / 16GB RAM / SSD

    Installiert mit Clover

    Einmal editiert, zuletzt von KarlDieter ()

  • Nach gefühlt hundert Neustarts habe ich jetzt endlich eine funktionierende Dual-Monitor Konfiguration gefunden...scheinbar bekommt Clover das mit den beiden Bootflags "igfxonln=1" und "igfxagdc=0" und der gesetzten Device ID ohne weitere Patches am besten hin. Anschließend ist wichtig, dass mein WQHD-Monitor über DVI angeschlossen wird und mein HD-Monitor über HDMI. Andersrum läuft der WQHD nicht in voller Auflösung.


    Hoffe das bleibt jetzt auch updatefähig...

  • hackmac004 Danke für die Anleitung 😊


    Ich möchte hier noch meine Erfahrungen ergänzen. Bei meinem Hackintosh muss ich als iGPU Kennung die 0x3E9B angeben, welche eigentlich zu einer Mobilversion der i7 CPU der 9. Generation gehört (war ein Tip von hackmac004 ). Die Kennung für meinen verbauten i7 9700k ist eigentlich 0x3E98.


    Unter Catalina (macOS 10.15.7) läuft bei mir damit die iGPU perfekt, und auch Sidecar funktioniert, allerdings bisher nicht wireless, sondern nur mit Kabelverbindung zu meinem iPad pro 10.5.


    Gruß


    Gerhard


    Edit: doch, Sidecar klappt auch wireless 😊


    Edit 2: auch das Entsperren mit der Apple Watch klappt (habe eine Serie 0, also "uralt"), jedoch muss man nach Entsperren das Monitorkabel (bei mir HDMI), das am iGPU Port hängt, abziehen und wieder anstecken

    2 Mal editiert, zuletzt von GerhardM () aus folgendem Grund: Info update

  • Nabend,


    könnte mir vielleicht mal jemand helfen? Ich habe jetzt schon ein paar Sachen ausprobiert aber irgendwie funktioniert das nicht.

    Habe das ganze jetzt mal so gemacht:


    Allerdings bekomme ich dann eine KP und ein grünes Bild, und er bleibt beim Boot hängen.

    Im UEFI habe ich den DVMT mal auf 32, 128 und 1024MB ausprobiert. Die eGPU habe ich im UEFI ebenfalls deaktiviert und auf iGPU gestellt. Muss ich da sonst noch etwas beachten?!


    Ich verzweifle gerade wirklich sehr.

    Es geht um die Hardware in meiner Signatur.


    Danke im voraus & Grüße,

    alex

    Liebe Grüße, alex


     Mac mini Late 2020 – M1 – 16GB RAM – 256GB SSD

     MacBook Pro 15” Late 2015 – i7 4980HQ – 16GB RAM – 256GB SSD

     MacBook Pro 13” Late 2014 – i5 4278U – 8GB RAM – 120GB SSD

    iPhone 13 – iPhone 8 Plus – iPad Pro 12,9" – AirPods 1. Gen – AirPods Pro – Apple Watch S5 44mm




  • hackmac004 Damit bekomme ich kein Bild.

    Liebe Grüße, alex


     Mac mini Late 2020 – M1 – 16GB RAM – 256GB SSD

     MacBook Pro 15” Late 2015 – i7 4980HQ – 16GB RAM – 256GB SSD

     MacBook Pro 13” Late 2014 – i5 4278U – 8GB RAM – 120GB SSD

    iPhone 13 – iPhone 8 Plus – iPad Pro 12,9" – AirPods 1. Gen – AirPods Pro – Apple Watch S5 44mm




  • Hast du den DVMT mal auf 64 MB eingestellt?

    Mit der Mehtode,einfach nur den patch zu enablen, funktioniert es nicht immer. Bei mir läuft damit auch kein HDMI. Dazu musste ich die richtige pipe, Index und BusID einstellen. Wie das geht ist unter Punkt 6 erklärt. Dafür würde ich die Platform id und device id nutzen, die oben im Bild zu sehen sind.

    Warum möchtest du die iGPU eigentlich nutzen, obwohl du eine RX 580 hast?

  • Ich habe den DVMT auf 64 gestellt. Mein Drecks Mainboard hat nur HDMI und DVI. Und warum ich das nutzen will ist der Punkt, das ich Performance Probleme habe wenn ich etwas an den Monitoren umstelle oder in den Monitor-Sleep gehe. Ich wollte einfach nur testen ob es an der GPU liegt. Aber ich habe mir jetzt mal ein Gigabyte Z390 M bestellt und werde morgen einfach mal alles umbauen. Wollte halt das umbauen erstmal vermeiden aber das scheint ja nicht richtig zu funktionieren mit der iGPU ohne mehrere Stunden zu verschwenden.


    Und zu meinem eigentlichen Problem gibt es sonst keine Lösung. Offensichtlich hat das niemand.


    Mit diesen Daten habe ich zwar Bild, aber nur 14MB RAM & auch nur wenn ich die RX580 ausbaue.

    Liebe Grüße, alex


     Mac mini Late 2020 – M1 – 16GB RAM – 256GB SSD

     MacBook Pro 15” Late 2015 – i7 4980HQ – 16GB RAM – 256GB SSD

     MacBook Pro 13” Late 2014 – i5 4278U – 8GB RAM – 120GB SSD

    iPhone 13 – iPhone 8 Plus – iPad Pro 12,9" – AirPods 1. Gen – AirPods Pro – Apple Watch S5 44mm