Ваша запланированная процедура возможна. Ваша запланированная процедура не так сложна. Ваша запланированная процедура не лучший вариант.
Почему этот маршрут неоптимальный
MacBook Pro будет и должен переключаться на дискретный графический процессор (dGPU) после подключения внешнего дисплея. Следовательно, установленный, но отключенный dGPU лишает возможности использовать внешний монитор с этим dGPU.
Теперь есть и другие варианты, такие как использование USB-решений или внешних графических процессоров (eGPU). Но установка искомой переменной EFI обязательно отключит прямой вывод одним кабелем от порта Thunderbolt на внешний монитор.
Как можно отключить дискретный графический процессор от EFI?
Команда, которую вы упомянули в своем обновлении, почти верна. Он просто пропускает правильный идентификатор:
sudo nvram fa4ce28d-b62f-4c99-9cc3-6815686e30f9:gpu-power-prefs=%01%00%00%00
Это записывает соответствующую переменную EFI в NVRAM и заставляет MacBook Pro всегда загружаться прямо во встроенный графический процессор (iGPU). Идентификатор предназначен не только для dGPU AMD, но и для всех dGPU. Это подтверждает совместимость с чипами NVidia. Это также легко обратимо с перезагрузкой NVRAM.
Недостатки этой стратегии в данной ситуации
А теперь обратная сторона: с этим потенциально могут быть две маленькие проблемы:
После применения этих настроек NVRAM macOS может «немного запутаться». Чип все еще там, подключен и работает.
Для загрузки вам может потребоваться отключить графические драйверы для вашего dGPU. Или, по крайней мере, один kext, который управляет фактическим переключением графики. В противном случае загрузка может зависнуть при попытке инициировать переключение графического процессора.
Обе вновь возникшие проблемы можно решить, переместив все кексы NVidia /System/Library/Extensions
в безопасное место резервного копирования. Это приведет к загрузке машины в ускоренном режиме iGPU. Но установки переменной EFI может быть недостаточно для разумного управления питанием. Для этого вам, вероятно, придется вернуться назад кексы NVidia, кроме тех, кто отвечает за переключение графики. Невыполнение этого требования приведет к излишне высокой мощности на dGPU. Он будет по крайней мере на холостом ходу при «полной мощности» (переводится на> ~ 60 ° C).
Это простоя высокой мощности потенциально станет большим поражением для вашего плана по снижению шума вентилятора и увеличению заряда батареи. Дополнительное примечание из литературы: Следует признать, что общепризнанная истина заключается в том, что для перемещения кекс-файлов также требуется отключить SIP в более новых версиях OS X / macOS, если вы будете перемещать подобные вещи.
Общая стратегия - найти кексы для экспериментов: загрузиться без переменной NVRAM в стандартной системе (с «по умолчанию» кексами NVidia). Затем обратите внимание на то, с какими расширениями ваша система действительно загружается kextstat
. Затем перезагрузите компьютер с ранее загруженными кексами NVidia / Geforce, и хак будет включен. Получите подробный сенсорный монитор (iStatMenus, TGPro и т. Д.) И наблюдайте за температурой на и вокруг графического процессора. Теперь загрузите один за другим соответствующие кексы обратно в ядро с помощью sudo kextload /path-to/NVDA***.kext
. Подождите одну или две минуты после каждого.
Так как метод этого поста - или столь же правильный, но долгий способ: манипулирование EFIvars в Linux - это NVRAM, он будет полностью восстановлен, если вы выполните сброс SMC / NVRAM. Этот взлом NVRAM на самом деле является единственной частью этого поста, которая наверняка не доставит вам особых хлопот.
Выполнение этого сброса NVRAM восстанавливает минимальный набор заводских настроек для переменных EFI / NVRAM. Эта заводская настройка не будет затронута.
Это может быть сделано так часто, как вам нравится.
В Linux система драйверов гораздо лучше документирована и реализована в imho чище. Есть много способов сделать это с помощью Linux или загрузить ее. А Linux (будь то соблюдение этого параметра NVRAM / EFIvars или другие методы) даст вам гораздо меньше проблем с драйверами (кто бы мог подумать). Для других ОС, таких как Microsoft Windows, у меня нет данных.
Повторим: если ОС не распознает dGPU должным образом, это не означает, что он выключен. Это может привести к нежелательным тепловым побочным эффектам.
Взгляните на это руководство для MacBook Pro 2011 года для аналогичного решения и немного больше вариантов; также, чтобы быстро отменить и повторить взлом NVRAM.
Несколько мониторов и отключенный dGPU
Сказав, что все: gfxCardStatus (или попробуйте разные версии оригинала - у них разные опции / возможности…) - это лучший вариант, если у вас нет реальных проблем с оборудованием. Это гораздо более гибко, и вы все еще можете легко переключиться обратно на dGPU или внешние мониторы в работающей системе.
Будь то через EFI / NVRAM или с помощью gfxCardStatus: принудительное переключение Mac с переключаемой графикой на интегрированную только отключит режимы внешнего отображения с использованием встроенного графического вывода DisplayPort или Thunderbolt. Это является следствием конструкции оборудования, которая направляет сигнал дисплея для внешних мониторов через dGPU. Использование не дискретных, а внешних графических адаптеров может стать решением этой проблемы.
Настройка EFI для включения в другие операционные системы
Как теперь должно быть ясно, настройка EFI, позволяющая другим операционным системам, таким как Linux, «видеть» переключаемую графическую настройку, отличается от описанной выше, которая отключает dGPU.
Программа Tiny EFI для разблокировки Intel IGD на Macbook Pro 11,3 для Linux и Windows:
Программа Tiny EFI для разблокировки Intel IGD на Macbook Pro 11,3 для Linux и Windows. Он был легко загружен с помощью неизмененного загрузчика EFI, такого как Grub, rEFInd и т. Д.
EFI модели Macbook Pro 11,3 отключает графический процессор Intel, если вы загружаете что-либо, кроме Mac OS X. Поэтому для обеспечения доступности всего оборудования требуется небольшая хитрость, имитирующая идентификацию ОС.
Все кредиты принадлежат Андреасу Хайдеру, который первоначально обнаружил этот взлом:
https://lists.gnu.org/archive/html/grub-devel/2013-12/msg00442.html