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 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 so bleibt. Ich möchte auch wissen, wie ich es bei Bedarf rückgängig machen kann.
Aktualisieren:
Die Frage ist im Grunde, ob der im GfxCardStatus-Github-Problemkommentar erwähnte Befehl korrekt ist oder nicht und wie er rückgängig gemacht werden kann, wenn er nicht funktioniert.
.
Eine Antwort darauf allein ist eine richtige Antwort, aber es ist großartig, wenn Sie mir auch sagen können:
Wenn Sie in GfxCardStatus integrierte Grafiken erzwingen, können Sie in Mac OS X (mindestens bis Yosemite) nicht mehrere Monitore verwenden (obwohl dies mit der integrierten Iris Pro möglich ist).
Wenn ich die diskrete GPU in EFI deaktiviere, kann macOS dann davon ausgehen, dass die integrierte GPU installiert ist, und kann ich damit mehrere Monitore verwenden?
Ich habe gehört, dass die gleiche EFI-Einstellung dafür verantwortlich ist, dass die integrierte GPU nicht einmal für andere Betriebssysteme als macOS angezeigt wird, und man muss es irgendwie austricksen, um zu glauben, dass es macOS ist.
Ist das wahr? Und wenn ja, wie geht das?
Antworten:
Sie können die diskrete Grafikkarte in den folgenden Schritten dauerhaft deaktivieren :
AKTUALISIEREN! Versuchen Sie, die NVRAM-Variable im Einzelbenutzermodus zu bearbeiten
Die in den Schritten 1 bis 3 beschriebene Prozedur funktionierte bis macOS Sierra, aber mit dem Upgrade auf High Sierra bekam ich einen rosafarbenen / 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 und habe erklärt, dass Sie die Schritte 1 und 2 möglicherweise durch den folgenden Befehl ersetzen können, den Sie im Einzelbenutzermodus ausführen können (Booten durch Drücken von cmd+ s):
1. Bereiten Sie ein bootfähiges USB-Laufwerk mit einem Nicht-GUI-Linux vor
1.1 Laden Sie ArchLinux ISO herunter
1.2 Erstellen des bootfähigen USB mit der .iso
Öffnen Sie / Programme / Dienstprogramme / Terminal in MacOS und listen Sie alle Speichergeräte auf:
diskutil list
Ihr USB-Gerät wird ungefähr so aussehen
/dev/disk2 (external, physical)
. Vergewissern Sie sich, 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 die Kennung für die folgenden Befehle anstelle von/dev/diskX
.Ein USB-Gerät wird in macOS normalerweise automatisch eingehängt, und Sie müssen es aushängen (nicht auswerfen), bevor Sie mit dd darauf schreiben können:
diskutil unmountDisk /dev/diskX
Kopieren Sie nun die ISO-Image-Datei auf das Gerät. Der Befehl dd ähnelt seinem Linux-Gegenstück, beachtet 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 der Fertigstellung kann macOS beschweren, dass die eingelegte Disk von diesem Computer nicht gelesen werden kann. Wählen Sie "Auswerfen". Das USB-Gerät ist bootfähig.
2. Verwenden Sie Linux, um EFI-Versionen zu ändern
2.1 Starten Sie es
nomodeset
Ende dieser Zeile hinzu und drücken Sie die Eingabetaste.2.2 Löschen Sie vorhandene EFI-Versionen
Sieht aus wie efivarfs Dateisystem standardmäßig gemountet ist! So können Sie bereits
cd /sys/firmware/efi/efivars
undls
dieses Verzeichnis zu erkunden und sehen , ob es eine istgpu-power-prefs-...
variabel (wo ... ist UUID diesen Variablen).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" erhalten
rm
, bedeutet dies, dass efivarfs als schreibgeschützt bereitgestellt wurde und Sie müssen es mit Lese- / Schreibberechtigungen erneut bereitstellen und es erneut versuchen: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),
chattr
deaktivieren Sie die Unveränderlichkeit der Datei mit dem Befehl und löschen Sie die Datei:chattr -i "gpu-power-prefs-…”
rm gpu-power-prefs-…
2.3 Erstellen Sie eine neue gpu-power-prefs-… Datei
2.4 Fügen Sie der Datei gpu-power-prefs-… Unveränderlichkeit hinzu
Dieser
chattr
Befehl soll eine Datei sperren, um sie nur für "Superuser" zugänglich zu machen - und damit Ihr EFI beim Booten unter keinen Umständen die Möglichkeit hat, Ihre gpu-power-prefs -... -Variable zu vermasseln2.5 efivars aushängen und neu starten
Wechseln Sie in das Stammverzeichnis, um die Bereitstellung von Efivars aufzuheben:
Gewährleistet, dass Ihre EFI-Variablen in das Dateisystem von efivarf geschrieben werden. Bitte hängen Sie es vor dem Neustart sicher aus.
3 Entfernen Sie AMD / NVIDIA-Kontexte
Hinweis : Möglicherweise müssen Sie dies jedes Mal tun, wenn Sie Ihr Betriebssystem aktualisieren, da diese Kontexte normalerweise neu generiert werden. Sie können diese Antwort als Referenz als Favorit speichern, damit Sie bei Bedarf von einem anderen Gerät aus darauf zugreifen können.
Nach dem Deaktivieren der dGPU mithilfe von Arch blieb der normale Systemstart zur Hälfte hängen, aber der sichere Systemstart funktioniert.
3.1 Verschieben Sie AMD / NVIDIA-Textdateien in ein Sicherungsverzeichnis
Entfernen Sie alle AMD- (oder NVIDIA-, abhängig von Ihrer Karte) Kext-Dateien im Terminal in der Wiederherstellungskonsole. Der Versuch, sie im Einzelbenutzermodus zu entfernen, führt nur zu Sandbox-Fehlern. Tun Sie dies also nicht im Einzelbenutzermodus! (die, die Sie mit cmd+ booten s).
Terminal starten (Diese Befehle gelten für AMD. Wenn Sie NVIDIA haben, ändern Sie sie entsprechend.)
diskutil cs list
(Logical Volume UUID suchen: 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 fehlerhaften diskreten Grafikkarte versucht, die trotz des Überhitzungstricks nicht gestartet werden konnte, und bin zu einem voll funktionsfähigen Computer gekommen!
quelle
Dein Dilemma
Ich bin voll und ganz mit Ihrem Wunsch einverstanden, mit der diskreten Grafikkarte in einem MacBook Pro "Batterie zu sparen und Wärme zu sparen, ohne die Geräuschkosten zu bezahlen".
Warnung
Vergewissern Sie sich, dass Sie sich mit SSH bei Ihrem MacBook Pro anmelden können, damit Sie Ihre Handarbeit rückgängig machen können, bevor Sie Maßnahmen ergreifen, die Ihre Anzeige deaktivieren . Während die Bildschirmfreigabe mit deaktivierten Grafikkarten wahrscheinlich bei einer bestimmten Standardauflösung funktioniert, würde ich meinen Computer nicht darauf wetten.
Antworten
Sie verlieren die Fähigkeit, einen externen Monitor (unter einem beliebigen Betriebssystem) zu verwenden. Die externen Grafikports sind mit dem diskreten Grafikchip verbunden.
Mein eigenes MacBook Pro 2011 läuft selbst unter Last mit minimalem Lüftergeräusch bei stabilen 60 Grad, wenn die integrierte Intel-Grafik verwendet wird, und erreicht unter Last mit dem diskreten 6750 volle Lüfter (im Bereich von 4000 bis 6000 U / min). Das Problem ist echt. Auch ich wollte nur die eingebaute Grafik verwenden und einen externen Monitor ansteuern können.
Auf keinen Fall, nicht wie.
Ja, es ist wahr. Die Intel-GPU wird vom EFI des MacBook Pro 11,3 ausgeschaltet, wenn Sie etwas anderes als Mac OS X starten. Sie haben vier Möglichkeiten, wenn Sie den integrierten Intel-Chip unter einem alternativen Betriebssystem verwenden möchten:
Seien Sie vorsichtig im Voraus zu planen. Wenn Sie sich nicht vorbereiten, sehen Sie eine heruntergefahrene integrierte Grafikkarte und einen schwarzen Bildschirm. Natürlich können Sie jederzeit Mac OS X neu starten.
Die einfachste der oben genannten Möglichkeiten wäre die Nummer zwei - als Ersatz für das Apple EFI. Leider ist dies der Fall, bei dem Sie zu einem späteren Zeitpunkt möglicherweise überhaupt nicht mehr booten können. Apple mag es nicht, wenn Leute mit EFI spielen, und behält sich das Recht vor, Ihr Gerät dafür zu blockieren. Wenn Sie Apple Care hatten und sich noch in der Garantiezeit befanden, könnten Sie irgendwo eine Schulter zum Weinen finden. Könnte. Wenn Sie EFI ändern, gehen Sie auch Sicherheitsrisiken ein , dh Sie können das Hacken Ihres Computers erleichtern. Sie müssen in der Lage sein, auf das neueste EFI zu aktualisieren, um Ihren Patch zu entfernen.
Option eins, REFInd, stellt sich zwischen Boot und EFI, wodurch ein beträchtlicher Spielraum für Fehlfunktionen bleibt und Sie einen Stein und eine lange, harte Spur zurück zu einem funktionierenden Computer haben. Wie ernst sind diese Probleme? Viele MacBook Pro-Besitzer haben ihre Festplatte durch REFInd verloren:
Option drei ist relativ einfach. Das Patchen von Grub ist ein Prozess, mit dem jeder frühe Hackintosh-Besitzer vertraut ist. Das Patchen von Grub funktioniert und ist leicht rückgängig zu machen, da die Änderungen nicht auf Firmware-Ebene vorgenommen werden. Wenn Sie grub konservativ patchen, wird der zusätzliche Grub-Code nur aktiviert, indem Sie beim Booten die Option / alt gedrückt halten .
Fazit
Wenn Sie es vorziehen, Ihren Computer zu reparieren, wird der gfxCardStatus von Cody Krieger in seiner werkseitigen Konfiguration immer attraktiver. Wenn Sie wirklich die Ausführung von gfxCardStatus erzwingen möchten, hat Herr Krieger an einem aufschlussreichen Gespräch teilgenommen , das zu einem Wechsel der GPU geführt hat. switchGPU setzt gfxCardStatus so früh auf diskrete oder integrierte Grafiken, dass Sie auf integrierten Grafiken ausgeführt werden können, wenn Ihre diskrete GPU ansonsten überhitzt und abstürzt. gfxCardStatus funktioniert weiterhin normal (dh Sie können nach dem Start über den Menüpunkt gfxCardStatus wieder auf die diskrete GPU umschalten). Es gibt keinen Grund, switchGPU zu installieren, es sei denn, Sie haben ernsthafte Hardwareprobleme mit Ihrer diskreten GPU, was bedeutet, dass Sie sie die ganze Zeit ausgeschaltet lassen müssen.
Koda
Nachdenken über meine eigene Situation mit dem integrierten AMD 6750 ist schon schlimm genug (so heiß und laut, dass ich auch nach dem thermischen Umgießen auf das erweiterte Garantie-Reparaturprogramm von Apple für das MacBook Pro 2011 mit AMD-Grafik zugreifen werde . Marco Arment hatte wahrscheinlich Recht, seinen 2,2-GHz-MBP mit 6750 für die 2,0-GHz-Version mit 6490 zu liefern . Während ich damals überlegte, das Gleiche zu tun, hätte ich mein MBP nach Übersee schicken müssen, um es zu ändern. Leider scheinen die MacBook-Profis von Retina weiterhin die gleichen Probleme mit Hitze und Lärm zu haben . Das 2013 MacBook Pro meiner Freundin mit nur integrierten Grafiken verhält sich viel besser.
Aufgrund von Hitze- und Geräuschproblemen mit Quad-Core-MBP-Workstations habe ich zwei Mac-Pros (einen 2006er und einen 2009er) aufgegeben und die CPUs auf acht Core- bzw. sechs Core-Prozessoren aufgerüstet. Das 2006 mit Apple AMD 5870 ist fast geräuschlos (viel leiser als das 2009) und Multitasks besser als das MBP 15 ". Die beiden silbernen Türme (Heim und Büro) kosten weniger zusammen als ein einziges neues MacBook Pro. Im Moment bin ich Ausführen des 2011 MBP 15 "auf diskreten Grafiken nur zum Mitnehmen (kein externer Monitor).
quelle
Ihr geplanter Eingriff ist möglich. Ihr geplantes Verfahren ist nicht so schwierig. Ihr geplanter Eingriff ist nicht die beste Option.
Warum diese Route nicht optimal ist
MacBook Pros müssen nach dem Anschließen eines externen Bildschirms auf die diskrete GPU (dGPU) umschalten. Eine installierte, aber deaktivierte dGPU entfernt daher die Option, 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 gewünschte EFI-Variable festlegen, wird die direkte Ausgabe mit einem Kabel vom Thunderbolt-Port 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 den NVRAM geschrieben und das MacBook Pro gezwungen, immer direkt in die integrierte GPU (iGPU) zu booten. Der Bezeichner 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 mit einem NVRAM-Reset leicht umkehrbar.
Nachteile dieser Strategie in dieser Situation
Und jetzt der Nachteil: Es gibt möglicherweise zwei kleine Probleme:
Nachdem Sie diese NVRAM-Einstellungen erzwungen haben, wird macOS möglicherweise "ein wenig verwirrt". Der Chip ist immer noch da, verdrahtet und mit Strom versorgt.
Um dies zu starten, müssen Sie möglicherweise die Grafiktreiber für Ihre dGPU deaktivieren. Oder zumindest der eine Text, der die eigentliche Grafikumschaltung verwaltet. Der Start kann hängen bleiben, wenn Sie versuchen, die GPU-Umschaltung zu starten.
Beide neu aufgetretenen Probleme können behoben werden, indem entweder alle NVidia-Kexts
/System/Library/Extensions
an einen sicheren Sicherungsort verschoben werden . Dadurch wird der Computer gestartet und in den beschleunigten iGPU-Modus versetzt. Das Festlegen einer EFI-Variablen reicht jedoch möglicherweise nicht aus, um eine sinnvolle Energieverwaltung zu erzielen. Zu diesem Zweck müssen Sie wahrscheinlich die NVidia-Kexts zurücksetzen, mit Ausnahme derjenigen, die für die Grafikumschaltung verantwortlich sind. Andernfalls wird die dGPU unnötig stark beansprucht. Bei "voller Leistung" (umgerechnet auf> ~ 60 ° C) läuft es zumindest im Leerlauf.Dieser Hochleistungsleerlauf ist möglicherweise die große Niederlage für Ihren Plan, das Lüftergeräusch zu reduzieren und die Batterie zu erhöhen. Anmerkung aus der Literatur: Es sollte allgemein anerkannt sein, dass das Verschieben von Kexts auch das Deaktivieren von SIP auf neueren Versionen von OS X / macOS erfordert, solange Sie solche Dinge verschieben.
Allgemeine Strategie zum Finden der zu experimentierenden Kexts: Booten ohne NVRAM-Variable in einem Aktiensystem (mit 'Standard'-NVidia-Kexts). Notieren Sie sich dann, mit welchen Erweiterungen Ihr System tatsächlich lädt
kextstat
. Starten Sie dann neu, wobei zuvor geladene NVidia / Geforce-Kexts entfernt und der Hack aktiviert wurden. Holen Sie sich einen detaillierten Sensor-Monitor (iStatMenus, TGPro usw.) und beobachten Sie die Temperatur auf und um die GPU. Laden Sie nun nacheinander die relevanten Kexts zurück in den Kernel mitsudo kextload /path-to/NVDA***.kext
. Warten Sie jeweils ein bis zwei Minuten.Da die Methode dieses Beitrags - oder die ebenso gültige, aber langwierige Methode: Manipulieren von EFIvars unter Linux - NVRAM ist, wird es sauber zurückgesetzt, wenn Sie einen SMC / NVRAM-Reset durchführen. Dieses NVRAM-Hacken ist der einzige Teil dieses Beitrags, der Ihnen mit Sicherheit nicht viel Ärger bereiten wird.
Durch das Zurücksetzen des NVRAM werden nur minimale Werkseinstellungen der EFI-Variablen / des NVRAM wiederhergestellt. Diese Werkseinstellung wird nicht berührt.
Dies kann so oft gemacht werden, wie Sie möchten.
Unter Linux ist das Treibersystem wesentlich besser dokumentiert und imho sauberer implementiert. Es gibt viele Möglichkeiten, dies mit Linux zu erreichen oder es zu booten. Und ein Linux (egal, ob Sie diese NVRAM / EFIvars-Einstellung respektieren oder andere Methoden anwenden) wird Ihnen viel weniger Probleme mit Treibern bereiten (wer hätte das gedacht). Für andere Betriebssysteme wie Microsoft Windows liegen mir keine Daten vor.
Um es zu wiederholen: Wenn das Betriebssystem die dGPU nicht richtig erkennt, heißt das nicht, dass sie ausgeschaltet ist. Dies kann zu unerwünschten thermischen Nebenwirkungen führen.
In diesem Handbuch für MacBook Pro 2011 finden Sie 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 , dass alle: gfxCardStatus (oder versuchen Sie verschiedene Versionen des Originals - sie haben verschiedene Optionen / Fähigkeiten ...) ist imho die beste Option, wenn Sie keine echten Hardwareprobleme haben, mit denen Sie sich befassen müssen. Es ist viel flexibler und Sie können in einem laufenden System ganz einfach auf dGPU oder externe Monitore zurückgreifen.
Ob über EFI / NVRAM oder mit gfxCardStatus: Wenn Sie einen Mac mit umschaltbarer Grafik auf "Nur integriert" schalten, werden die externen Anzeigemodi über den integrierten DisplayPort- oder Thunderbolt-Grafikausgang deaktiviert . Dies ist eine Folge des Hardware-Designs, das das Anzeigesignal für externe Monitore durch die dGPU leitet. Die Verwendung von nicht diskreten, sondern externen Grafikadaptern kann diese Einschränkung umgehen.
Die EFI-Einstellung, die auf anderen Betriebssystemen integriert werden soll
Wie bereits klar sein sollte, unterscheidet sich die EFI-Einstellung, mit der andere Betriebssysteme wie Linux eine umschaltbare Grafikkonfiguration "sehen" können, von der oben genannten Einstellung, mit der die dGPU deaktiviert wird. Winziges EFI-Programm zum Entsperren der Intel IGD auf dem Macbook Pro 11.3 für Linux und Windows:
quelle
Verspätete Antwort auf eine Ihrer Nebenfragen: Möglicherweise muss die diskrete GPU aktiviert sein, um ein externes Display verwenden zu können. Der Grund dafür sollte sein, wie die GPUs und die Videoausgänge verdrahtet sind.
(Ich vermute, extrapoliere halb, wie die Grafikumschalttechnologie für PCs und Laptops funktioniert. Es ist keine unangemessene Annahme, dass diese Technologien auf der Arbeit der GPU-Hersteller mit Apple basieren. Dennoch: Nehmen Sie Folgendes mit einer großen Körnung von Salz.)
Bei nVidia Optimus ist das eingebaute Display eines Laptops an die integrierte GPU und der externe Display-Port an die separate GPU angeschlossen. Wenn Sie Inhalte mit der diskreten GPU auf dem eingebauten Display rendern müssen, wird die diskrete GPU der integrierten "untergeordnet". Ein Rendering-Aufruf geht zuerst an die integrierte GPU, die, sofern die diskrete GPU aktiviert ist, sie dort weiterleitet und das Ergebnis abruft, um es auf dem Display anzuzeigen.
Wenn ein externes Display angeschlossen ist, werden Rendering-Aufrufe für dieses Display direkt an die diskrete GPU weitergeleitet, da diese GPU ohnehin jede Ausgabe an dieses Display senden kann. Die integrierte GPU kann einfach überhaupt keine Videoausgabe an diesen Port senden. Ich denke nicht, dass es überhaupt möglich ist, die integrierte GPU für die diskrete GPU "untergeordnet" zu lassen, da dies aus gestalterischer Sicht in Bezug auf die Ziele der Grafik-Switching-Technologie zuallererst sinnlos wäre. und selbst dann müsste die diskrete GPU noch aktiviert sein, was Menschen, deren Chip ausfällt, nicht helfen würde.
quelle
Wenn noch jemand nach Möglichkeiten sucht, dies zu tun, schau bitte in diesem MacRumors-Forum nach.
Ich habe die in diesem Forumbeitrag genannten Schritte befolgt und mein 15 "MacBook Pro 2011 funktioniert nur mit seiner integrierten Grafik einwandfrei. Die wertlose AMD-Grafikkarte wurde erfolgreich deaktiviert.
https://forums.macrumors.com/threads/force-2011-macbook-pro-8-2-with-failed-amd-gpu-to-ways-use-intel-integrated-gpu-efi-variable-fix. 2037591 / page-5 # post-24511780
https://forums.macrumors.com/threads/force-2011-macbook-pro-8-2-with-failed-amd-gpu-to-ways-use-intel-integrated-gpu-efi-variable-fix. 2037591 /
quelle