MacBook Pro: Wie deaktiviere ich die diskrete GPU dauerhaft von EFI?

Ich möchte die NVidia GTX 750M GPU auf meinem MacBook Pro 15" (Retina, Mitte 2014, Mac OS X 10.10 Yosemite) deaktivieren. Ich weiß, dass ich GfxCardStatus verwenden kann, aber ich habe gelesen, dass ich eine dauerhaftere Lösung haben könnte, indem ich etwas EFI ändere Flagge.

Meine Frage ist:

  • Wie kann ich die diskrete GPU von EFI deaktivieren?

    Ich gehe davon aus, dass dies über mehrere Neustarts hinweg bestehen bleibt. Ich würde auch wissen wollen, wie man es bei Bedarf rückgängig macht.

Aktualisieren:

Die Frage ist im Grunde, ob der im GfxCardStatus-Github-Problemkommentar erwähnte Befehl hier richtig ist oder nicht, und wie man ihn rückgängig macht, wenn er nicht funktioniert.

.

Eine Antwort darauf allein ist eine richtige Antwort, aber es wäre großartig, wenn Sie mir auch sagen könnten:

  • Wenn Sie integrierte Grafiken in GfxCardStatus erzwingen, erlaubt Ihnen Mac OS X (mindestens bis Yosemite) nicht, mehrere Monitore zu verwenden (obwohl die integrierte Iris Pro dies kann).

    Wenn ich die diskrete GPU von EFI deaktiviere, wird macOS denken, dass die integrierte GPU die installierte ist, und kann ich damit mehrere Monitore verwenden?

  • Ich habe gehört, dass dieselbe EFI-Einstellung dafür verantwortlich ist, dass die integrierte GPU nicht einmal anderen Betriebssystemen als macOS angezeigt wird, und Sie müssen sie irgendwie austricksen, um zu glauben, dass es macOS ist.

    Ist das wahr? Und wenn ja, wie macht man das?

Das sieht nach einem klassischen XY-Problem aus . Was versuchst du eigentlich zu erreichen?
Sparen Sie dauerhaft Batterie und reduzieren Sie die Wärme, ohne die Lärmkosten zu bezahlen. Ich habe die NVidia bekommen, weil ich Top-CPU- und SSD-Upgrades wollte und dies war die vorgefertigte. Wenn ich auf den benutzerdefinierten Build warten könnte, hätte ich den integrierten GPU bekommen.
Eine Lösung dieser Frage wäre auch für Besitzer von MBP-Modellen aus dem Jahr 2011 hilfreich, die eine defekte diskrete GPU haben. Es ist sicherlich möglich, die diskrete GPU unter Linux zu deaktivieren, siehe meine Frage hier: apple.stackexchange.com/questions/168167/…
Wenn Sie irgendwie hier in currentYear16 "MacBook v10.15.5 Kernel Panics gelandet sind: 1.) gfx.io holen 2.) auf Integrated Only setzen 3.) cody@codykrieger.com einen Kaffee kaufen

Antworten (5)

Sie können die diskrete Grafikkarte mit den nächsten Schritten dauerhaft deaktivieren:

AKTUALISIEREN! Versuchen Sie, die NVRAM-Variable im Einzelbenutzermodus zu bearbeiten

Das in den Schritten 1-3 beschriebene Verfahren funktionierte bei mir bis macOS Sierra, aber mit dem Upgrade auf High Sierra bekam ich einen rosa/rötlichen Bildschirm und konnte nicht in den Wiederherstellungsmodus wechseln, um Schritt 3 zu wiederholen, wie ich es tun musste frühere Upgrades. Bei der Suche im Internet bin ich auf dieses GitHub -Problem gestoßen, in dem erklärt wird, dass Sie möglicherweise die Schritte 1 und 2 durch den folgenden Befehl ersetzen können, den Sie im Einzelbenutzermodus ausführen können (Booten durch Drücken von cmd+ s):

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

1. Bereiten Sie einen bootfähigen USB-Stick mit einem Nicht-GUI-Linux vor

1.1 ArchLinux-ISO herunterladen

  • Sie benötigen dafür einen funktionierenden Computer und ein Ersatz-CD/DVD/USB-Laufwerk.
  • Laden Sie das neueste Arch Linux ISO-Image herunter .
  • Dann können Sie diese ISO entweder einfach auf CD/DVD brennen (die später entweder in MBPs SuperDrive oder ein externes DVD-Laufwerk eingelegt werden kann, das über zwei USB-Kabel mit MBP verbunden ist) oder einen bootfähigen USB erstellen .

1.2 Erstellen des bootfähigen USB mit der .iso

  • Zuerst müssen Sie das USB-Gerät identifizieren.
  • Öffnen Sie /Applications/Utilities/Terminal in MacOS und listen Sie alle Speichergeräte auf:

    diskutil list

    Ihr USB-Gerät wird als so etwas wie angezeigt /dev/disk2 (external, physical). Stellen Sie sicher, dass dies das Gerät ist, das Sie löschen möchten, indem Sie seinen Namen und seine Größe überprüfen, und verwenden Sie dann seine Kennung für die folgenden Befehle anstelle von /dev/diskX.

  • Ein USB-Gerät wird normalerweise in macOS automatisch gemountet, und Sie müssen es unmounten (nicht auswerfen), bevor Sie mit dd blockweise darauf schreiben:

    diskutil unmountDisk /dev/diskX

  • Kopieren Sie nun die ISO-Image-Datei auf das Gerät. Der dd-Befehl ähnelt seinem Linux-Gegenstück, beachten Sie jedoch das 'r' vor 'disk' für den Raw-Modus, wodurch die Übertragung viel schneller wird:

    sudo dd if=path/to/arch.iso of=/dev/rdiskX bs=1m

    Nach Abschluss kann sich macOS beschweren, dass „Die eingelegte Festplatte von diesem Computer nicht gelesen werden konnte“. Wählen Sie „Auswerfen“. Das USB-Gerät ist bootfähig.

2. Verwenden Sie Linux, um EFI-Variablen zu ändern

2.1 Booten Sie darauf

  • Legen Sie diese CD/DVD/USB in das Macbook Pro ein und halten Sie beim Booten die Wahltaste (alt) gedrückt.
  • Wählen Sie „EFI-Boot“ (das ist Ihr bootfähiges Installationsmedium).
  • Wenn das Menü angezeigt wird, drücken Sie die Taste „e“, um die GRUB-Optionen des Arch Linux archiso x86_64 UEFI-CD-Menüeintrags zu bearbeiten, während er auf dem Hauptbildschirm ausgewählt ist, fügen Sie ihn nomodesetam Ende dieser Zeile hinzu und drücken Sie die Eingabetaste.
  • Wenn alles richtig gemacht ist, befinden Sie sich an der Linux-Konsole! (Es dauert einige Zeit, also seien Sie geduldig und warten Sie auf die Eingabeaufforderung)

2.2 Vorhandene EFI-Variablen löschen

Sieht so aus, als wäre das efivarfs-Dateisystem standardmäßig gemountet! Sie können also bereits dieses Verzeichnis durchsuchen cd /sys/firmware/efi/efivarsund lssehen, ob es eine gpu-power-prefs-...Variable gibt (wobei ... die UUID dieser Variable ist).

  • Wenn es eine solche Variable gibt, ist es besser, sie mit rm zu entfernen.

    rm gpu-power-prefs-…

  • Wenn Sie beim Versuch, die Meldung „Vorgang nicht zulässig“ zu rmerhalten, bedeutet dies, dass efivarfs als schreibgeschützt gemountet wurde und Sie es erneut mit Lese-/Schreibberechtigungen mounten und es erneut versuchen müssen:

    cd /
    umount /sys/firmware/efi/efivars/
    mount -t efivarfs rw /sys/firmware/efi/efivars/
    cd /sys/firmware/efi/efivars/
    rm gpu-power-prefs-…

  • Wenn dies ebenfalls fehlschlägt (Sie können die Datei immer noch nicht löschen), verwenden Sie den chattrBefehl, um die Unveränderlichkeit der Datei zu deaktivieren, und löschen Sie dann die Datei:

    chattr -i "gpu-power-prefs-…”
    rm gpu-power-prefs-…

2.3 Erstellen Sie eine neue gpu-power-prefs-…-Datei

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

2.4 Fügen Sie der gpu-power-prefs-…-Datei Unveränderlichkeit hinzu

Dieser chattrBefehl soll eine Datei sperren, um sie nur für "Superuser" zugänglich zu machen - und damit Ihr EFI beim Booten keine Chance hat, Ihre Variable gpu-power-prefs-... zu vermasseln

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

2.5 Unmounten Sie efivars und starten Sie neu

Wechseln Sie in das Stammverzeichnis, um efivars auszuhängen:

cd /
umount /sys/firmware/efi/efivars/

Garantiert, dass Ihre EFI-Variablen in das efivarfs-Dateisystem geleert werden. Bitte unmounten Sie es vor dem Neustart sicher.

reboot

3 AMD-/NVIDIA-Kexte entfernen

Hinweis : Möglicherweise müssen Sie dies jedes Mal tun, wenn Sie Ihr Betriebssystem aktualisieren, da es diese Kexts normalerweise neu generiert. Möglicherweise möchten Sie diese Antwort als Referenz markieren, damit sie bei Bedarf von einem anderen Gerät aus zugänglich ist.

Nach dem Deaktivieren der dGPU mit Arch blieb der normale Start auf halbem Weg hängen, aber der sichere Start funktionierte.

3.1 Verschieben Sie AMD-/NVIDIA-kext-Dateien in ein Backup-Verzeichnis

Entfernen Sie alle Kext-Dateien von AMD (oder NVIDIA, je nach Karte) im Terminal in der Wiederherstellungskonsole. Der Versuch, sie im Einzelbenutzermodus zu entfernen, führt nur zu Sandbox-Fehlern, also tun Sie es nicht im Einzelbenutzermodus! (diejenige, die Sie mit cmd+ booten s).

  • Wenn Sie FileVault haben, entsperren Sie es zuerst.
  • Booten Sie direkt in die Wiederherstellung ( cmd+ ). rWenn dies fehlschlägt, wiederholen Sie Schritt 2 und versuchen Sie es erneut (dGPU könnte nach dem Booten des Betriebssystems mit AMD / NVIDIA-Kexts wieder aktiv werden).
  • Terminal starten (Diese Befehle gelten für AMD. Wenn Sie NVIDIA haben, ändern Sie dies entsprechend)

    diskutil cs list(find Logical Volume UUID: letztes Element)
    diskutil coreStorage unlockVolume UUID(UUID: vom vorherigen Befehl)
    cd /Volumes/Macintosh\ HD
    mkdir AMD_Kexts
    mv System/Library/Extensions/AMD*.* AMD_Kexts/
    reboot

Ich habe das Verfahren in diesem Link gefunden , wo Sie die Zuordnung der verschiedenen Abschnitte und einen Diskussionsthread zum Thema lesen können.

Ich habe es selbst auf einem MacBook Pro von Anfang 2011 mit einer defekten diskreten Grafikkarte ausprobiert, die selbst mit dem Überhitzungstrick nicht booten konnte, und am Ende hatte ich einen voll funktionsfähigen Computer!

Leider habe ich auf meinem MacBook Pro Mid 6,2-Modell von Mitte 2010 in Kombination mit MacOS High Sierra mit Schritt 3 keinen Erfolg gehabt. Wenn ich diskutil cs listes betrete, wird zurückgegeben No CoreStorage logical volume groups found. Die diskrete GPU bleibt aktiviert. Irgendeine Idee?
Ich habe gerade herausgefunden, dass ich die diskutilBefehle einfach überspringen kann, und es ist mir gelungen, die AMD-Dateien zu entfernen. Leider wird immer noch die diskrete GPU verwendet ...
@Taco, wenn Sie neu gestartet haben und es nicht funktioniert hat, müssen Sie möglicherweise Schritt 2 wiederholen. Stellen Sie außerdem sicher, dass Ihre diskrete Karte eine AMD ist, einige Modelle montieren eine NVIDIA. In diesem Fall sollten Sie die Kext-Dateien für diese Karte verschieben.
Ja, Sie haben Recht, dieser Mac hat eine NVIDIA-Karte und keine AMD (ich habe nur die Schritte befolgt, ohne es zu merken). Ich konnte es jedoch immer noch nicht zum Laufen bringen, aber mit einer anderen Lösung, die für diesen speziellen Laptop vorgeschlagen wurde, hat es funktioniert !! MBPMid2010_GPUFix . Danke für Ihre Hilfe.
Einige wichtige Informationen, wenn Sie eine NVidia- statt einer AMD-Karte haben. Die Anweisungen sind korrekt, aber die folgenden Kexts müssen entfernt werden: CUDA.kext GeForce.kext GeForce7xxxGLDriver.bundle GeForceGA.plugin GeForceGLDriver.bundle GeForceVADriver.bundle NVDANV40Hal.kext NVDANV50Hal.kext NVDAResman.kext NVSMU.kext Getestet auf einem MBP Anfang 2011 läuft 10.12.6.
Ich stecke bei 2.3 Create a new gpu-power-prefs-… file fest , ich kann die Datei nicht erstellen (Ungültiges Argument, vom Googeln bedeutet es ein Berechtigungsproblem). Rat?
@wiradikusuma, in 2.2 und 2.4 haben Sie Anweisungen zum Überprüfen und Ändern von Berechtigungen. Wenn Sie keine zusätzlichen Daten angeben (z. B. Berechtigungen des Verzeichnisses), ist es schwierig zu helfen.
@fnieto-FernandoNieto Ich habe chattr -idie Datei erstellt (sonst kann ich es nicht rm), aber ich kann die Datei nicht neu erstellen. Soll ich chattr -idas enthaltende Verzeichnis? (Es wird in den obigen Schritten nicht erwähnt)
Das hat bei mir super funktioniert (Anfang 2011). Vielen Dank.
@fnieto-FernandoNieto Vielen Dank für die Aktualisierung der Schritte. Wenn ich das tue chattr -i ., heißt es: "chattr: Unangemessenes ioctl für Gerät beim Lesen von Flags auf ". -- Die Verwendung des absoluten Pfads funktioniert auch nicht. Zu Ihrer Information, die Datei wird erstellt, aber die Größe ist 0.
@wiradikusuma bitte lass es mich wissen, wenn du eine Lösung findest, um die Schritte zu aktualisieren und anderen Leuten zu helfen.
@fnieto-FernandoNieto Welcher Überhitzungstrick?
@huyz, wenn Sie Ihr Macbook Pro überhitzen lassen (z. B. in einer geschlossenen Tasche, die eine ordnungsgemäße Belüftung verhindert), wird es heruntergefahren. Wenn Sie es sofort danach starten, wird es mit der separaten Grafikkarte gestartet.
@fnieto-FernandoNieto hmmm, meintest du „es wird mit der integrierten Grafikkarte booten“? Andernfalls scheint Ihr Kommentar mit dem Text in Ihrer Antwort in Konflikt zu geraten
@huyz, ja! das tut mir leid.
@fnieto-FernandoNieto Das ist ein guter Trick zu wissen, da ich oft nicht booten kann. Ich glaube nicht, dass das allgemein bekannt ist; Ich habe es nirgendwo anders erwähnt gesehen. Danke!
Ich brauchte 3 Versuche (achte darauf, Schritt 2 zu wiederholen), um in den Wiederherstellungsmodus zu gelangen, ohne dass es einfriert, aber es funktionierte schließlich Mitte 2012 für mein Macbook Retina Pro (mit Nvidia-Karte). So danke!
@huyz, der beste Weg, Ihre Dankbarkeit auszudrücken, besteht darin, die Antwort positiv zu bewerten, damit sie für andere Personen mit demselben Problem leichter zu finden ist. Übrigens, haben Sie versucht, die NVRAM-Variable im Einzelbenutzermodus festzulegen? hat es bei dir nicht funktioniert?
@fnieto-FernandoNieto natürlich habe ich deine Antwort bereits positiv bewertet. Der Hauptpunkt meines Kommentars war, Informationen über mein MacBook und meinen Prozess hinzuzufügen. Ich habe den Einzelbenutzermodus nicht ausprobiert, da Sie sagten, es nicht zu tun :)
@huyz danke! Es gibt ein Update am Anfang der Antwort für eine Alternative, mit der Sie die Schritte 1 und 2 überspringen können, wodurch die Lösung viel schneller wird.
@fnieto-FernandoNieto Entschuldigung, ich hätte sagen sollen: Ich habe den Einzelbenutzermodus nicht ausprobiert, weil ich auf El Capitan bin und nicht auf High Sierra
Ich habe ein 15-Zoll-MacBook Retina von Anfang 2013, das ich schon in den Müll werfen wollte, bevor ich diesen Beitrag gefunden habe! Ich konnte es nicht einmal mehr durch einen Start ohne GPU-Panik schaffen. Nach diesem Fix bisher (> 24 Stunden) nicht ein einziger. Erstaunlich! Danke!
Arbeitete für mein MacBookPro Ende 2011. Ich habe vor dieser Lösung viele Dinge (Updates und Einzelbenutzerbefehle) ausprobiert. Habe gerade den nvram-Befehl verwendet und bin zu Schritt 3 gesprungen. Funktioniert wie ein Zauber. Vielen Dank! Meinen Tag gerettet...
OMFG. Also, für diejenigen unter Ihnen, die eine tote GPU und ein durchgebranntes Display haben, sodass Sie nicht in die Wiederherstellung gelangen können: Für Schritt drei verbinden Sie einfach Ihr MBP im Zielfestplattenmodus mit einem anderen Mac, um Schritt 3 auszuführen! Yay. Dieser Mac ist NICHT tot.
@huyz musstest du bei der Retina + NVIDIA Kombination etwas anders machen? Ich bin im selben Boot
Anscheinend wird dieses Problem auch durch den Kondensator neben der diskreten GPU verursacht, nicht durch die dGPU selbst youtube.com/watch?v=DzcgT_fiVTA
@cbartondock nicht, dass ich mich erinnere
Für alle, die einen 2013er Mac Pro Retina mit einer Nvidia dGPU haben, habe ich festgestellt, dass die dGPU nicht deaktiviert wurde, wenn ich nur die NVD * GeF*.*-Dateien, wie von @sporker vorgeschlagen, dann funktionierte die Maschine, aber a) konnte die Helligkeit nicht ändern und b) dimmte das Display nicht, wenn es geschlossen war. Was bei mir funktioniert hat, war das Verschieben der GeF-Dateien und nicht der NVD-Dateien. Die nvram-Methode hat bei mir auch nicht funktioniert und ich musste "fa4ce28d" durch "000fa4ce" ersetzen, aber ansonsten funktionierte die Archlinux-Methode. Ich kann Ihnen gar nicht sagen, wie dankbar ich für diesen Beitrag bin.
Die Routine von @cbartondock ist auf macOS Mojave, auf MBP 2013 spät, mit einer Nvidia-GPU unterbrochen. Der Startfortschrittsbalken bleibt nach dem Vorgang „nvram xxxx“ im Einzelbenutzermodus für immer bei 75 % hängen und entfernt im Wiederherstellungsmodus nur „GeF*.*“. Die folgende Operation behebt das Problem: csrutil disable nvram boot-args="nv_disable=1 $(nvram boot-args 2>/dev/null | cut -f 2-)" nvram fa4ce28d-b62f-4c99-9cc3-6815686e30f9:gpu -power-prefs=%01%00%00%00 (nicht 000fa4ce!) csrutil aktivieren. Das Notebook startet, aber: a) konnte die Helligkeit nicht ändern und b) hat das Display im geschlossenen Zustand nicht gedimmt
@MasterBeta Vielen Dank für einen solchen Kommentar. Ich habe ein Macbook Retina Mitte 2012 (A1398), das auf macOS Mojave läuft und dessen NVidia GT650M (fast) tot ist. Hat es für Sie funktioniert, indem Sie die Anweisungen in diesem Beitrag und Ihren Kommentar befolgt haben? Hättest du irgendwelche Vorschläge, bevor du anfängst? Danke noch einmal.
@ user1823280 Ja, es funktioniert bei mir. Aber es ist keine perfekte Lösung: a) konnte die Helligkeit nicht ändern und b) hat das Display im geschlossenen Zustand nicht gedimmt c) externes Display wird nicht unterstützt. Mein Vorschlag ist also, Ihr System (vor Mojave) herunterzustufen und den Anweisungen in diesem Beitrag zu folgen, die anscheinend nicht die durch meine Routine verursachten Probleme haben. (Ich habe meinen Mac repariert, indem ich die GPU ersetzt habe, daher ist mein Vorschlag nicht verifiziert. :))
@MasterBeta Danke für deine Antwort, danke. Darf ich fragen, wo du eine neue GPU gefunden hast?
@ user1823280 Ein Drittanbieter hat meinen Mac repariert. Ich bin mir nicht sicher, woher die Ersatz-GPU kommt.
Danke schön! Ich kann überprüfen, ob das Bearbeiten des NVRAM im Einzelbenutzermodus und das Entfernen der AMD-Grafikerweiterung aus dem Reparaturmodus einwandfrei funktionieren (Sie können den abgesicherten Modus für letzteres nicht verwenden, da das Betriebssystem dies nicht zulässt), wodurch die Linux-Schritte unnötig werden. Dies funktionierte in meinem Anfang 2011 reparierten MBP mit ersetzter AMD Radeon 6750M-Grafik, das etwa 18 Monate nach der Reparatur, nachdem ich einige Monate lang einen ausgefallenen Lüfter hatte, bis ich ihn ersetzen konnte, wieder Symptome des Aufgebens zeigte. Danke nochmal!
Versuchte zuerst nur den Befehl nvram und das Verschieben von Kexts. Es hat funktioniert, aber ich hatte die folgenden Probleme: schreckliche Leistung in Finder und grafikintensiven Apps (wie Atom) (unter 10.9), Hintergrundbeleuchtung weigert sich, sich auszuschalten, wenn der Deckel geschlossen ist, Bildschirmhelligkeit kann nicht geändert werden, f.lux funktioniert nicht, gfxCardStatus wird angezeigt falscher Status, Bildschirmtastatur wird nicht gerendert (auf 10.6). Das Ausführen der Schritte 1. und 2., um die Efivars zu ändern, hat all diese Probleme behoben! Danke schön!
Mit einer NVIDIA dGPU musste ich nur NVD*.kext-Dateien verschieben. Ich habe dann auch die Kext-Caches in (wieder) verschoben /System/Library/Caches/com.apple.kext.cachesund dann die Caches mit neu erstellt touch /System/Library/Extensions. Mit deaktiviertem SIP und den Anweisungen auf dem Bildschirm zum Mounten /mit Lese-/Schreibzugriff konnte ich alles im Einzelbenutzermodus ausführen: Kext-Dateien verschieben und die nvram- gpu-power-prefsVariable festlegen. Vielen Dank für diese Methode, sie hat dGPU beim Booten erfolgreich deaktiviert, keine Probleme mit Ruhezustand, Helligkeit usw. MacBook Pro (Retina, Mitte 2012); 10.12.6
MacBook Pro (Retina, Mitte 2012) 10.15.4 funktioniert, wenn die Anweisungen von @user2561747 befolgt werden. Zuerst SIP im Wiederherstellungsmodus deaktivieren (cmd + r beim Booten): csrutil disable Dann in den Einzelbenutzermodus neu starten (cmd + s) und / als Lese-/Schreibzugriff einhängen: /sbin/mount -uw / Dann NVD*.kext-Dateien verschieben I Ich habe den Verschluss nicht entfernt, aber ich habe ihn neu aufgebaut. nicht sicher, ob es eine Rolle spielte oder nicht. Leider ist die Helligkeitssteuerung derzeit nicht mit Funktionstasten verfügbar, aber dies könnte hilfreich sein: github.com/TankTheFrank/NativeDisplayBrightness
@Matthew wacht es richtig aus dem Schlaf auf? Ich habe von 10.12.6 auf 10.15.7 aktualisiert und jetzt funktionieren sowohl Helligkeit als auch Sleep/Wake nicht mehr. Insbesondere denke ich, dass es beim Aufwachen aus dem Ruhezustand zurück zu dGPU wechselt, was für mich zu einem schwarzen Bildschirm führt.
@user2561747 meiner ist schon lange nicht mehr richtig aufgewacht. Helligkeitsregler funktionieren auch nicht.
@fnieto danke. Ich habe eine neue Frage speziell zum Wake/Brightness-Problem nach dem Upgrade des Betriebssystems gestellt: apple.stackexchange.com/q/421083/203559

Ihr Dilemma

Ich habe volles Verständnis für Ihren Wunsch "Akku sparen und Wärme reduzieren, ohne die Geräuschkosten zu bezahlen", die diskrete Grafikkarte in einem MacBook Pro zu verwenden.

Warnung

Bevor Sie irgendetwas tun, das Ihr Display deaktiviert, stellen Sie bitte sicher, dass Sie sich mit SSH bei Ihrem MacBook Pro anmelden können, damit Sie Ihre Handarbeit rückgängig machen können. Während die Bildschirmfreigabe mit deaktivierten Grafikkarten wahrscheinlich bei einer Standardauflösung funktioniert, würde ich meinen Computer nicht darauf verwetten.

Antworten

Was passiert, wenn ich die separate nVidia-Grafikkarte von EFI dauerhaft deaktiviere? Wird Mac OS denken, dass die integrierte GPU installiert ist, und mich mehrere Monitore damit verwenden lassen?

Sie verlieren die Möglichkeit, einen externen Monitor (unter jedem Betriebssystem) zu verwenden. Der/die externe(n) Grafikport(s) sind mit dem diskreten Grafikchip verdrahtet.

Mein eigenes MacBook Pro 2011 läuft selbst unter Last mit stabilen 60 Grad mit minimalem Lüftergeräusch bei Verwendung der eingebauten Intel-Grafik und Spikes auf volle Lüfter (im Bereich von 4000 bis 6000 U / min) unter Last mit dem diskreten 6750. Das Problem ist echt. Auch ich wollte nur die eingebaute Grafik nutzen und einen externen Monitor ansteuern.

Auf keinen Fall, kein wie.

Stimmt es, dass dieselbe EFI die integrierte GPU nicht einmal anderen Betriebssystemen als Mac-Betriebssystemen anzeigt und Sie sie irgendwie austricksen müssen, um zu glauben, dass es sich um Mac OS handelt?

Ja, es ist wahr. Die Intel-GPU wird vom EFI des MacBook Pro 11,3 ausgeschaltet, wenn Sie etwas anderes als Mac OS X booten. Sie haben vier Möglichkeiten, wenn Sie den integrierten Intel-Chip unter einem alternativen Betriebssystem verwenden möchten:

  1. rEFInd Version 0.10.0 oder höher (empfohlen): http://www.rodsbooks.com/refind

Neuere Versionen von rEFInd haben den „apple_set_os“-Hack eingebaut. Sie können es aktivieren, indem Sie die Option spoof_osx_version in Ihrer refind.conf setzen.

  1. apple_set_os.efi: https://github.com/0xbb/apple_set_os.efi

  2. ein gepatchtes GRUB: https://lists.gnu.org/archive/html/grub-devel/2013-12/msg00442.html https://wiki.archlinux.org/index.php/MacBookPro11,x#Getting_the_integrated_intel_card_to_work_on_11.2C3

  3. ein gepatchter Kernel: https://www.marc.info/?l=grub-deavel&m=141586614924917&w=2

Achten Sie darauf, im Voraus zu planen. Wenn Sie sich nicht vorbereiten, werden Sie mit einer heruntergefahrenen integrierten Grafikkarte und einem schwarzen Bildschirm konfrontiert. Natürlich können Sie jederzeit zurückgehen und Mac OS X booten und neu starten.

Die einfachste der oben genannten Möglichkeiten wäre Nummer zwei - um das Apple EFI zu ersetzen. Leider ist es dasjenige, das Sie zu einem späteren Zeitpunkt möglicherweise überhaupt nicht mehr hochfahren lässt. Apple mag es nicht, wenn Leute mit EFI spielen und behält sich das Recht vor, Ihr Gerät dafür zu mauern. Wenn Sie Apple Care hatten und sich noch in der Garantiezeit befanden, finden Sie möglicherweise irgendwo eine Schulter, an der Sie sich ausweinen können. Könnte. Wenn Sie EFI ändern, gehen Sie auch Sicherheitsrisiken ein, dh Sie können es einfacher machen, Ihren Computer zu hacken. Sie müssen in der Lage sein, auf das neueste EFI zu aktualisieren, das Ihren Patch entfernen würde.

Option eins, rEFInd stellt sich zwischen Boot und EFI, was einen erheblichen Spielraum lässt, dass etwas schief geht und Sie mit einem Ziegelstein und einer langen, harten Spur zurück zu einem funktionierenden Computer zurückgelassen werden. Wie ernst sind diese Probleme? Viele MacBook Pro-Besitzer haben ihre Festplatte durch rEFInd verloren:

Zahlreiche rEFIt-Fehlerberichte weisen auf Datenträgerbeschädigungsprobleme auf Datenträgern über etwa 500 GiB hin. Ich empfehle dringend, dass Sie sudo bless --infoden Status Ihrer Installation nicht überprüfen, wenn Sie einen solchen Datenträger haben oder selbst wenn Sie vermuten, dass Sie einen solchen Datenträger haben . (Ich habe Advanced Format-Festplatten mit einer Größe von nur 320 GB gesehen.)

Option drei ist relativ einfach. Das Patchen von Grub ist ein Prozess, mit dem jeder frühe Hackintosh-Besitzer ziemlich vertraut ist. Das Patchen von Grub funktioniert und kann leicht rückgängig gemacht werden, da die Änderungen nicht auf Firmware-Ebene vorgenommen werden. Wenn Sie Grub konservativ patchen, wird der zusätzliche Grub-Code nur aktiviert, indem Sie Option/Alt beim Booten gedrückt halten .

Fazit

Wenn Sie Ihren Computer lieber verwenden als ihn zu reparieren, sieht Cody Kriegers gfxCardStatus in seiner sofort einsatzbereiten Konfiguration immer attraktiver aus. Wenn Sie wirklich gfxCardStatus zum Start zwingen möchten, hat Herr Krieger an einem aufschlussreichen Gespräch teilgenommen , das zu switchGPU geführt hat. switchGPU stellt gfxCardStatus früh genug entweder auf diskrete oder integrierte Grafik ein, sodass Sie auf integrierter Grafik laufen können, wenn Ihre diskrete GPU andernfalls überhitzen und abstürzen würde. gfxCardStatus arbeitet weiterhin normal (dh Sie können nach dem Booten mit dem gfxCardStatus-Menüelement zurück zur diskreten GPU wechseln). Es gibt keinen Grund, switchGPU zu installieren, es sei denn, Sie haben ernsthafte Hardwareproblememit Ihrer diskreten GPU, was bedeutet, dass Sie sie die ganze Zeit ausgeschaltet lassen müssen.

Koda

Wenn ich darüber nachdenke, ist meine eigene Situation mit dem integrierten AMD 6750 schlimm genug (so heiß und laut, selbst nach thermischer Neuverklebung), dass ich das erweiterte Garantiereparaturprogramm von Apple für 2011 MacBook Pro mit AMD-Grafik in Anspruch nehmen werde. Marco Arment hatte wohl Recht, sein 2011er 2,2 GHz MBP mit 6750 gegen die 2,0 GHz Version mit 6490 zu tauschen . Während ich damals überlegte, dasselbe zu tun, hätte ich mein MBP nach Übersee schicken müssen, um es zu ändern. Leider scheinen die Retina MacBook Pros weiterhin unter den gleichen Hitze- und Geräuschproblemen zu leiden . Das 2013er MacBook Pro meiner Freundin mit nur integrierter Grafik verhält sich viel besser.

Aufgrund von Hitze- und Geräuschproblemen bei Quad-Core-MBP-Workstations habe ich aufgegeben und zwei Mac Pros (einen 2006 und einen 2009) gekauft und die CPUs auf acht Kerne bzw. sechs Kerne aufgerüstet. Das 2006 mit installiertem Apple AMD 5870 ist fast lautlos (viel leiser als das 2009) und multitaskingfähiger als das MBP 15". Die beiden silbernen Türme (Heim und Büro) kosten zusammen weniger als ein einzelnes neues MacBook Pro. Im Moment bin ich Ausführen des 2011 MBP 15 "auf integrierter Grafik nur als Mitbringsel (kein externer Monitor).


Diese Lösung zielt auf das 15-Zoll-Retina-Modell von MBP 2014 ab. Mein eigenes Interesse an der Deaktivierung der diskreten GPU galt einem 17-Zoll-Modell von MBP 2011. Da Mojave für eine wichtige Software für mich erforderlich war, habe ich kürzlich erneut die Deaktivierung der diskreten GPU überprüft. gfxCardStatus funktioniert nicht in Mojave (es zeigt Informationen an, deaktiviert aber die diskrete GPU nicht zuverlässig).

Das Setzen einer NVRAM-Variablen hat funktioniert ( nvram fa4ce28d-b62f-4c99-9cc3-6815686e30f9:gpu-power-prefs=%01%00%00%00). Eine NVRAM-Variable aktivierte auch den offenen Clamshell-Modus auf einem MBP 16 " , den ich hier zum Testen habe. Das Festlegen einer NVRAM-Variablen scheint der beste und sicherste Weg zu sein, um schwerwiegende Grafikkartenprobleme auf MacBooks zu lösen.

Die vollständige NVRAM-Lösung für die MBP 2011-Familie wurde von Luis Puerto sorgfältig untersucht und dokumentiert . Ich habe diese Lösung erfolgreich ausgeführt. Für den Fall, dass die Website von Luis nicht erreichbar ist, finden Sie auf AskDifferent einen ähnlichen, aber wortreicheren Beitrag .

Vielen Dank für diese ausführliche Erklärung, die auf die Risiken hinweist. Wäre ein drahtloser Monitor eine Option, um externe Geräte auch ohne GPU zu verwenden? Gibt es Modelle, die Mac-freundlich sind?
Danke für deine Frage, Reim. Ich habe keine drahtlosen Monitorlösungen ausprobiert. Fünf Jahre später verwende ich immer noch drei 2011 MBP mit AMD 6750 erfolgreich mit gfxCardStatus. Ich habe mindestens ein und vielleicht zwei Motherboards über das erweiterte Garantieprogramm von Apple ersetzt, kurz nachdem ich die obige Erklärung geschrieben hatte. Ich betreibe mein MBP 2011 nicht sehr oft auf einer diskreten Karte, was zu ihrer Langlebigkeit beigetragen hat. Natürlich habe ich in der Zwischenzeit Festplatten (einfach) aufgerüstet und Tastaturen gewechselt. Letzte MBP, die relativ einfach und kostengünstig gewartet werden können.
Danke für deine Antwort! Ich evaluiere derzeit einige Optionen, wie z. B. das Duplizieren über Chromecast oder die Verwendung von AirPlay mit einem AppleTV-VGA/HDMI-Adapter.
Ich habe meine Antwort oben aktualisiert, um meine jüngsten Erfahrungen mit der Lösung von Grafikproblemen auf MacBook Pros mit NVRAM-Variablen widerzuspiegeln. Ich würde empfehlen, dass @reim nach einer NVRAM-Lösung sucht.

Ihr geplanter Eingriff ist möglich. Ihr geplanter Eingriff ist nicht so schwierig. Ihr geplanter Eingriff ist nicht die beste Option.

Warum diese Route suboptimal ist

MacBook Pros werden und müssen auf eine diskrete GPU (dGPU) umsteigen, sobald ein externes Display angeschlossen ist. Daher nimmt eine installierte, aber deaktivierte dGPU die Möglichkeit, einen externen Monitor mit dieser dGPU zu verwenden.

Es gibt jetzt andere Optionen, wie die Verwendung von USB-Lösungen oder externen GPUs (eGPU). Wenn Sie jedoch die gesuchte EFI-Variable einstellen, wird die direkte Ausgabe mit einem Kabel vom Thunderbolt-Anschluss zu einem externen Monitor definitiv deaktiviert.

Wie können Sie die diskrete GPU von EFI deaktivieren?

Der Befehl, den Sie in Ihrem Update erwähnt haben, ist fast korrekt. Es fehlt nur die richtige Kennung:

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

Dadurch wird die entsprechende EFI-Variable in das NVRAM geschrieben und das MacBook Pro gezwungen, immer direkt in die integrierte GPU (iGPU) zu booten. Die Kennung gilt nicht nur für AMD dGPUs, sondern für alle dGPUs. Es wurde bestätigt, dass dies mit NVidia-Chips gleichermaßen funktioniert. Es ist auch leicht umkehrbar mit einem NVRAM-Reset.

Nachteile dieser Strategie in dieser Situation

Und jetzt die Kehrseite: Es gibt möglicherweise zwei kleine Probleme damit:

  1. Nachdem Sie diese NVRAM-Einstellungen erzwungen haben, wird macOS möglicherweise "ein wenig verwirrt". Der Chip ist noch da, verkabelt und mit Strom versorgt.

  2. Um dies zum Booten zu bringen, müssen Sie möglicherweise die Grafiktreiber für Ihre dGPU deaktivieren. Oder zumindest der eine Kext, der die eigentliche Grafikumschaltung verwaltet. Der Startvorgang kann andernfalls hängen bleiben, wenn versucht wird, die GPU-Umschaltung zu initiieren.

Beide neu aufgetretenen Probleme können behoben werden, indem entweder alle NVidia-Kexte /System/Library/Extensionsan einen sicheren Sicherungsort verschoben werden. Dadurch wird der Computer in den beschleunigten iGPU-Modus gezwungen. Das Setzen einer EFI-Variablen reicht jedoch möglicherweise nicht aus, um eine vernünftige Energieverwaltung zu erhalten. Dafür müssen Sie wahrscheinlich die NVidia-Kexts zurückschieben, mit Ausnahme derjenigen, die für die Grafikumschaltung verantwortlich sind. Andernfalls wird die dGPU unnötig stark beansprucht. Bei "Volllast" (umgerechnet >~60°C) läuft es zumindest im Leerlauf.

Dieser Hochleistungs-Leerlauf wird möglicherweise die große Niederlage für Ihren Plan sein, Lüftergeräusche zu reduzieren und die Batterie zu erhöhen. Randnotiz aus der Literatur: Es sollte eine allgemein anerkannte Wahrheit sein, dass das Verschieben von Kexts auch erfordert, dass Sie SIP auf neueren Versionen von OS X/macOS deaktivieren, solange Sie solche Dinge verschieben.

Allgemeine Strategie, um die Kexte zum Experimentieren zu finden: Booten Sie ohne die NVRAM-Variable in einem Standardsystem (mit 'Standard'-NVidia-Kexts). Beachten Sie dann, mit welchen Erweiterungen Ihr System tatsächlich geladen wird kextstat. Starten Sie dann mit zuvor geladenen NVidia/Geforce-Kexts neu, die entfernt und der Hack aktiviert wurden. Holen Sie sich einen detaillierten Sensormonitor (iStatMenus, TGPro usw.) und beobachten Sie die Temperatur auf und um die GPU. Laden Sie nun nacheinander die relevanten Kexts mit zurück in den Kernel sudo kextload /path-to/NVDA***.kext. Warten Sie jeweils ein bis zwei Minuten.

Da die Methode dieses Beitrags – oder der ebenso gültige, aber laaange Weg: Manipulieren von EFIvars in Linux – NVRAM ist, wird es sauber zurückgesetzt, wenn Sie einen SMC/NVRAM-Reset durchführen. Das NVRAM-Hacking ist eigentlich der einzige Teil dieses Beitrags, der Ihnen mit Sicherheit keine großen Probleme bereiten wird.

Durch diesen NVRAM-Reset wird ein minimaler Satz von Werkseinstellungen für EFI-Variablen/NVRAM wiederhergestellt. Diese Werkseinstellung wird nicht angetastet.

Dies ist beliebig oft möglich.

Unter Linux ist das Treibersystem viel besser dokumentiert und imho sauberer implementiert. Es gibt viele Möglichkeiten, dies mit oder beim Booten in Linux zu erreichen. Und ein Linux (ob unter Beachtung dieser NVRAM/EFIvars-Einstellung oder durch andere Methoden) wird Ihnen viel weniger Probleme mit Treibern bereiten (wer hätte das gedacht). Für andere Betriebssysteme, wie Microsoft Windows, habe ich keine Daten.

Um es noch einmal zu wiederholen: Wenn das Betriebssystem die dGPU nicht richtig erkennt, bedeutet das nicht, dass sie ausgeschaltet ist. Dies kann zu unerwünschten thermischen Nebenwirkungen führen.

Werfen Sie einen Blick auf diese Anleitung für 2011 MacBook Pros für eine ähnliche Lösung und ein bisschen mehr Optionen; auch um den NVRAM-Hack schnell rückgängig zu machen und zu wiederholen.

Mehrere Monitore und eine deaktivierte dGPU

Abgesehen davon: gfxCardStatus (oder versuchen Sie verschiedene Versionen des Originals – sie haben unterschiedliche Optionen/Fähigkeiten…) ist meiner Meinung nach die beste Option, wenn Sie keine echten Hardwareprobleme haben. Es ist viel flexibler und Sie können innerhalb eines laufenden Systems immer noch ganz einfach auf dGPU oder externe Monitore zurückwechseln.

Ob über EFI/NVRAM oder mit gfxCardStatus: Wenn Sie einen Mac mit umschaltbarer Grafik auf „Nur integriert“ zwingen, werden externe Anzeigemodi deaktiviert , die den integrierten DisplayPort- oder Thunderbolt-Grafikausgang verwenden. Dies ist eine Folge des Hardwaredesigns, das das Anzeigesignal für externe Monitore durch die dGPU leitet. Die Verwendung nicht diskreter, sondern externer Grafikkarten könnte eine Problemumgehung für diese Einschränkung sein.

Die EFI-Einstellung zum Aktivieren auf anderen Betriebssystemen integriert

Wie inzwischen klar sein sollte, unterscheidet sich die EFI-Einstellung, mit der andere Betriebssysteme wie Linux ein umschaltbares Grafik-Setup „sehen“ können, von der oben genannten, die die dGPU deaktiviert . Winziges EFI-Programm zum Entsperren des Intel IGD auf dem Macbook Pro 11,3 für Linux und Windows:

Winziges EFI-Programm zum Entsperren des Intel IGD auf dem Macbook Pro 11,3 für Linux und Windows. Es wurde so entwickelt, dass es von unveränderten EFI-Bootloadern wie Grub, rEFInd usw. einfach per Chainloading geladen werden kann.

Das EFI des Macbook Pro 11,3-Modells schaltet die Intel-GPU aus, wenn Sie etwas anderes als Mac OS X booten. Daher ist ein kleiner Trick durch Fälschen der Betriebssystemidentifikation erforderlich, um die gesamte Hardware zugänglich zu machen.

Alle Credits gehören Andreas Heider, der diesen Hack ursprünglich entdeckt hat: https://lists.gnu.org/archive/html/grub-devel/2013-12/msg00442.html

Hinweis an mich selbst und an andere GPU-Trauernde: Der nvramBefehl mit seiner Satan-hervorrufenden Zeichenfolge muss immer dann gegeben werden, wenn etwas die inneren Einstellungen manipuliert hat, wodurch Ihr Bildschirm leer bleibt. Das ist mir schon dreimal passiert, als ich unschuldig auf die Info zu diesem Mac geklickt habe , wenn ich die automatische Umschaltung der Grafikkarte in den Einstellungen deaktiviert habe und wenn ich ein OpenGL-fähiges Tool verwendet habe. Der Zugriff im abgesicherten Modus und das Geben des Befehls gab mir den Mac zurück (und auch meinen Schlaf).
@reim Wenn Sie die „Aufruf“-Zeichenfolge häufig wiederholen müssen (sie sollte jedoch etwas beständiger sein), haben Sie das Skript überprüft, um den größten Teil dieser Eingabe zu automatisieren? apple.stackexchange.com/a/295805 ?
@LangLangC danke, den Beitrag kannte ich nicht! Im Moment fühlt es sich mehr oder weniger stabil an, aber die Helligkeitsregler sind weg, das braucht vielleicht den n^ten Kinderwagen-Reset ... Oh ja, das wird dort auch erwähnt!

Verspätete Antwort auf eine Ihrer Nebenfragen: Sie müssen wahrscheinlich die diskrete GPU aktivieren, um ein externes Display zu verwenden. Der Grund dafür sollte darin liegen, wie die GPUs und die Videoausgänge verkabelt sind.

(Ich vermute halb, halb extrapoliere ich, wie die PC-Laptop-Grafikumschalttechnologie funktioniert. Es ist keine unangemessene Annahme, dass diese Technologien auf der Arbeit der GPU-Anbieter mit Apple basieren. Dennoch: Nehmen Sie das Folgende mit einem großen Körnchen von Salz.)

Bei nVidia Optimus ist das Setup so, dass das eingebaute Display eines Laptops mit der integrierten GPU verbunden ist und der externe Displayport mit der diskreten GPU verbunden ist. Wenn Sie Dinge mit der diskreten GPU auf dem integrierten Display rendern müssen, ist die diskrete GPU der integrierten „untergeordnet“. Ein Rendering-Aufruf geht zuerst an die integrierte GPU, die ihn, wenn die diskrete GPU aktiviert ist, dorthin weiterleitet und dann das Ergebnis abruft, um es auf das Display zu übertragen.

Wenn ein externes Display angeschlossen ist, gehen Rendering-Aufrufe für dieses Display direkt an die diskrete GPU, da das die GPU ist, die ohnehin alle Ausgaben an dieses Display senden kann. Die integrierte GPU kann einfach überhaupt keine Videoausgabe an diesen Port alleine senden. Ich halte es nicht einmal für möglich, die integrierte GPU der diskreten "unterzuordnen", da dies zunächst einmal aus Designsicht im Hinblick auf die Ziele der Grafikumschalttechnologie sinnlos wäre; und selbst dann müsste die diskrete GPU aktiviert werden, was Leuten, deren Chip ausfällt, nicht helfen würde.

Interessant! Ich weiß, dass ich mit dem Lenovo ThinkPad W530 die integrierte GPU über die BIOS-Optionen einstellen konnte, und ich bin mir fast sicher, dass ich dadurch immer noch externe Monitore anschließen kann. Auch nicht 100% sicher.
Wie gesagt, ich bin mir bei dem oben Gesagten nicht 100%ig sicher, weil ich die Originalartikel nicht wiederfinde. Es ist möglich, dass die von mir beschriebene Verkabelung nicht die einzig mögliche Konfiguration ist, und die integrierte GPU des W530 kann beides handhaben. Das Macbook, bei dem Sie die diskrete GPU für eine externe ausführen müssen, würde jedoch darauf hinweisen, dass es tatsächlich so verkabelt ist, wie ich es beschrieben habe.
Sie benötigen die diskrete GPU, um ein externes Display zu verwenden. Die regelmäßige Verwendung der diskreten GPU erzeugt mehr Lüftergeräusche und verkürzt die Lebensdauer Ihres Motherboards. Ich verwende die diskrete GPU überhaupt nicht mehr. Ich benutze einen Desktop für schweres Heben, aber auf Reisen genieße ich immer noch den großen integrierten 17-Zoll-Bildschirm.

Wenn jemand immer noch nach Möglichkeiten sucht, dies zu tun, lesen Sie bitte diesen MacRumors-Forenbeitrag.

Ich habe die in diesem Forumsbeitrag erwähnten Schritte befolgt und mein 15-Zoll-MacBook Pro 2011 funktioniert perfekt, wenn es nur seine integrierte Grafik verwendet. Die wertlose AMD-Grafikkarte wurde erfolgreich deaktiviert.

https://forums.macrumors.com/threads/force-2011-macbook-pro-8-2-with-failed-amd-gpu-to-always-use-intel-integrated-gpu-efi-variable-fix. 2037591/Seite-5#post-24511780

https://forums.macrumors.com/threads/force-2011-macbook-pro-8-2-with-failed-amd-gpu-to-always-use-intel-integrated-gpu-efi-variable-fix. 2037591/

Auf welcher OSX/macOS-Version hast du das ausprobiert?