MacBook Pro 2011 Grafikkarten-Problem und Lösung

Ein weiterer Kandidat, der bekannt ist für seine Grafikkarten-Probleme, ist das MacBook Pro von 2011 mit AMD-Grafik. Leider ist dieses nicht so einfach zu reparieren wie das Vorläufermodell mit NVIDIA-Grafikkarte war. Bei diesem Modell muss man den GPU komplett deaktivieren, also physisch vom Strom trennen. Aber erst nachdem man im EFI einen Eintrag erstellt hat, was das Gerät anweist, nur die im Prozessor integrierte Grafik zu nutzen.  Danach entfernt man einen kleinen Widerstand, der die Stromzufuhr zur GPU unterbricht. Diese recht einfache aber effektive Lösung habe ich auf realmacmods gefunden. Diese Anleitung habe ich hier ins Deutsche übersetzt und etwas angepasst.

Pro:

* GPU wird nicht mehr mit Strom versorgt, also weniger Stromverbrauch und weniger Wärmeentwicklung, also auch längere Akkulaufzeit.

Contra:

* Weniger 3D-Leistung, aber vollkommen ausreichend für die normale Arbeit
* Externer Monitor ist nicht mehr anschließbar
* man darf kein PRAM-Reset ausführen, dies löscht den EFI Eintrag und es bleibt dunkel. Aber dafür habe ich eine Lösung weiter unten.
* unter High Sierra funktioniert die Backlight-Steuerung nicht mehr. Hierfür gibt es allerdings eine Lösung.

Bevor wir loslegen erst mal der obligatorische Haftungsausschluss:

Ich übernehme keinerlei Haftung für irgendwelche Schäden, die bei der Reparatur elektronischer Geräte, dem Aufbau und Betrieb elektronischer Schaltungen, an Personen oder Geräten entstehen können.

Und man sollte schon etwas Erfahrung mit dem Lötkolben haben…

Im ersten Schritt ändern wir einen EFI-Eintrag. Dies können wir auf 2 Wegen machen: Entweder der Mac bootet noch und wir können per Terminal den Eintrag setzen, oder der Mac bootet nicht mehr, dann müssen wir uns einen Linux-Distribution auf einem Stick erstellen und davon starten. Wenn der Mac noch startet, entweder normal oder im abgesicherten Modus, einfach das Terminal öffnen und Folgendes eingeben:

sudo nvram fa4ce28d-b62f-4c99-9cc3-6815686e30f9:gpu-power-prefs=%01%00%00%00

Dies funktioniert allerdings nicht immer, ist aber die Lösung wenn man mal eine PRAM-Reset ausgeführt hat, soweit man die Bildschirmfreigabe aktiviert hat. Dann kann man den defekten Mac mittels Bildschirmfreigabe von einem anderen Mac übernehmen und die EFI-Einstellung nochmals ausführen.

Der andere Schritt ist etwas aufwändiger. Wenn der Mac nicht mehr richtig hochfährt müssen wir uns einen USB-Stick basteln. Hierfür brauchen wir natürlich einen anderen Rechner der funktioniert.

Herunterladen von ArchLinux

Als Erstes muss man die neuste Version von ArchLinux auf https://www.archlinux.org/download/ downloaden.

Jetzt könnte man diese einfach auf eine CD/DVD brennen und von dieser direkt im SuperDrive des MacBook Pro starten. Oder man bastelt sich einen USB-Stick

USB-Stick erstellen

Als erstes muss man in Erfahrung bringen, welches Laufwerk der USB-Stick ist. Hierfür /Programme/Utilities/Terminal.app öffnen und mit dem Kommando diskutil list eingeben. Es erscheint etwas wie /dev/disk# (external, physical), wobei # die Nummer des Laufwerkes darstellt. Bitte genau prüfen, dass die Angaben in Größe und Namen stimmen.

USB-Laufwerke werden in OSX automatisch gekoppelt. Um das ISO-Image auf den USB-Stick zu schreiben muss das Laufwerk entkoppelt werden, nicht ausgeworfen. Entkoppeln erfolgt mit dem Kommando diskutil unmountDisk /dev/disk# wobei # natürlich die Nummer des Laufwerkes ist. Nun können wir das Image auf den USB-Stick mit dem folgendem Kommando sudo dd if=/Pfad/zur/ISO-Datei of=/dev/rdisk# bs=1m kopieren. Nach dem Kopiervorgang wird vom System eine Meldung generiert, dass er das Laufwerk nicht lesen kann. Dies ist allerdings normal und kann negiert werden.

MacBook von USB starten

CD/DVD einsetzen oder USB-Stick anschließen, Rechner einschalten und die ALT-Taste gedrückt halten. Im folgenden Startmenü “EFI Boot” auswählen. Sobald das ArchLinux Bootmenü erscheint die Taste e drücken um die Startoptionen von ArchLinux zu bearbeiten. Am Ende der Startoptionen nomodeset einfügen und mit Enter bestätigen. Wenn alles korrekt läuft, befindet man sich nach einiger Zeit in einer Linux-Konsole.

Eventuelle alte Einstellung löschen

Die EFI-Variablen werden automatisch eingebunden in dem Ordner /sys/firmware/efi/efivars, allerdings ohne Schreibrechte, darum müssen wir erst den Ordner neu einbinden. Hierfür geben wir folgende Kommandos:

umount /sys/firmware/efi/efivars
mount -t efivarfs rw /sys/firmware/efi/efivars/

Jetzt können wir mit cd /sys/firmware/efi/efivars in den Ordner wechseln und mit ls nachsehen ob bereits eine gpu-power-prefs-Datei vorhanden ist. Sollte diese existieren, muss sie mit rm gpu-power-prefs-… vorher gelöscht werden. Mit der TAB-Taste wird die Autovervollständigung ausgeführt, dann braucht man nicht den ganzen Dateinamen von Hand tippen. Sollte das Löschen nicht auf Anhieb gelingen, muss vorher die Dateiimmunität aufgehoben werden mit chattr -i “gpu-power-prefs-…”

Neue gpu-power-prefs-Datei erstellen

Dies ist ein recht komplizierter Befehl und ist teilweise mit halb funktionierender Grafikkarte recht mühselig einzugeben.

printf “\x07\x00\x00\x00\x01\x00\x00\x00” > /sys/firmware/efi/efivars/gpu-power-prefs-fa4ce28d-b62f-4c99-9cc3-6815686e30f9

Anschließend sollte man die Datei wieder immunisieren. Dies ist nötig, um zu verhindern, dass das OS ohne Root-Rechte Zugriff auf die Datei hat und eventuell etwas verändern kann.

chattr +i “/sys/firmware/efi/efivars/gpu-power-prefs-fa4ce28d-b62f-4c99-9cc3-6815686e30f9”

Diesen Schritt hat man nicht, wenn man die erste Option wählt und aus dem OS heraus die NVRAM-Variablen ändert. Inwiefern dies später Einfluss haben könnte, habe ich noch nicht untersucht bzw. festgestellt.

Unmount und Neustart

Zum Schluss muss noch noch ordentlich entkoppelt werden um sicherzustellen, dass die EFI-Variablen ordentlich gespeichert werden.

cd/
umount /sys/firmware/efi/efivars

und zum Schluss noch ein reboot um den Rechner neu zu starten.

Es ist wichtig, den Rechner beim ersten Starten in den Safe-Mode zu starten. Hierfür die SHIFT-Taste beim Hochfahren gedrückt halten. Sobald der Rechner hoch gefahren ist können wir diesen über den normalen Weg herunter fahren. Dieser Bootvorgang löscht eventuelle GPU-Einstellungen die eventuell stören könnten.

Entfernen des Widerstandes

Jetzt sind wir mit dem Softwareteil fertig und widmen uns den Hardwareteil. Man könnte jetzt davon ausgehen, dass der Rechner doch funktioniert und es hierbei belassen. Allerdings solange der GPU noch mit Strom versorgt wird, wird dieser vom OS erkannt und kann zu Konflikten führen. Sobald der GPU vom Strom getrennt ist, erkennt das OS nur noch die im Prozessor integrierte Grafikeinheit.

Den Widerstand, den es zu entfernen gilt, ist sowohl beim 15″ als beim 17″-Modell der R8911.


Dies ist der Widerstand des 17″-Modells

 


Dies ist der Widerstand des 15″-Modells

Modifikation für High Sierra

Mit der Einführung von High Sierra kommt es bei dieser Art von Modifikation dazu, dass das Backlight nicht mehr steuerbar ist und nach dem Ruhezustand nicht mehr angeht. Hierfür gibt es ein Komplettlösung: https://computeco.de/DyingLight.html. Wenn man allerdings auf die Hellichtkeitssteuerung verzichten kann, reicht es eine kleine Brücke zu ziehen. Wenn Sie noch ein älteres OS nutzen, ist es nicht ratsam diese Brücke zu ziehen, weil die Hellichkeitssteuerung auch in diesem Betriebssystemen nicht mehr geht.


Dies ist die Brücke beim 17-Zoll Modell

 


Dies ist die Brücke beim 15-Zoll Modell

Fotos

Fotos sagen den meisten mehr als Diagramme. Leider habe ich bis jetzt nur 15″ Modelle unter dem Messer gehabt, also auch nur Fotos von diesen. Hier rot umkreist ist der zu entfernende Widerstand und der grüne Kreis zeigt die Brücke für die High Sierra-Modifikation. Darunter noch einmal etwas näher.

Was bei einem PRAM-Reset?

Diese Modifikation übersteht keinen PRAM-Reset. Aber dafür gibt es – sollte man einen zweiten Mac haben – eine recht einfache Lösung. Zum Ersten sollte man bevor man einen PRAM-Reset durchführt, erstmal die Bildschirmfreigabe einschalten und auch testen. Wenn man nun einen PRAM-Reset durchführt bleibt das MacBook dunkel, aber es fährt ganz normal hoch. Nachdem der Mac gestartet ist, einfach über den anderen Mac per Bildschirmfreigabe den Rechner übernehmen  und im Terminal folgendes Kommando geben:

sudo nvram fa4ce28d-b62f-4c99-9cc3-6815686e30f9:gpu-power-prefs=%01%00%00%00

Nach einem erneuten Neustart geht das Display wieder.