Twoja planowana procedura jest możliwa. Twoja planowana procedura nie jest taka trudna. Twoja planowana procedura nie jest najlepszą opcją.
Dlaczego ta trasa jest nieoptymalna
MacBook Pro będzie musiał przejść na dyskretną kartę graficzną (dGPU) po podłączeniu zewnętrznego wyświetlacza. Dlatego zainstalowany, ale wyłączony dGPU odbiera opcję korzystania z zewnętrznego monitora z tym dGPU.
Istnieją teraz inne opcje, takie jak korzystanie z rozwiązań USB lub zewnętrznych układów GPU (eGPU). Ale ustawienie zmiennej EFI, której szukasz, na pewno wyłączy bezpośrednie wyjście za pomocą jednego kabla od portu Thunderbolt do zewnętrznego monitora.
Jak możesz wyłączyć dyskretny procesor graficzny z EFI?
Polecenie wymienione w aktualizacji jest prawie prawidłowe. Po prostu brakuje prawidłowego identyfikatora:
sudo nvram fa4ce28d-b62f-4c99-9cc3-6815686e30f9:gpu-power-prefs=%01%00%00%00
Spowoduje to zapisanie odpowiedniej zmiennej EFI w pamięci NVRAM i zmusza komputer MacBook Pro do uruchamiania zawsze bezpośrednio w zintegrowanym procesorze graficznym (iGPU). Identyfikator dotyczy nie tylko AMD dGPU, ale wszystkich dGPU. Potwierdzono, że działa to zarówno z układami NVidia. Można go również łatwo odwrócić po zresetowaniu pamięci NVRAM.
Wady tej strategii w tej sytuacji
A teraz wadą: są z tym potencjalnie dwa małe problemy:
Po wymuszeniu tych ustawień NVRAM macOS może się „trochę pomylić”. Chip nadal tam jest, podłączony i zasilany.
Aby to uruchomić, konieczne może być wyłączenie sterowników karty graficznej dla twojego dGPU. Lub przynajmniej jeden kext, który zarządza faktycznym przełączaniem grafiki. Boot może się zawiesić podczas próby zainicjowania przełączania GPU w inny sposób.
Oba nowo powstałe problemy można rozwiązać poprzez przeniesienie wszystkich tekstów NVidii /System/Library/Extensions
do bezpiecznego miejsca kopii zapasowej. Spowoduje to uruchomienie komputera w trybie przyspieszonym iGPU. Ale ustawienie zmiennej EFI może nie wystarczyć, aby uzyskać rozsądne zarządzanie energią. W tym celu prawdopodobnie będziesz musiał cofnąć kexts NVidia oprócz tych odpowiedzialnych za przełączanie grafiki. W przeciwnym razie dGPU doprowadzi do niepotrzebnie wysokiej mocy. Będzie przynajmniej pracował bezczynnie przy „pełnej mocy” (przetłumaczonej na> ~ 60 ° C).
Ten bezczynność o dużej mocy potencjalnie może być wielką porażką dla twojego planu ograniczenia hałasu wentylatora i zwiększenia baterii. Dodatkowa uwaga z literatury: Powszechnie wiadomo, że przenoszenie kextów wymaga również wyłączenia SIP w nowszych wersjach OS X / macOS, o ile poruszasz takimi rzeczami.
Ogólne było znalezienie kextów do eksperymentowania: rozruch bez zmiennej NVRAM w systemie podstawowym (z „domyślnymi” tekstami NVidia). Następnie zanotuj, jakie rozszerzenia faktycznie ładuje twój system kextstat
. Następnie uruchom ponownie komputer z poprzednio załadowanymi kextami NVidia / Geforce i odsuń hack. Uzyskaj szczegółowy monitor czujnika (iStatMenus, TGPro itp.) I obserwuj temperaturę na GPU i wokół niego. Teraz załaduj jeden po drugim odpowiednich tekstów z powrotem do jądra za pomocą sudo kextload /path-to/NVDA***.kext
. Poczekaj jedną lub dwie minuty po każdej.
Ponieważ metodą tego postu - lub równie prawidłową, ale dłuższą drogą: manipulowanie EFIvars w Linuksie - jest NVRAM, przywróci się ona czysto, jeśli wykonasz reset SMC / NVRAM. To, że hakowanie NVRAM jest w rzeczywistości jedyną częścią tego postu, która na pewno nie sprawi ci większych problemów.
Wykonanie tego resetu NVRAM przywraca minimalny zestaw ustawień fabrycznych do zmiennych EFI / NVRAM. To ustawienie fabryczne nie zostanie zmienione.
Można to zrobić tak często, jak chcesz.
W Linuksie system sterowników jest znacznie lepiej udokumentowany, a imho zaimplementowane czystsze. Istnieje wiele sposobów na osiągnięcie tego celu lub uruchomienie systemu Linux. A Linux (niezależnie od tego, czy przestrzega tego ustawienia NVRAM / EFIvars, czy innych metod) sprawi ci znacznie mniej problemów ze sterownikami (kto by pomyślał). W przypadku innych systemów operacyjnych, takich jak Microsoft Windows, nie mam danych.
Powtarzając: Brak rozpoznania dGPU przez system operacyjny nie oznacza, że jest on wyłączony. Które może prowadzić do niepożądanych skutków ubocznych termicznych.
Spójrz na ten przewodnik dla Pro MacBook 2011, aby znaleźć podobne rozwiązanie i trochę więcej opcji; także w celu szybkiego cofnięcia i ponownego włamania do pamięci NVRAM.
Wiele monitorów i wyłączony dGPU
Powiedziawszy to wszystko: gfxCardStatus (lub wypróbuj różne wersje oryginału - mają różne opcje / możliwości…) jest najlepszą opcją, jeśli nie masz prawdziwych problemów sprzętowych. Jest o wiele bardziej elastyczny i nadal możesz łatwo wrócić do dGPU lub monitorów zewnętrznych w działającym systemie.
Czy to przez EFI / NVRAM, czy za pomocą gfxCardStatus: wymuszenie komputera Mac z przełączalną grafiką na opcję tylko zintegrowaną wyłączy zewnętrzne tryby wyświetlania za pomocą wbudowanego wyjścia graficznego DisplayPort lub Thunderbolt. Jest to konsekwencja projektu sprzętowego, który kieruje sygnał wyświetlacza dla monitorów zewnętrznych przez dGPU. Użycie nie dyskretnych, ale zewnętrznych kart graficznych może być obejściem tego ograniczenia.
Ustawienie EFI umożliwiające włączenie w innych systemach operacyjnych
Jak powinno być teraz jasne, ustawienie EFI umożliwiające innym systemom operacyjnym, takim jak Linux, „zobaczenie” przełączalnej konfiguracji graficznej różni się od powyższej, która wyłącza dGPU.
Mały program EFI do odblokowywania Intel IGD na Macbooku Pro 11,3 dla systemów Linux i Windows:
Mały program EFI do odblokowywania Intel IGD na Macbooku Pro 11,3 dla systemów Linux i Windows. Został stworzony do łatwego ładowania przez niezmodyfikowany bootloader EFI, taki jak Grub, rEFInd itp.
EFI w modelu Macbooka Pro 11,3 wyłącza procesor graficzny Intel, jeśli uruchamiasz cokolwiek poza Mac OS X. Aby udoskonalić cały sprzęt, wymagana jest sztuczka polegająca na udawaniu identyfikacji systemu operacyjnego.
Wszystkie kredyty należą do Andreasa Heidera, który pierwotnie odkrył ten hack:
https://lists.gnu.org/archive/html/grub-devel/2013-12/msg00442.html