MacBook Pro: как навсегда отключить дискретный графический процессор от EFI?

Я хотел бы отключить графический процессор NVidia GTX 750M на моем MacBook Pro 15 дюймов (Retina, середина 2014 г., Mac OS X 10.10 Yosemite). Я знаю, что могу использовать GfxCardStatus, но читал, что могу найти более постоянное решение, изменив некоторые EFI флаг.

Мой вопрос:

  • Как я могу отключить дискретный графический процессор от EFI?

    Я предполагаю, что это сохраняется при нескольких перезагрузках. Я также хотел бы знать, как отменить это, если это необходимо.

Обновлять:

Вопрос в основном заключается в том, является ли команда, упомянутая в комментарии к проблеме GfxCardStatus github , правильной или нет, и как ее отменить, если она не работает.

.

Ответ только на это является правильным ответом, но было бы здорово, если бы вы также сказали мне:

  • Если вы включите встроенную графику в GfxCardStatus, Mac OS X (по крайней мере, до Yosemite) не позволит вам использовать несколько мониторов (хотя встроенная Iris Pro может это сделать).

    Если я отключу дискретный графический процессор от EFI, будет ли macOS считать, что установлен интегрированный графический процессор, и позволит ли он мне использовать несколько мониторов с ним?

  • Я слышал, что тот же параметр EFI отвечает за то, что встроенный графический процессор даже не отображается в других операционных системах, кроме macOS, и вам нужно как-то обмануть его, чтобы он подумал, что это macOS.

    Это правда? И если да, то как это сделать?

Это похоже на классическую задачу XY . Чего вы на самом деле пытаетесь достичь?
Получите постоянную экономию на батарее и уменьшите нагрев, не платя за шум. Я получил NVidia, потому что хотел обновить процессор и твердотельный накопитель, и это был готовый вариант. Если бы я мог дождаться пользовательской сборки, я бы получил встроенную видеокарту.
Решение этого вопроса также будет полезно владельцам моделей MBP 2011 года выпуска, имеющих неисправный дискретный GPU. Конечно, при использовании Linux можно отключить дискретный графический процессор, см. мой вопрос здесь: apple.stackexchange.com/questions/168167/…
Если вы каким-то образом оказались здесь в currentYearпанике ядра 16-дюймового macBook v10.15.5: 1.) получите gfx.io 2.) установите значение «Только интегрированные» 3.) купите кофе на cody@codykrieger.com

Ответы (5)

Вы можете навсегда отключить дискретную видеокарту, выполнив следующие действия:

ОБНОВИТЬ! Попробуйте отредактировать переменную NVRAM из однопользовательского режима.

Процедура, описанная в шагах 1-3, работала для меня до macOS Sierra, но с обновлением до High Sierra я начал получать розоватый/красноватый экран, и я не мог войти в режим восстановления, чтобы повторить шаг 3, как я должен был сделать в предыдущие обновления. Поискав в Интернете, я столкнулся с этой проблемой GitHub , объяснив, что вы можете заменить шаги 1 и 2 следующей командой, которую вы можете выполнить в однопользовательском режиме (загрузка, нажав cmd+ s):

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

1. Подготовьте загрузочный USB-накопитель с Linux без графического интерфейса.

1.1 Загрузите ISO-образ ArchLinux

  • Для этого вам понадобится работающий компьютер и запасной CD/DVD/USB-накопитель.
  • Загрузите последний ISO-образ Arch Linux .
  • Затем вы можете либо просто записать этот ISO на CD/DVD (который позже можно будет вставить в SuperDrive MBP или внешний DVD-привод, подключенный к MBP двумя USB-кабелями), либо создать загрузочный USB -диск .

1.2 Создание загрузочного USB с .iso

  • Во-первых, вам нужно идентифицировать USB-устройство.
  • Откройте /Applications/Utilities/Terminal в MacOS и выведите список всех устройств хранения:

    diskutil list

    Ваше USB-устройство будет выглядеть примерно так /dev/disk2 (external, physical). Убедитесь, что это именно то устройство, которое вы хотите стереть, проверив его имя и размер, а затем используйте его идентификатор для приведенных ниже команд вместо /dev/diskX.

  • USB-устройство обычно автоматически монтируется в macOS, и вы должны размонтировать (не извлекать) его перед блочной записью на него с помощью dd:

    diskutil unmountDisk /dev/diskX

  • Теперь скопируйте файл образа ISO на устройство. Команда dd аналогична своему аналогу в Linux, но обратите внимание на «r» перед «disk» для необработанного режима, который делает передачу намного быстрее:

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

    После завершения macOS может пожаловаться, что «Вставленный вами диск не читается этим компьютером». Выберите «Извлечь». USB-устройство станет загрузочным.

2. Используйте Linux для изменения переменных EFI

2.1 Загрузитесь с него

  • Вставьте этот CD/DVD/USB в Macbook Pro, удерживайте клавишу Option (alt) во время загрузки.
  • Выберите «Загрузка EFI» (это ваш загрузочный установочный носитель).
  • Когда появится меню, нажмите клавишу «e», чтобы отредактировать параметры GRUB пункта меню компакт-диска Arch Linux archiso x86_64 UEFI, когда он выбран на главном экране, добавьте nomodesetв конец этой строки и нажмите Enter.
  • Если все сделано правильно, вы окажетесь у консоли Linux! (Это займет некоторое время, так что наберитесь терпения и дождитесь подсказки)

2.2 Очистить существующие переменные EFI

Похоже, что файловая система efivarfs смонтирована по умолчанию! Так что можно уже cd /sys/firmware/efi/efivarsи lsисследовать эту директорию и посмотреть, есть ли там gpu-power-prefs-...переменная (где... это UUID этой переменной).

  • Если есть такая переменная, лучше ее удалить с помощью rm.

    rm gpu-power-prefs-…

  • Если вы получаете сообщение «Операция не разрешена» при попытке rm, это означает, что efivarfs был смонтирован как доступный только для чтения, и вам необходимо перемонтировать его с разрешениями на чтение и запись и повторить попытку:

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

  • Если это также не удается (вы все еще не можете стереть файл), используйте chattrкоманду, чтобы отключить неизменность файла, а затем сотрите файл:

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

2.3 Создайте новый файл gpu-power-prefs-…

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

2.4 Добавьте неизменяемость в файл gpu-power-prefs-…

Эта chattrкоманда предназначена для блокировки файла, чтобы сделать его доступным только для "суперпользователя" - и чтобы во время загрузки ваш EFI не имел шанса испортить вашу переменную gpu-power-prefs-... ни при каких обстоятельствах.

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

2.5 Размонтируйте efivars и перезагрузите компьютер

Перейдите в корневой каталог, чтобы размонтировать efivars:

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

Гарантирует, что ваши переменные EFI будут сброшены в файловую систему efivarfs. Пожалуйста, размонтируйте его безопасно перед перезагрузкой.

reboot

3 Удалить кексты AMD/Nvidia

Примечание . Возможно, вам придется делать это каждый раз, когда вы обновляете свою ОС, так как она обычно регенерирует эти кексты. Вы можете добавить этот ответ в избранное для справки, чтобы он был доступен с другого устройства, когда он вам понадобится.

После отключения dGPU с помощью Arch обычная загрузка зависнет на полпути, но безопасная загрузка будет работать.

3.1 Переместите файлы AMD / NVIDIA kext в каталог резервного копирования

Удалите все файлы kext AMD (или NVIDIA, в зависимости от вашей карты) в терминале консоли восстановления. Попытка удалить их в однопользовательском режиме приводит к ошибкам песочницы, поэтому не делайте этого в однопользовательском режиме! (тот, который вы загружаете с cmd+ s).

  • Если у вас есть FileVault, сначала разблокируйте его.
  • Загрузитесь в Recovery ( cmd+ r) напрямую. Если это не удается, повторите шаг 2 и повторите попытку (dGPU может снова активироваться после загрузки ОС с кекстами AMD/Nvidia).
  • Start Terminal (Эти команды предназначены для AMD. Если у вас NVIDIA, измените соответствующим образом)

    diskutil cs list(найти UUID логического тома: последний элемент)
    diskutil coreStorage unlockVolume UUID(UUID: из предыдущей команды)
    cd /Volumes/Macintosh\ HD
    mkdir AMD_Kexts
    mv System/Library/Extensions/AMD*.* AMD_Kexts/
    reboot

Я нашел процедуру по этой ссылке , где вы можете прочитать атрибуцию различных разделов и ветку обсуждения по этой теме.

Я попробовал это сам на MacBook Pro начала 2011 года с неисправной дискретной видеокартой, которая не могла загрузиться даже с уловкой с перегревом, и в итоге получил полностью рабочий компьютер!

К сожалению, на моей модели MacBook Pro Mid 6,2 середины 2010 года в сочетании с MacOS High Sierra мне не удалось выполнить шаг 3. Когда я вхожу diskutil cs list, он возвращает No CoreStorage logical volume groups found. Дискретный графический процессор остается включенным. Есть идеи?
Я только что понял, что могу просто пропустить diskutilкоманды, и мне удалось удалить файлы AMD. К сожалению, дискретный GPU все еще используется...
@Taco, если вы перезагрузились и это не сработало, вам может потребоваться повторить шаг 2. Также убедитесь, что ваша дискретная карта - AMD, некоторые модели устанавливают NVIDIA. Если это ваш случай, вы должны переместить файлы kext, связанные с этой картой.
Да, вы правы, на этом Mac установлена ​​карта NVIDIA, а не AMD (я просто следовал инструкциям, не осознавая этого). Тем не менее, я все еще не мог заставить его работать, но с другим решением, предложенным для этого конкретного ноутбука, оно сработало! MBPMid2010_GPUFix . Спасибо за вашу помощь.
Некоторая важная информация, если у вас карта NVidia, а не AMD. Инструкции верны, но необходимо удалить следующие кексты: CUDA.kext GeForce.kext GeForce7xxxGLDriver.bundle GeForceGA.plugin GeForceGLDriver.bundle GeForceVADriver.bundle NVDANV40Hal.kext NVDANV50Hal.kext NVDAResman.kext NVSMU.kext Проверено на MBP начала 2011 года. работает 10.12.6.
Я застрял на 2.3 Create a new gpu-power-prefs-… file , я не могу создать файл (неверный аргумент, из поиска в Google это означает проблему с разрешением). Совет?
@wiradikusuma, в 2.2 и 2.4 у вас есть инструкции по проверке и изменению разрешений. Если вы не предоставите дополнительные данные (например, права доступа к каталогу), помочь будет сложно.
@fnieto-FernandoNieto Я создал chattr -iфайл (иначе я не могу rm), но я не могу воссоздать файл. Должен ли я chattr -iсодержать каталог? (Это не упоминается в шагах выше)
Это отлично сработало для меня (начало 2011 года). Большое спасибо.
@fnieto-FernandoNieto Спасибо за обновление шагов. Когда я это делаю chattr -i ., он говорит: «chattr: недопустимый ioctl для устройства при чтении флагов на». -- Использование абсолютного пути также не работает. К вашему сведению, файл создается, но его размер равен 0.
@wiradikusuma, пожалуйста, дайте мне знать, если вы найдете решение, чтобы обновить шаги и помочь другим людям.
@fnieto-FernandoNieto Какой трюк с перегревом?
@huyz, когда вы позволяете своему Macbook Pro перегреваться (например, в закрытой сумке, препятствующей надлежащей вентиляции), он выключается. Если вы запустите его сразу после этого, он загрузится с использованием дискретной видеокарты.
@ fnieto-FernandoNieto хммм, вы имели в виду «он будет загружаться с использованием встроенной видеокарты»? В противном случае ваш комментарий кажется конфликтующим с текстом в вашем ответе.
@huyz, да! простите за это.
@fnieto-FernandoNieto Это хороший трюк, который нужно знать, так как я часто не могу загрузиться. Я не думаю, что это общеизвестно; Я не видел, чтобы это упоминалось где-либо еще. Спасибо!
Мне потребовалось 3 попытки (не забудьте повторить шаг 2), чтобы войти в режим восстановления без зависаний, но, наконец, это сработало для моего Macbook Retina Pro середины 2012 года (с картой Nvidia). Так что спасибо!
@huyz, лучший способ выразить свою благодарность - это проголосовать за ответ, чтобы его было легче найти другим людям с такой же проблемой. Кстати, вы пытались установить переменную NVRAM в однопользовательском режиме? это не сработало для вас?
@ fnieto-FernandoNieto, конечно, я уже проголосовал за ваш ответ. Суть моего комментария заключалась в том, чтобы добавить информацию о моем MacBook и моем процессе. Не пробовал однопользовательский режим, так как вы сказали не делать этого :)
@huyz спасибо! В начале ответа есть обновление для альтернативы, которая позволит вам пропустить шаги 1 и 2, что значительно ускорит исправление.
@fnieto-FernandoNieto Извините, я должен был сказать: я не пробовал однопользовательский режим, потому что я на Эль-Капитане, а не на Высокой Сьерре.
У меня есть 15-дюймовый MacBook Retina начала 2013 года, который я собирался выбросить в мусор, прежде чем нашел этот пост! Даже не смог пройти через загрузку без паники графического процессора. После этого исправления, до сих пор (> 24 часов), ни одного.Удивительно!Спасибо!
Работал на моем MacBookPro в конце 2011 года. Я пробовал много вещей (обновления и отдельные пользовательские команды) до этого решения. Просто использовал команду nvram и перешел к шагу 3. Работает как шарм. Большое спасибо! Спас мой день...
ОМФГ. Итак, для тех из вас, у кого не работает графический процессор и сгоревший дисплей, поэтому вы не можете войти в режим восстановления: для третьего шага просто подключите свой MBP в режиме целевого диска к другому Mac, чтобы выполнить шаг 3! Ура. Этот Mac НЕ мертв.
@huyz вам нужно было сделать что-то по-другому с комбинацией retina + nvidia? я в той же лодке
Также очевидно, что эта проблема вызвана конденсатором рядом с дискретным графическим процессором, а не самим dGPU youtube.com/watch?v=DzcgT_fiVTA
@cbartondock не то чтобы я помню
Для всех, у кого есть Mac Pro Retina 2013 года с Nvidia dGPU, я обнаружил, что если я переместил только файлы NVD*.* в System/Library/Extensions, то dGPU не был отключен, и что если я GeF*.*, предложенные @sporker, тогда машина работала, но а) не могла изменить яркость и б) не уменьшала яркость дисплея при закрытии. Что сработало для меня, так это перемещение файлов GeF, а не файлов NVD. Метод nvram у меня тоже не сработал, и мне пришлось заменить «fa4ce28d» на «000fa4ce», но в остальном метод archlinux сработал. Не могу передать, как я благодарен за этот пост.
Процедура @cbartondock нарушена в macOS Mojave, в MBP 2013 в конце, с графическим процессором Nvidia. Индикатор выполнения запуска навсегда зависнет на 75% после операции «nvram xxxx» в однопользовательском режиме и удаления только «GeF*.*» в режиме восстановления. Следующая операция устраняет проблему: 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 (не 000fa4ce!) csrutil enable. Ноутбук запускается, но: а) не может изменить яркость и б) не затемняет дисплей при закрытии
@MasterBeta Спасибо за такой комментарий. У меня есть Macbook Retina Mid-2012 (A1398), работающий на macOS Mojave, и его NVidia GT650M (почти) не работает. Следуя инструкциям в этом посте и вашему комментарию, это сработало для вас? Есть ли у вас какие-либо предложения, прежде чем начать? Еще раз спасибо.
@user1823280 user1823280 Да, у меня это работает. Но это не идеальное решение: а) не мог изменить яркость и б) не затемнял дисплей при закрытии в) внешний дисплей не поддерживается. Поэтому я предлагаю понизить версию вашей системы (до Мохаве) и следовать инструкциям в этом посте, которые, кажется, не имеют проблем, вызванных моей рутиной. (Я исправил свой Mac, заменив графический процессор, поэтому мое предложение не проверено. :))
@MasterBeta Спасибо за ваш ответ, ценю его. Могу я спросить вас, где вы нашли новый GPU?
@user1823280 user1823280 Сторонний поставщик починил мой Mac. Не уверен, откуда берется замена GPU.
Спасибо! Я могу убедиться, что редактирование NVRAM из однопользовательского режима и удаление графического расширения AMD из режима восстановления работают нормально (вы не можете использовать безопасный режим для последнего, поскольку ОС не разрешает это), что делает шаги Linux ненужными. Это сработало в моем отремонтированном MBP в начале 2011 года с замененной графикой AMD Radeon 6750M, которая примерно через 18 месяцев после ремонта, после отказа вентилятора в течение нескольких месяцев, пока я не смог его заменить, снова начала проявлять симптомы отказа. Еще раз спасибо!
Сначала пробовал только команду nvram и перемещение кекстов. Это работало, но у меня были следующие проблемы: ужасная производительность в Finder и приложениях с интенсивным использованием графики (например, Atom) (на 10.9), подсветка отказывалась выключаться при закрытии крышки, невозможно изменить яркость экрана, f.lux не работает, gfxCardStatus показывает неправильный статус, экранная клавиатура не отображается (на 10.6). Выполнение шагов 1. и 2., чтобы изменить efivars, устранило все эти проблемы! Спасибо!
С NVIDIA dGPU мне нужно было только переместить файлы NVD*.kext. Затем я также (повторно) переместил кэши kext в /System/Library/Caches/com.apple.kext.caches, а затем перестроил кеши с помощью touch /System/Library/Extensions. С отключенным SIP и следуя инструкциям на экране по монтированию /в режиме чтения-записи, я смог делать все в однопользовательском режиме: перемещать файлы kext и устанавливать gpu-power-prefsпеременную nvram. Большое спасибо за этот метод, он успешно отключил dGPU при загрузке, никаких проблем со сном, яркостью и т. Д. MacBook Pro (Retina, середина 2012 г.); 10.12.6
MacBook Pro (Retina, середина 2012 г.) 10.15.4 работает, если следовать инструкциям @user2561747. Сначала отключите SIP в режиме восстановления (cmd + r при загрузке): csrutil disable Затем перезагрузитесь в однопользовательский режим (cmd + s) и смонтируйте / как чтение-запись: /sbin/mount -uw /Затем переместите файлы NVD*.kext I не удалял улов, но я восстановил его. не уверен, имело ли это значение или нет. К сожалению, на данный момент управление яркостью недоступно с помощью функциональных клавиш, однако это может помочь: github.com/TankTheFrank/NativeDisplayBrightness
@ Мэтью, он правильно просыпается? Я обновился с 10.12.6 до 10.15.7, и теперь перестали работать яркость и режим сна/пробуждения. В частности, я думаю, что он переключается обратно на dGPU при выходе из спящего режима, что для меня приводит к черному экрану.
@user2561747 мой user2561747 уже давно не просыпался должным образом. Регулировка яркости тоже не работает.
@fnieto спасибо. Я опубликовал новый вопрос, касающийся проблемы пробуждения/яркости после обновления ОС: apple.stackexchange.com/q/421083/203559

Ваша дилемма

Я полностью разделяю ваше желание «сэкономить на батарее и снизить нагрев, не платя за шум» при использовании дискретной видеокарты внутри MacBook Pro.

Предупреждение

Прежде чем делать что-либо, что отключит ваш дисплей, убедитесь, что вы можете войти в свой MacBook Pro с помощью SSH , чтобы вы могли отменить свою работу. Хотя совместное использование экрана со всеми отключенными графическими картами, вероятно, будет работать с некоторым разрешением по умолчанию, я бы не стал ставить на это свой компьютер.

Ответы

Что произойдет, если я навсегда отключу дискретную видеокарту nVidia от EFI? Будет ли Mac OS считать установленным встроенный графический процессор и позволит ли мне использовать с ним несколько мониторов?

Вы потеряете возможность использовать внешний монитор (под любой ОС). Внешние графические порты подключены к дискретному графическому чипу.

Мой собственный MacBook Pro 2011 работает со стабильными 60 градусами даже под нагрузкой с минимальным шумом вентилятора при использовании встроенной графики Intel и пиками до полного вентилятора (в диапазоне от 4000 до 6000 об / мин) при нагрузке с дискретным 6750. Проблема это реально. Я тоже хотел иметь возможность использовать только встроенную графику и управлять внешним монитором.

Ни как, ни как.

Правда ли, что тот же EFI даже не показывает встроенный графический процессор для других ОС, кроме Mac OS, и вам нужно как-то обмануть его, чтобы думать, что это Mac OS?

Да, это правда. Графический процессор Intel отключается EFI MacBook Pro 11,3, если вы загружаете что-либо, кроме Mac OS X. У вас есть четыре варианта, если вы хотите использовать встроенный чип Intel в альтернативной ОС:

  1. REFInd версии 0.10.0 или выше (рекомендуется): http://www.rodsbooks.com/refind

Последние версии rEFInd имеют встроенный хак «apple_set_os». Вы можете включить его, установив параметр spoof_osx_version в файле refind.conf.

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

  2. исправленный 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. исправленное ядро: https://www.marc.info/?l=grub-deavel&m=141586614924917&w=2

Будьте осторожны, чтобы планировать заранее. Если вы не подготовитесь, вы столкнетесь с отключенной встроенной видеокартой и черным экраном. Конечно, вы всегда можете вернуться, загрузить Mac OS X и начать заново.

Самым простым из вышеперечисленных вариантов будет номер два — заменить Apple EFI. К сожалению, это тот, из-за которого вы вообще не сможете загрузиться в будущем. Apple не любит, когда люди играют с EFI, и оставляет за собой право блокировать ваше устройство за это. Если бы у вас была Apple Care и у вас все еще был гарантийный период, вы могли бы найти плечо, на котором можно поплакаться. Мощь. Когда вы меняете EFI, вы также берете на себя риски безопасности , то есть вы можете упростить взлом вашей машины. Вы должны иметь возможность обновиться до последней версии EFI, которая удалит ваш патч.

Вариант первый, rEFInd ставит себя между загрузкой и EFI, что оставляет значительные возможности для того, чтобы что-то пошло не так, и вы остались с кирпичом и долгой тяжелой тропой к работающему компьютеру. Насколько серьезны эти проблемы? Многие владельцы MacBook Pro потеряли свой жесткий диск из-за rEFInd:

Многочисленные отчеты об ошибках rEFIt указывают на проблемы с повреждением диска на дисках объемом более 500 ГиБ .... Я настоятельно рекомендую вам не печатать sudo bless --info, чтобы проверить статус вашей установки, если у вас есть такой диск, или даже если вы подозреваете, что у вас может быть такой диск . (Я видел диски расширенного формата размером до 320 ГБ.)

Третий вариант относительно прост. Исправление grub — это процесс, с которым хорошо знаком любой ранний владелец Hackintosh. Исправление Grub работает и его легко отменить, так как изменения не вносятся на уровне прошивки. Если вы консервативно исправляете grub, дополнительный код grub включается только при удерживании option/alt при загрузке .

Заключение

Если вы предпочитаете использовать свой компьютер, а не ремонтировать его, gfxCardStatus Коди Кригер в его готовой конфигурации выглядит все более и более привлекательным. Если вы действительно хотите, чтобы gfxCardStatus запускался при запуске, г-н Кригер участвовал в разъяснительной беседе , которая привела к переключению GPU. SwitchGPU предварительно устанавливает gfxCardStatus на дискретную или интегрированную графику достаточно рано, чтобы вы могли работать с интегрированной графикой, когда в противном случае ваш дискретный графический процессор перегрелся бы и вышел из строя. gfxCardStatus продолжает нормально работать (т. е. вы можете вернуться к дискретному графическому процессору после загрузки с помощью пункта меню gfxCardStatus). Нет причин устанавливать switchGPU, если у вас нет серьезных аппаратных проблем .с вашим дискретным графическим процессором, что означает, что вам нужно все время держать его выключенным.

Кода

Поразмыслив, моя собственная ситуация с интегрированным AMD 6750 достаточно плохая (такая горячая и громкая даже после термической переклейки), что я воспользуюсь программой ремонта Apple с расширенной гарантией для MacBook Pro 2011 года с графикой AMD. Марко Армент, вероятно, был прав, заменив свой 2,2-ГГц MBP 2011 года с 6750 на 2,0-ГГц версию с 6490 . Хотя в то время я думал сделать то же самое, мне пришлось бы отправить свой MBP за границу, чтобы изменить его. К сожалению, Retina MacBook Pro продолжают страдать от тех же проблем с нагревом и шумом . MacBook Pro 2013 года моей подруги только с интегрированной графикой ведет себя намного лучше.

Из-за проблем с нагревом и шумом на четырехъядерных рабочих станциях MBP я отказался и купил два Mac Pro (2006 и 2009 годов), модернизировал процессоры до восьми и шести ядер соответственно. Модель 2006 года с установленным процессором Apple AMD 5870 работает почти бесшумно (гораздо тише, чем модель 2009 года) и справляется с несколькими задачами лучше, чем MBP 15". Два серебряных корпуса (для дома и офиса) стоят меньше, чем один новый MacBook Pro. запуск 15-дюймового MBP 2011 года на встроенной графике только для переноски (без внешнего монитора).


Это решение предназначено для модели Retina MBP 15 дюймов 2014 года. Я лично интересовался отключением дискретного графического процессора для модели MBP 17 дюймов 2011 года. Поскольку важная часть программного обеспечения для меня требовала Mojave, я недавно вернулся к отключению дискретного графического процессора. gfxCardStatus не работает в Мохаве (он показывает информацию, но не отключает дискретный графический процессор).

Установка переменной NVRAM сработала ( nvram fa4ce28d-b62f-4c99-9cc3-6815686e30f9:gpu-power-prefs=%01%00%00%00). Переменная NVRAM также активировала режим открытой раскладушки на 16-дюймовом MBP , который у меня есть здесь для тестирования. Установка переменной NVRAM кажется лучшим и самым безопасным способом решения серьезных проблем с графической картой на MacBook.

Полное решение NVRAM для семейства MBP 2011 было тщательно исследовано и задокументировано Луисом Пуэрто . Я успешно выполнил это решение. На случай, если сайт Луиса не работает, аналогичный пост, но более многословный, есть на AskDifferent .

Спасибо за это подробное объяснение, подчеркивая риски. Можно ли использовать беспроводной монитор для использования внешнего оборудования даже без графического процессора? Есть ли модели, совместимые с Mac?
Спасибо за вопрос, Рейм. Я не пробовал никаких решений для беспроводного монитора. Пять лет спустя я все еще успешно использую три MBP 2011 года с AMD 6750 с gfxCardStatus. Я заменил по крайней мере одну и, возможно, две материнские платы через программу расширенной гарантии Apple сразу после того, как написал объяснение выше. Я не очень часто запускаю свой MBP 2011 на дискретной карте, что способствует их долговечности. Конечно, я модернизировал жесткие диски (легко) и за это время сменил клавиатуру. Последние MBP, которые относительно легко и доступно обслуживаются.
Спасибо за Ваш ответ! В настоящее время я оцениваю несколько вариантов, таких как дублирование через Chromecast или использование AirPlay с адаптером AppleTV-VGA/HDMI.
Я обновил свой ответ выше, чтобы отразить мой недавний опыт решения проблем с графикой на MacBook Pro с переменными NVRAM. Я бы порекомендовал @reim изучить решение NVRAM.

Ваша запланированная процедура возможна. Ваша запланированная процедура не так сложна. Ваша запланированная процедура - не лучший вариант.

Почему этот маршрут неоптимален

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). Идентификатор предназначен не только для AMD dGPU, но и для всех dGPU. Подтверждено, что это работает с чипами NVidia. Это также легко обратимо с помощью сброса NVRAM.

Недостатки этой стратегии в данной ситуации

А теперь обратная сторона: потенциально есть две небольшие проблемы:

  1. После принудительного применения этих настроек NVRAM macOS может «немного запутаться». Чип все еще там, подключен и запитан.

  2. Чтобы это загрузилось, вам может потребоваться отключить графические драйверы для вашего 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 система драйверов намного лучше документирована и имхо реализована чище. Есть много способов добиться этого с помощью или загрузки 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 .

Обратите внимание на себя и других оплакивающих GPU: nvramкоманду со строкой, вызывающей сатану, необходимо давать всякий раз, когда что-то вмешивается во внутренние настройки, в результате чего ваш экран остается пустым. Это случилось со мной уже три раза, когда я невинно нажимал на информацию об этом Mac , когда отключал автопереключение видеокарты в настройках и при использовании какого-либо инструмента, поддерживающего OpenGL. Доступ в безопасном режиме и ввод команды вернули мне Mac (и мой сон тоже).
@reim Если вам нужно часто повторять строку «вызов» (хотя она должна быть немного более постоянной), проверили ли вы скрипт , чтобы автоматизировать большую часть этого ввода? apple.stackexchange.com/a/295805 ?
@LangLangC спасибо, я не знал этого поста! Сейчас он чувствует себя более или менее стабильно, но регуляторы яркости исчезли, это может потребовать n ^ сброса коляски ... О, да, это тоже упоминалось!

Запоздалый ответ на один из ваших побочных вопросов: вам, вероятно, нужен дискретный графический процессор для использования внешнего дисплея. Причина должна заключаться в том, как подключены графические процессоры и видеовыходы.

(Я наполовину предположил, наполовину экстраполировал то, как работает технология переключения графики ноутбуков ПК. Это небезосновательное предположение, что эти технологии основаны на работе поставщиков графических процессоров с Apple. Тем не менее: возьмите следующее с большим зерном соль.)

В nVidia Optimus настройка заключается в том, что встроенный дисплей ноутбука подключается к встроенному графическому процессору, а порт внешнего дисплея подключается к дискретному графическому процессору. Если вам нужно отображать материал с помощью дискретного графического процессора на встроенном дисплее, дискретный графический процессор «подчиняется» интегрированному. Вызов рендеринга сначала поступает на встроенный графический процессор, который, если дискретный графический процессор включен, перенаправляет его туда, а затем извлекает результат, чтобы вывести его на дисплей.

Если подключен внешний дисплей, вызовы рендеринга для этого дисплея направляются непосредственно на дискретный графический процессор, потому что это графический процессор, который в любом случае может отправлять любые выходные данные на этот дисплей. Встроенный графический процессор просто не может сам по себе отправлять видео на этот порт. Я не думаю, что даже возможно «подчинить» интегрированный графический процессор дискретному, потому что, во-первых, это было бы бессмысленно с точки зрения дизайна в отношении целей технологии переключения графики; и даже тогда для этого все равно потребуется включить дискретный графический процессор, что не поможет людям, чей чип выходит из строя.

Интересно! Я знаю, что Lenovo ThinkPad W530 позволил мне установить встроенный графический процессор из параметров BIOS, и я почти уверен, что это все еще позволяет мне подключать внешние мониторы. Тоже не уверен на 100%.
Как я уже сказал, я не уверен на 100% в вышеизложенном, потому что я не могу снова найти оригинальные статьи. Вполне возможно, что описанная мной разводка — не единственная возможная конфигурация, и W530 имеет встроенный графический процессор для обоих. Однако Macbook, требующий от вас запуска дискретного графического процессора для внешнего устройства, будет означать, что он действительно подключен так, как я описал.
Вам нужен дискретный графический процессор для использования внешнего дисплея. Регулярное использование дискретного графического процессора приведет к усилению шума вентилятора и сокращению срока службы материнской платы. Я больше не использую дискретный графический процессор. Я использую настольный компьютер для работы с тяжелыми предметами, но в поездках мне по-прежнему нравится большой 17-дюймовый встроенный экран.

Если кто-то все еще ищет способы сделать это, ознакомьтесь с этим сообщением на форуме MacRumors.

Я выполнил шаги, упомянутые в этом сообщении на форуме, и мой 15-дюймовый MacBook Pro 2011 отлично работает, используя только встроенную графику. Бесполезная графическая карта AMD была успешно отключена.

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/страница-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/

На какой версии OSX/macOS вы это пробовали?