VGA an interner intelHD3000 aktivieren (Thinkpad X220)

  • weil doch immer mal wieder die frage auftaucht, ob man den VGA-out eines notebooks mit integrierter IntelHD3000 grafik nutzen kann, hier eine anleitung, wie es mir nun doch gelungen ist, den vga meines thinkpad X220 in gang zu bringen:


    Aktivierung des VGA-Ports (sowie HDMI-Audio) von Notebooks mit integrierter Intel HD3000 GPU (getestet mit Thinkpad X220 und 10.8.3 mit Clover, der Monitor wird über Systemeinstellungen/Monitore erkannt ((noch) nicht automatisch), erweiterter Desktop sowie Synchronisation sind möglich, nach dem sleep wacht ein angeschlossener Monitor wieder mit auf):


    benötigt wird
    - die originale AppleIntelSNBGraphicsFB.kext (Backup nicht vergessen!)
    - Hex Fiend app (oder einen anderen Hexadezimaleditor), um die kext zu bearbeiten
    - DSDT-Patch mit PlatformID und Systemdefinition Macbookpro8,1
    - sowie ein „gesprächiger“ Monitor, der seine EDID-Daten an den Rechner überträgt.


    Der DSDT-Patch:


    wird in die _DSM Methode des Grafik-Device (GFX0/IGPU oder wie in meinem Fall PEG → VID) eingetragen.
    Der Abschnitt „AAPL00,DualLink …“ wird nur benötigt, wenn der interne Monitor eine native Auflösung grösser als 1366x768 pixel hat, kann ansonsten weggelassen werden.
    Store (Package (0x0E) ändert sich in dem Fall in Store (Package (0x0A).


    Bei mir sieht die _DSM-Methode danach so aus:


    an dieser Stelle habe ich anfangs einen fatalen Denkfehler gemacht: im Abschnitt "device-id..." darf selbstverständlich NICHT die eigene ID eingetragen werden....


    Zur Sicherheit sollte man nun einen Neustart durchführen und die alte DSDT in DSDT-stable.aml o.ä umbenennen, damit man im Falle eines Falles darauf zurückgreifen kann.


    Und jetzt zum Patchen des Framebuffers:


    dieser Eintrag ist die originale Anschlusskonfiguration für das MacBookPro8,1 im AppleIntelSNBGraphicsFB (AppleIntelSNBGraphicsFB.kext/Contents/MacOs/AppleIntelSNBGraphicsFB):


    0102 0400 1007 0000 1007 0000 // die Anzahl der Anschlüsse (hier 4)
    0503 0000 0200 0000 3000 0000 // internes Display
    0205 0000 0004 0000 0700 0000 //
    0304 0000 0004 0000 0900 0000 // und 3x DisplayPort/Hdmi/DVI
    0406 0000 0004 0000 0900 0000 //


    Diese Zeilen müssen wir nun in dem ellenlangen Hexadezimalcode finden und editieren. Einfach die ersten drei 4er Grüppchen ins Suchfeld kopieren, dann ist man an der richtigen Stelle.


    In der ersten Zeile könnte man die Anzahl der Anschlüsse anpassen, ich habe es bleibenlassen – man müsste dann die nicht benutzen Anschlüsse mit Nullen überschreiben.


    Die Zeile für das interne Display wird selbstverständlich nicht verändert.


    Nun müssen wir gucken, welcher von den 3 übrigen Anschlüssen unser HDMI oder Displayport ist. Hierzu öffnen wir den IORegistryExplorer und scrollen zum Eintrag unserer Grafikkarte. Wenn wir nun einen Monitor über Hdmi oder Displayport anschliessen, taucht er umgehend dort auf:



    Oben sehen wir das interne Display am Framebuffer 0, direkt darunter ist der externe Monitor am Framebuffer 1 aufgetaucht.
    Daraus schliessen wir nun messerscharf, dass bei dem Thinkpad die 2. Zeile „0502....“ für den Displayport zuständig ist. Sie wird vorerst auch nicht modifiziert.


    So, und nun bleiben 2 Zeilen übrig. Eine davon ist der VGA des Thinkpads. Der Einfachheit halber habe ich nun ganz einfach beide verbleibenden Zeilen angepasst (mit jeweils denselben Zahlen).


    Mögliche Anschlusskonfigurationen sind (achtung, nun wird es böse.... ;) ):


    0602 0000 (steht für VGA)


    für die nächsten 8 Zahlen:
    1000 0000 oder 0100 0000 oder 0001 0000


    damit kann kombiniert werden:
    0600, 0700, 0701, 0900 und 8100 (und jeweils noch 0000 dahinter)


    2 weitere Möglichkeiten, wenn von denen oben nichts passt:


    0602 0000 0200 0000 3000 0000 und 0602 0000 0200 0000 3002 0000


    Darum, jede einzelne Möglichkeit eine nach der anderen einzutragen, die Datei wieder nach AppleIntelSNBGraphicsFB.kext/Contents/MacOs zu verfrachten, die modifizierte kext zu installieren, die Rechte zu reparieren und mit -f neuzustarten und das schlimmstenfalls für alle 17 möglichen Kombinationen, kommen wir leider nicht herum... man kann nur hoffen, dass man an der richtigen Stelle mit der Ausprobiererei angefangen hat.


    Bei meinem Thinkpad darf der externe Monitor beim Starten nicht angeschlossen sein – wird aber auch nicht automatisch erkannt. Wenn das bei euch auch so ist, geht in die Monitoreinstellungen, drückt die „alt“-Taste , dann erscheint „Monitore erkennen“, dort klicken, dann wird er (hoffentlich) erkannt.


    Zu guter Letzt kann man nun noch die Zeile für Hdmi/DisplayPort wie folgt verändern:


    0502 (oder 0304 oder 0406 je nachdem, wo der hdmi ist) 0000 0008 0000 0600


    das sollte Hdmi-audio aktivieren.


    Frei übersetzt und zusammengesetzt nach mehreren englischsprachigen Anleitungen, die ich im Netz gefunden habe.


    ich optimere noch weiter, ergänzungen trage ich ggf. nach, und sobald ich entgültig weiss, welche anschlusskombination für das X220 die beste ist, lade ich die modifizierten daten für euch hoch

    ersthilfe vor ort für altes zeugs (-> laptops) 8)

    berliner häckinTosh.stammTisch am 3.monatsmittwoch im maxFish/kunsthaus ACUD

    der stammtisch in berlin ist WIEDER DA!! nächster termin voraussichtlich: mittwoch 15.9.21, 19.00 uhr

    Einmal editiert, zuletzt von grt ()

  • wow, vielen Dank für die ausführliche Dokumentation! Klasse!