Проблема с графическим процессором - загрузка зависает на сером экране

43

Я нашел это в соответствии с моей проблемой в этой теме:
загрузка зависает на сером экране (даже при загрузке с USB-накопителя с новой установкой OS X)

Мой MacBook Pro 15 "в начале 2011 года с AMD Radeon HD 6750M демонстрировал повреждение дисплея и связанные с ним сбои / перезагрузки системы в течение двух недель, прежде чем он полностью не загрузился. Загрузка будет проходить через серый экран с логотипом Apple и спиннером, но только когда кажется, что он должен был переключиться на экран входа в систему, логотип Apple и счетчик исчезли бы и зависли на пустом сером экране.

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

Безопасная загрузка
Загрузка в режиме восстановления (включая восстановление
из Интернета) Загрузка с установочного носителя на USB-накопитель
Загрузка с установки OS X на USB-накопитель
Очистить
сброс NVRAM SMC

Я также много раз проводил Apple Hardware Test, не обнаруживая проблем.

Verbose safe boot (Cmd + Shift + V) выводит все, что я ожидал увидеть, но затем зависал, как описано выше.

После того, как на форумах Apple появилось больше сообщений о проблемах, связанных с графическим процессором, я снова рассмотрел это как причину:

MacBook Pro 2011 и дискретная видеокарта или MacBook Pro 2011 и дискретная видеокарта

Пытаясь загрузить Ubuntu с USB-накопителя, я смог добраться только до GRUB. При попытке загрузить Ubuntu Desktop или запустить графическое тестирование в GRUB система зависла.

В этот момент запуск Apple Hardware Test завис до конца стандартного теста, возможно, при предположении видео-теста.

Основываясь на совете в постах обсуждений Apple, я сделал следующее:

Загрузка в однопользовательском режиме.
Выполните следующие команды:

/sbin/fsck -fy /
/sbin/mount -uw /
mkdir /Disabled_System_Library_Extensions
cd /Disabled_System_Library_Extensions
mv /System/Library/Extensions/ATI* .
mv /System/Library/Extensions/AMD* .
touch /System/Library/Extensions
exit

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

Но когда я использую команду "mv", файлы не будут перемещены (ни удалены), и это показывает мне:
Sandbox deny (01) file-write-unlinked…

Любое решение?

Гази Марзук
источник
@klanomath Да, это проблема. Случилось и с моим старым MBP (просто зеленоватый, а не серый экран).
owlswipe

Ответы:

81

Предпосылки и объяснения

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

Все MacBook Pro 2011 года имеют серьезный дефект дизайна . Управление температурой и генерируемое тепло вместе с надежностью дискретных графических чипов AMD не очень хорошо совпадают. Apple знала об этом и вела себя как типичный мыльный Смит , реагируя на это только после возмущения. Этот скандал получил название RadeonGate. Только под угрозой коллективного иска Apple, наконец, был вынужден предложить так называемую «Программу расширения ремонта» .

Программа Apple Repair Extension больше не доступна . Единственный реальный способ решить эту проблему - заменить только чип AMD. Не логическая плата. Не «реболлинг», не «перефокусировка», не «выпечка». Apple заменила неисправный чип неисправным чипом. Снова и снова. Только замена графического чипа - все еще дорогостоящая аппаратная процедура для такого винтажного ноутбука.

Единственный известный способ - с одним только программным обеспечением - получить MacBook Pro (8,2) 2011 года с «только» вышедшим из строя графическим чипом AMD, чтобы практически снова надежно включиться, загрузиться в macOS и быть вполне пригодным для использования с ускоренным графическим интерфейсом. Это руководство или его вариант. Большинство предыдущих советов просто удалили все AMD-kexts, и это привело к ужасному взаимодействию с пользователем без какого-либо ускорения графического интерфейса.

Нужно знать вашу точную версию ОС. Следующее руководство будет проще для Йосемити, но предполагает El Capitan или новее. El Capitan, Sierra и High Sierra должны отключить SIP (защиту целостности системы). В предыдущих системах (10.6–10.10) эти шаги не нужны.

Важное замечание : В этом руководстве также предполагается, что все кексы по-прежнему находятся в их расположении по умолчанию / Система / Библиотека / Расширения. Наличие всех AMD-kexts, кроме одного , полезно для «правильной» работы. Предыдущие взломы в этом направлении могли указывать вам двигаться, или, что еще хуже, удалить все расширения ядра AMD * / ATI *. В этом случае: либо переместите кексы обратно в их расположение по умолчанию, либо переустановите систему по вашему выбору. Наличие большинства кексов AMD на месте, а затем загрузка X3000-кекста с задержкой позволят управлять питанием графического процессора, который в противном случае будет сжигать электричество бесплатно (и может ускорить окончательную тепловую смерть чипа в довершение всего этого). Повторим: только файл AMDRadeonX3000.kextдействительно отсутствовал при загрузке, чтобы обеспечить успешный запуск, но все остальные (необходимые) драйверы AMD должны быть в их расположении по умолчанию, а X3000-kext загружаться впоследствии / с задержкой, чтобы вернуться в сферу практически разумного управления питанием и температурой.

В обход дискретного графического чипа

Чтобы вернуть некоторое ускорение дисплея, необходимо заставить компьютер загружаться не с дискретной графикой (dGPU), а непосредственно с интегрированной графикой (iGPU) и оставаться в этом режиме.

Загрузка в режиме dGPU используется по умолчанию на компьютерах Mac с двумя переключаемыми графическими картами. Приведенная ниже процедура устанавливает переменную NVRAM, которая отключает dGPU и вынуждает систему использовать только интегрированную графику Intel даже при загрузке.

Переменная NVRAM недокументирована, но, по-видимому, универсально применима ко всем компьютерам Mac с двумя переключаемыми графическими картами. Это означает, что он должен работать на iMac и MacBook Pro. Есть ли у них чипы AMD или NVIDIA. Подробности о драйверах, которые могут понадобиться для перемещения, охватывают только AMD в этом руководстве. Но переменная NVRAM обойдет дискретный графический чип в любом случае.

Это вернет вам ваш компьютер - но вы потеряете некоторые функции: например, возможность управлять внешним дисплеем из DisplayPort, немного 3D производительности. Соединения данных Thunderbolt должны работать.

Если это руководство не работает или больше не требуется: эта процедура является чисто программной конфигурацией и, следовательно, полностью обратимой в любое время с простым сбросом NVRAM .

Начальная процедура:

Часть 1: Отключить SIP, отключить dGPU, переместить одно расширение ядра

  1. Для запуска с чистого листа: сброс SMC и NVRAM:
    выключение, отключите все, кроме питания, теперь удерживайте

    leftShift+ Ctrl+ Opt+ Power
    И отпустить все в то же время;

  2. Теперь включите снова и удерживайте

    Cmd+ Opt+ p+ r
    в то же время, пока вы не услышите сигнал запуска два раза.

  3. Загрузитесь в Single User Recovery, удерживая

    Cmd+ r+s

  4. Отключить SIP: введите:

    csrutil disable

  5. отключите dGPU при загрузке, установив следующую переменную:

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

  6. включить подробный режим загрузки:

    nvram boot-args="-v"

  7. перезагрузитесь в однопользовательский режим, удерживая

    Cmd+ s
    при загрузке

  8. смонтировать корневой раздел с возможностью записи

    /sbin/mount -uw /

  9. создать каталог kext-backup

    mkdir -p /System/Library/Extensions-off

  10. только уберите ОДИН оскорбительный кекст с дороги:

    mv /System/Library/Extensions/AMDRadeonX3000.kext /System/Library/Extensions-off/

  11. сообщить системе обновить свой kextcache:

    touch /System/Library/Extensions/

  12. перезагрузиться нормально:

Теперь у вас должен быть ускоренный дисплей iGPU, но система не знает, как управлять питанием неисправного чипа AMD. (В этом состоянии GPU всегда работает на холостом ходу с относительно высокой мощностью, потребляя совсем немного батареи, когда он отключен от сети, и приводит к температуре GPU от 60 ° C и выше [в среднем 60-85 ° C], несмотря на то, что система ничего не использует для системы .)

Часть 2: улучшить управление температурой и энергопотреблением

Для улучшенного управления питанием отключенного графического процессора вы должны вручную загрузить один критический kext после загрузки:

sudo kextload /System/Library/Extensions-off/AMDRadeonX3000.kext

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

Автоматизируйте это с помощью следующего LoginHook, который будет выполнен после следующей перезагрузки:

sudo mkdir -p /Library/LoginHook   
sudo nano /Library/LoginHook/LoadX3000.sh

со следующим содержанием:

#!/bin/bash
kextload  /System/Library/Extensions-off/AMDRadeonX3000.kext
pmset -a force gpuswitch 0    # undocumented/experimental
exit 0

затем сделайте его * 1 исполняемым и активным:

sudo chmod a+x /Library/LoginHook/LoadX3000.sh  
sudo defaults write com.apple.loginwindow LoginHook /Library/LoginHook/LoadX3000.sh 

* 1: Недокументированное использование этой команды pmset, кажется, улучшает поведение сна / пробуждения / выключения. Если это не так, поэкспериментируйте с этим.
См. Отказ от ответственности ниже. Следующее - только предположение: сон / бодрствование / выключение могут оставаться неприятными. Теория здесь заключается в том, что «что-то медленно портит» то, что сохраняется в SMC. Следовательно, сброс SMC и повторное применение хака переменных, похоже, на некоторое время облегчает ситуацию. (Постоянные решения для этого приветствия!) В качестве короткого временного решения вы можете попытаться избежать «спящего при закрытии крышки», который, кажется, доставляет больше хлопот, чем другие методы (Apple-Menu, Keyboard-Shorcut). Кажущиеся зависания при выключении - это обычно просто очень большие задержки, которые в конечном итоге завершатся чисто и успешно.
Ненаучная выборка показывает, что Йосемити является худшим для этого, и Эль-Капитан и Сьерра намного лучше вели себя в этом отношении.

Задержка загрузки этого важного расширения ядра вручную или иным образом позволяет системе лучше справляться с управлением питанием. Батарея будет использоваться меньше, а температура, исходящая от неиспользуемого графического процессора, упадет до диапазона значительно ниже 50 ° C (в среднем между 15-50 ° C).

Для правильного управления питанием минимальный набор загруженных кексов находится при загрузке (версии для 10.12.6, проверьте с kextstat | grep AMD):

com.apple.kext.AMDLegacySupport (1.5.1) 
com.apple.kext.AMD6000Controller (1.5.1)  
com.apple.kext.AMDSupport (1.5.1)
com.apple.kext.AMDLegacyFramebuffer (1.5.1) 

И если вышеуказанный способ загрузки завершился успешно, он должен появиться в списке:

com.apple.AMDRadeonX3000 (1.5.1) 


Последний шаг - перезагрузка еще раз в SingleUserRecovery.
Сделайте это с Cmd+ r+ s
после того, как командная строка станет активной, введите:

 nvram boot-args="-v agc=0"   

и перезагрузиться нормально.

Это немного охладит dGPU.

Необходимо выполнить эту команду из SingleUserRecovery, так как система с включенным SIP заблокирует ваши попытки установить эту переменную при загрузке с обычного загрузочного тома, будь то в обычном режиме полной загрузки или обычном SingleUser. Важно отметить, что для этого этот шаг не может быть легко интегрирован в скрипт force-iGPU.sh (который вы создадите через минуту) и должен быть повторен сам по себе после сброса NVRAM.

Этот последний шаг предполагает, что SystemIntegretyProtection был повторно включен. Но если SIP намеренно и навсегда отключен, то этот шаг можно интегрировать в приведенный выше скрипт force-iGPU.sh.
Но поскольку каким-то образом я намеревался постоянно отключать SIP, и он был снова включен, и я об этом не заметил, полагаться на то, что SIP остается «выключенным», может оказаться не лучшим подходом. Очистка NVRAM, где хранятся настройки SIP, может быть одним из таких непредвиденных помех.

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

Есть еще два предостережения, которые нужно знать: это обратимо при сбросе SMC / NVRAM. В этом случае переменную NVRAM для pref-power-pref может быть или даже должна быть установлена ​​заново, чтобы принудительно использовать iGPU во время загрузки.

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

 sudo nano /force-iGPU-boot.sh

- Введите следующий файл в этот файл:

#/bin/sh
sudo nvram boot-args="-v"
sudo nvram fa4ce28d-b62f-4c99-9cc3-6815686e30f9:gpu-power-prefs=%01%00%00%00
exit 0

- Теперь сделайте этот исполняемый файл:

sudo chmod a+x /force-iGPU-boot.sh

В будущем, когда SMC / PRAM / NVRAM будет сброшен до значений по умолчанию, теперь можно загружаться в SingleUser с:

Cmd+s

- И после монтирования чтения-записи загрузочного тома выполнить только одну строку:

sh /force-iGPU-boot.sh


Помните, что переменная agc теперь также очищается. (См. Выше)
Кроме того, убедитесь, что вы снова установили загрузочный том по умолчанию в Системные настройки> Загрузочный диск.

Часть 3: Обработка обновлений от Apple

У этой установки теперь есть один кекст в месте, которое установщики Apple не ожидают. Вот почему в этом руководстве SIP не был включен. Если должно произойти обновление, содержащее изменения в драйверах AMD, рекомендуется переместить AMDRadeonX3000.kext обратно в его расположение по умолчанию до процесса обновления. В противном случае программа обновления записывает, по крайней мере, другой kext другой версии в свое местоположение по умолчанию, или в худшем случае вы получите неопределенное состояние частично несовпадающих драйверов.

После любого обновления системы необходимо проверить папку / System / Library / Extensions на наличие поврежденного текста. Его присутствие там приведет, например, к зависанию загрузки на Yosemite и Sierra, перегреву петли загрузки в High Sierra.

Обновление до High Sierra 10.13: с этим хаком практически ничего не происходит : несмотря на обновление прошивки, процесс установки не должен касаться переменной NVRAM. В процессе установки также используется не полностью ускоренный чип AMD, а базовое ускорение, которое не вызывает проблем в этом случае. Однако, как отмечалось в параграфе выше, первая загрузка в систему, которая закончила установку, но вот-вот начнется процесс установки, создаст цикл загрузки, вызванный перегревом / сбоем. Поврежденное расширение ядра должно быть перемещено снова, как описано выше. (Начиная с шага 3) После перемещения кекста все будет хорошо.

Последние обновления от Apple: не обновляйте, пока не прочитаете следующее.

До дальнейшего уведомления:
последние обновления снова ломают машину. Он обновляет прошивку, RecoveryPartition, кажется, отключает возможность загрузки в SingleUserRecoveryMode
и завершает его установку - даже с DeltaUpdate - работающим AMDRadeonX3000.kext!
Без подготовки и только под рукой вы будете немного застревать.

В случае, если SingleUserRecoveryMode ушел навсегда, используйте обычный RecoveryMode. Результаты одинаковы, загрузка немного медленнее: описанная выше процедура все еще действует и быстрее для всех предыдущих версий Mac OS X / macOS.

Но если вы обновитесь до 10.13.6 или более поздней версии:
тогда вы должны заменить инструкции для SingleUserRecoveryMode ( Command+ r+ s) обычным RecoveryMode ( Command+ r) и отключить SIP через терминал ( пример для этого точного варианта использования ).

Если вы принадлежите к тем, где даже обычный RecoveryMode не работает
должным образом: Обходные пути для невозможности отключить SIP с SingleUserRecovery:

  1. Сначала загрузитесь в однопользовательском режиме восстановления. Редактирование csrutil недопустимо в этом режиме, но может установить свойство gvu-power-prefs nvram. Это поможет перезагрузить машину в режиме восстановления. Затем вы должны заменить инструкции для SingleUserRecoveryMode ( Command+ r+ s) обычным RecoveryMode ( Command+ r) и отключить SIP через терминал ( пример для этого точного варианта использования ).

  2. Перед обновлением подготовьте загрузочный том. Это может быть внешний диск или флешка. Любая версия, которая загружает машину, будет в порядке. Такой диск можно создать на другом Mac.
    Имейте в виду, что на внешнем диске AMDRadeonX3000.kext также должен быть (пере) перемещен. Попробуйте загрузиться с этого диска. Только если это работает должным образом, и вы можете подключить к нему свой внутренний диск: перезагрузитесь с внутреннего диска и продолжите обновление вашего внутреннего диска / системы до 10.13.6.
    После того, как обновление почти закончено, одна перезагрузка зависнет. Принудительное завершение работы и перезагрузка с внешнего диска. Смонтируйте внутренний диск и переместите Radeon.kext. SIP защищает только загруженную систему.

  3. Предложенный где-то онлайн, но действительно отчаянное предположение и непроверенное: вместо SingleUserRecoveryMode Cmdrsвы можете попробовать InternetRecoverySingleUserMode CmdOptrs. В качестве альтернативы, возможно, стоит попробовать проверить, работает ли SafeRecoveryMode CmdShiftr.

    Режим графического восстановления тоже может не сработать, как у меня. Однако в последней версии High Sierra все еще можно загружаться в однопользовательском режиме восстановления. Просто нужно хорошее время. Хитрость заключается в том, чтобы сначала включить режим восстановления нажатием cmd + R и сразу после того, как он распознается командой cmd + S для однопользовательского режима. Точный момент должен быть выяснен пользователем. Если одновременно нажать cmd + R + S, будет активирован только однопользовательский режим. Если сначала нажать cmd + R, а cmd + S нажать слишком поздно, загружается графический режим восстановления. - TAKeanice ↵

Клавиши яркости экрана не работают в High Sierra?

Apple изменила способ обработки событий клавиатуры для изменения яркости экрана в High Sierra. С этим хаком или аппаратными модами, приведенными ниже, клавиши будут не функционировать. Еще одна причина остаться с Сьеррой. Но с этим взломом вы также можете прибегнуть к использованию другого программного решения. Помимо взлома вашего собственного решения AppleScript вы можете попробовать готовые приложения или приложения.

Например, Brightness Slider в AppStore предлагает настраиваемые сочетания клавиш.


Чтобы избежать этих сбоев / зависаний / загрузочных циклов - которые никогда не являются хорошей идеей для вашей файловой системы - при новой установке или обновлении: обязательно присматривайте за процессом установки и всегда загружайтесь в SafeMode (удерживайте Shiftнажатой во время загрузки до kext перемещен в безопасное место - установка в SafeMode должна проходить очень хорошо.

Заключительные замечания и рекомендации

Далее: этот ноутбук перегревается, что бы вы ни делали. Система охлаждения неадекватна, и огромное количество неисправных чипов AMD - тому подтверждение.

Чтобы продлить срок службы этой теперь взломанной машины, желательно воздерживаться от действительно тяжелой работы в течение продолжительных периодов времени. Строго следуйте обычным рекомендациям для ноутбуков: используйте на твердых поверхностях, держите вентиляторы и ласты внутри них в чистоте. Использование любого программного обеспечения fancontrol с относительно агрессивными настройками также должно помочь: например, smcFanControl , MacsFanControl или TGPro (оба коммерческих).

Отказ от ответственности: Вся эта процедура не волшебная пуля. Состояние отказа этих чипов не на 100% предсказуемо. У очень немногих пользователей есть проблемы даже с этим взломом: могут быть проблемы с перезагрузкой, сном или пробуждением, большинство из них от пользователей с Yosemite, наименьшее количество проблем с Sierra. В этих случаях иногда кажется необходимым не использовать AMDRadeonX3000.kext и, следовательно, также не LoginHook из части 3. (Но см. Дополнительное примечание в разделе * 1 выше.) Непропорциональное количество пользователей в High Sierra сообщает о проблемах с их дисплеями регулировка подсветки. Так что в настоящее время наилучшим выбором для выбора операционной системы является, на мой взгляд, 10.12 Sierra.

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

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


Аппаратные моды / хаки

Несколько способов доступны сейчас, некоторые плохие, некоторые хорошие.

Плохое решение: очень дешевая аппаратная модификация доступна в / от RealMacMods: хотя они используют относительно сложный способ установки необходимой переменной EFI с помощью linux, преимущество заключается в том, что полностью снижается напряжение ядра до dGPU путем удаления всего одного крошечного резистора. ! (Картинки по ссылке)

При такой перезагрузке важно, чтобы вы один раз загрузились в безопасном режиме (удерживайте Shift на протяжении всей загрузки), а затем выберите в меню выключение (не перезапуск).
Сделайте безопасную загрузку с установленным резистором R8911. Без этой безопасной загрузки следующие шаги могут не сработать.
Не делайте больше ботинок, пока не выполните следующие шаги.
Безопасная загрузка очищает настройки графического процессора на уровне ОС, которые могут помешать следующему процессу.
Теперь ваш MacBook Pro перестанет автоматически переключаться на Radeon, но все равно будет потреблять энергию, нагреваться и быть видимым для ОС.
Мы обнаружили, что простое удаление 1 резистора решит эту проблему.
Резистор также можно заменить выключателем, если вам по какой-либо причине необходимо снова включить Radeon.
Расположение этого резистора варьируется в зависимости от модели логической платы.
Рассматриваемый резистор - R8911 на 17-дюймовом MBP и R8911 на 15-дюймовом MBP - резистор на 1 Ом, который обеспечивает путь тока к преобразователю ISL6263C DC в DC.
Этот резистор управляет питанием регулятора напряжения, который подает напряжение ядра на графический процессор Radeon. Проще говоря, без напряжения ядра, без графического процессора. Вы найдете резистор справа от охлаждающего вентилятора (в вышеуказанной ориентации). Это будет рядом с чипом преобразователя напряжения ISL. Это чип, который мы будем отключать.
Просто удали это. Предпочтительный метод - это профессиональная станция рефлоу, но железная и устойчивая рука доставит вас туда, куда вам нужно. Если вы использовали флюс для его удаления (не требуется), обязательно очистите его небольшим количеством спирта или другого подходящего растворителя.
Это в основном это. При следующей загрузке вы заметите, что проблема с дефектом вашего GPU устранена, и вы больше не увидите GPU AMD в качестве установленного оборудования.

Я не проверял это, но это должно устранить необходимость заботиться о кексах, а также решить любые проблемы, связанные со сном, пробуждением, спящим режимом, перезагрузкой и т. Д.
Одно предостережение при рассмотрении этого метода: поскольку он также, похоже, полагается на наличие этого набора переменных NVRAM похоже, что абсолютно необходимо иметь полностью автоматизированный метод установки этой переменной без какого-либо вмешательства пользователя. (Как и в случае с linux-флешкой, которая вносит необходимые изменения). В противном случае сброс NVRAM может привести к поломке машины. Производитель утверждает, что не имеет данных об этом!

(После прочтения истории пользователя, укушенного этим методом, в итоге появляется только черный экран: кажется возможным удаленный доступ к машине с помощью VNC или ssh, поэтому, если они настроены заранее, это действительно может быть неплохой вариант после все, поскольку переменная nvram может делать ставки таким образом. Помните: непроверенная история в Интернете.)

Постоянное, надежное и дешевое аппаратное решение!

Dosdude1, по-видимому, нашел решение, которое кажется святым Граалем для решения этой проблемы: постоянное отключение 2011 15-дюймового 17-дюймового MacBook Pro, выделенного графического процессора, - обход микросхемы gMux

  • Вариант A, который будет подробно описан ниже, заключается в жестком подключении выходных линий LVDS от встроенных графических выходных линий LVDS прямо к линиям, соединяющим дисплей.
  • Вариант B заключается в том, чтобы перепрограммировать микросхему gMux (которая является просто микроконтроллером Lattice LFXP2) с помощью специальной прошивки для отключения функции переключения графического процессора. Я могу экспериментировать с этим в будущем, но для этого требуется специальное оборудование, которого у меня нет. Это было бы, конечно, оптимальным решением.

Это почти легко. Все, что нужно, это провода различной длины . Чтобы получить представление: введите описание изображения здесь также на YouTube!

«Плохое решение» сверху теперь превращается в почти профессиональное и готовое аппаратное решение, устраняя предыдущую «плохость» этого подхода:

Tiresias (GPUkiller): Tiresias - это небольшая плата, которая может быть припаяна к материнской плате моделей MacBook Pro 15 или 17 дюймов 2011 года (ранняя или поздняя).

Это все модели с материнскими платами 820-2914-A, 820-2914-B, 820-2915-A или 820-2915-B.

Плата 820-2914 и 820-2915 имеет два графических процессора. Внутренний (Intel) GPU, который является частью PCH, и внешний (дискретный) AMD GPU. Это внешний графический процессор, который выходит из строя в «небольшом проценте систем MacBook Pro» (Apple говорит: «очень много»). Tiresias записывает переменную nvram 'gpu-power-prefs' в ПЗУ, чтобы Mac больше не использовал (мертвый) внешний (дискретный) графический процессор AMD. Если пользователь очищает NVRAM (PRAM), проблем нет, поскольку Tiresias снова запишет запись, и Mac снова заработает.

Это делает это идеальным решением для оживления 820-2914 или 820-2915 с мертвым графическим процессором. Установка проста (без проводов, чтобы припаять). Вам нужно будет установить очень маленькую плату на материнскую плату. Опытный техник может сделать это за считанные минуты. Кроме этого R8911 должен быть удален, чтобы отключить питание мертвого графического процессора. Это экономит энергию, выделяет меньше тепла и продлевает срок службы батареи. Удаление R8911 также предотвращает путаницу Mac из-за неработающего GPU, поскольку даже при выключенном GPU он все равно будет пытаться общаться с неработающим GPU. В зависимости от того, какие внутренние контакты в GPU разорваны, это может сбить с толку или даже сломать Mac.

Mac OS X 10.13 High Sierra также поддерживается. Чтобы решить проблему, когда подсветка не включается после сна, также удалите R9704 и подключите контакт 2 R9704 к контакту 1 C9711.

Технические характеристики Tiresias (GPUkiller) Tiresias - это небольшая плата, которая может быть припаяна к материнской плате моделей MacBook Pro 15-дюймовой или 17-дюймовой модели 2011 года (ранней или поздней).

Это все модели с материнскими платами 820-2914-A, 820-2914-B, 820-2915-A или 820-2915-B.

Плата 820-2914 и 820-2915 имеет два графических процессора. Внутренний (Intel) GPU, который является частью PCH, и внешний (дискретный) AMD GPU. Это внешний графический процессор, который выходит из строя в «небольшом проценте систем MacBook Pro» (Apple говорит: «очень много»). Tiresias записывает переменную nvram 'gpu-power-prefs' в ПЗУ, чтобы Mac больше не использовал (мертвый) внешний (дискретный) графический процессор AMD. Если пользователь очищает NVRAM (PRAM), проблем нет, поскольку Tiresias снова запишет запись, и Mac снова заработает.

Это делает это идеальным решением для оживления 820-2914 или 820-2915 с мертвым графическим процессором. Установка проста (без проводов, чтобы припаять). Вам нужно будет установить очень маленькую плату на материнскую плату. Опытный техник может сделать это за считанные минуты. Кроме этого R8911 должен быть удален, чтобы отключить питание мертвого графического процессора. Это экономит энергию, выделяет меньше тепла и продлевает срок службы батареи. Удаление R8911 также предотвращает путаницу Mac из-за неработающего GPU, поскольку даже при выключенном GPU он все равно будет пытаться общаться с неработающим GPU. В зависимости от того, какие внутренние контакты в GPU разорваны, это может сбить с толку или даже сломать Mac.

OS X 10,6 - 10,12 (Сьерра)

Ползунок подсветки (в Системных настройках) и клавиши подсветки (F1 и F2) работают. Система сна работает. Видеовыход через порт Thunderbolt не работает, но все остальные функции порта Thunderbolt работают.

OS X 10.13 (Высокая Сьерра)

Насколько нам известно, 10,13 (Высокая Сьерра) не дает никаких преимуществ по сравнению с 10,12 (Сьерра). Apple полностью переделала видеодрайверы в High Sierra и, похоже, все испортила. Элементы управления подсветкой не будут работать. И что еще хуже, после того, как машина выходит из спящего режима, подсветка вообще не включается.

Чтобы решить проблему, при которой подсветка не включается после сна, удалите R9704 и подключите контакт 2 R9704 к контакту 1 C9711. Это установит полную яркость подсветки. Недостатком является то, что с этой модификацией яркость также будет на полной яркости с прежними ОС.

Tiresias для 820-2915 (15 дюймов) Количество один (1) Включая доставку (по всему миру) 60 евро.

введите описание изображения здесь введите описание изображения здесь введите описание изображения здесь


Обновление для универсального программного решения

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

Увы, это приложение сделано dosdude1 и не документировано. На экране readme говорится, что он установит переменную NVRAM, переместит все драйверы графического ускорения, а затем установит launchdaemon для обработки обновлений и обеспечения того, чтобы переменная оставалась установленной.

Не проверено мной и не одобрено мной, если вы уже выполнили процедуру, описанную выше!
Но если процедура не сработала в какой-то момент для вас или кажется просто пугающей для начала, то вы можете попробовать это:

dosdude1: Другое недокументированное программное обеспечение, которое я написал, хранится здесь: MacBook Pro dGPU Disabler.zip

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


Пасхальное обновление 2019 года: решение за 20 $, в котором используется 64-разрядный компьютер под управлением Windows и программатор Lattice HW-USBN-2A ICSP FPGA для применения специальной микропрограммы для микросхемы gMux. Dosdude1 утверждает, что это «идеальное» решение, означающее, что даже при работе от батарей HighSierra и Mojave, температура, регулировка яркости и режим пробуждения / сна работают, как и ожидалось. Использование этого решения является постоянным и делает все вышеперечисленное устаревшим.
Но это новое решение не является бесплатным и требует аппаратного обеспечения в виде ПК с Windows и программиста); а также в настоящее время паяем несколько проводов временно к плате логики.)

LаngLаngС
источник
2
@Tarek Странно. Вы, кажется, находитесь на Высокой Сьерре. Я не знаю, ужесточили ли они это в последнее время. У вас есть старая система загрузки? С Йосемити это работает всегда; в Сьерре, как описано выше (и из обеих настроек будет придерживаться). В противном случае я бы предложил отключить SIP и повторить попытку (тогда, может быть, тоже из обычной загрузки?). (Уход agcне является катастрофическим, я запускал Mac в течение месяца без него, прежде чем нашел этот трюк. Улучшение варьируется только от «немного» до «ОК, почти замечательно»). Радикальным шиком было бы использование linux stick и установка переменной из там…
LаngLаngС
6
Спустя пару месяцев, пытаясь вернуть свой 17- дюймовый mbp в конце 2011 года в страну живых, я, наконец, обнаружил, что проблема заключалась в дискретном графическом процессоре. Честно говоря, @LangLangC за все мои годы в ИТ я никогда не видел такого логически написана и всеобъемлющее объяснение хорошо сформированного решения, с подробно неоспоримо-экспертном уровне. и все от альтруистического желания помогать другим. Я печатаю это на моем возрожденного MBP, и в то время как я знаю , что вы не сделали сделайте это, чтобы заработать деньги, вы спасли мне потенциально тысячи, так что я отправлю вас в PM в надежде, что смогу купить вам пиво через Патреон и т. д. Большое спасибо.
bobsmells
2
Для записи, начиная с 10.13.4, кексами, относящимися к графическим процессорам AMD, являются: com.apple.kext.AMDLegacySupport (1.6.6), com.apple.kext.AMD6000Controller (1.6.6), com.apple.kext.AMDLegacyFramebuffer (1.6.6) и com.apple.kext.AMDRadeonX3000 (1.6.6).
Кендалл Листер
4
Работал для меня на 17 "в начале 2011 года под управлением Sierra! Внешний дисплей не работает, но лучше, чем гигантский пресс-папье! Обратите внимание (для нубов, как я), вам нужно печатать rebootпосле первоначального отключения SIP csrutil disableи после изменений gpu nvram в восстановлении. Я не был уверен, как перезагрузиться с терминала восстановления, и попытался принудительно отключить питание, но изменение SIP не сохранилось таким образом
Will Buck
2
Спасибо за этот замечательный сборник всех возможных решений для нашего любимого Mbp 2011 года. Я воскресил свою мертвую записную книжку с помощью метода удаления nvram и kext на High Sierra, теперь обновленного до 10.13.6. Все работает как надо, ноутбук работает круче, регулировка яркости работает нормально, сон тоже работает отлично. Сегодня я подключил кабель Thunderbolt к другому работающему Mac в режиме Target disk, но ничего. Перезагрузил 2011 mbp в TDM, ничего на другом mac. Я чувствую, что соединение для передачи данных Thunderbolt осуществляется через GPU, поэтому оно разорвано. В отличие от некоторых упоминаний «ТБ должен работать». Сейчас протестирую его с eGPU
Mayank Chandak
1

Если проблема в том, что вы не можете переместить эти файлы, возможно, вам мешает защита целостности системы. Я предполагаю, что вы на Эль-Капитане или Сьерре.

  • Выключи свой ноутбук.
  • Нажмите Ctrl + R, а затем кнопку питания для загрузки в режим восстановления.
  • Нажмите меню Утилиты и выберите Терминал.
  • Введите csrutil disableи нажмите возврат.
  • Закройте приложение «Терминал» и выйдите из режима восстановления.
  • Теперь попробуйте вернуться в однопользовательский режим и попробуйте ввести mvкоманду.

Если это сработало, повторно включите SIP:

  • Выключи свой ноутбук.
  • Нажмите Ctrl + R, а затем кнопку питания для загрузки в режим восстановления.
  • Нажмите меню Утилиты и выберите Терминал.
  • Введите csrutil enable и нажмите возврат.
  • Закройте приложение «Терминал» и выйдите из режима восстановления.
Snacking_IT
источник
@klanomath спасибо за ваш быстрый ответ. Но единственный режим, который я могу использовать, это однопользовательский режим. Он зависает в режиме восстановления даже в режиме восстановления интернета.
Гази Марзук
@GhaziMarzouk Snacking_IT ответил на ваш вопрос! Я просто немного его отредактировал ...
klanomath
@ Snacking_IT спасибо за ваш быстрый ответ. Но единственный режим, который я могу использовать, это однопользовательский режим. Он завис в режиме восстановления даже в режиме восстановления Интернета
Гази Марзук
2
Так же, как обновление, в ответе @ LangLangC мне не удалось отключить SIP на El Capitan во время шагов 1.3 и 1.4, так как при восстановлении одного пользователя монтируется диск только для чтения. Вышеописанный подход (вместо этого загрузка в режим восстановления) работает, поэтому эту информацию полезно включить.
Twitch_City
1

Благодаря этому ответу https://apple.stackexchange.com/a/295805/300460 от https://apple.stackexchange.com/users/251859/langlangc . Я последовал за ним, когда у меня была эта проблема в прошлом сентябре2018. Однако я изо всех сил пытался выяснить точные шаги дельты, которые должны быть выполнены во второй раз, когда вчера я снова столкнулся с той же проблемой, когда делал обновление OSX Security 2019-003. Итак, подумал о том, чтобы опустить именно эти шаги, думая о тех пользователях, которые могут столкнуться с этой проблемой во второй раз. Еще раз огромное спасибо langlangc за оригинал.

Я был на OSX 10.13.6 в то время, когда я делал обновление.

  1. Перезапустите в однопользовательском режиме, нажав и удерживая Cmd + S (Cmd + R не загружается, давая белый экран. На самом деле, langlangcпопросил меня подтвердить это в сентябре2018; но я не смог ответить, так как у меня нет разрешения на комментарий)
    • Бег sh /force-iGPU-boot.sh
  2. Перезапустите в режиме восстановления, нажав и удерживая Cmd + r
    • Запустите эти команды. На самом деле я поместил их в небольшой файл сценария /force-iGPU-boot_without_sudo.sh.
      csrutil disable nvram fa4ce28d-b62f-4c99-9cc3-6815686e30f9:gpu-power-prefs=%01%00%00%00 nvram boot-args="-v"
  3. Перезапустите в однопользовательском режиме, нажав и удерживая Cmd + s
    • Убедитесь, что существующая /System/Library/Extensions-offпапка удалена после создания резервной копии
    • Запустите эти команды. Опять же, я положил их в небольшой файл сценария /move_out_amd_kext.sh /sbin/mount -uw / mkdir -p /System/Library/Extensions-off mv /System/Library/Extensions/AMDRadeonX3000.kext /System/Library/Extensions-off/ touch /System/Library/Extensions/
    • Войти nvram boot-args="agc=0"
    • Войдите, rebootчтобы загрузить это нормально.

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

Обновление 12 августа 2019 г.

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

Обновление 14 августа 2019 г.

Загрузился успешно, когда я отключил SIP в режиме восстановления. Я не могу вспомнить, делал ли я это раньше - но теперь, наверное, смогу.

Я потратил много времени, подозревая множество разных причин - в том числе проблемы с графическим процессором или потенциальные ошибки в обновлении безопасности 10.13.6 2019-004.

Тем не менее, теперь я заметил, что на этот раз он загрузился даже с проблемным /System/Library/Extensions/AMDRadeonX3000.kextна месте !!!

Обновление 11 ноября 2019 г.

AMD6000Controller.kextНеобходимо , чтобы получить контроль яркости обратно на работу , как обычно. Этот кекст должен присутствовать на /System/Library/Extensions/.

Радж
источник
Не могли бы вы объяснить, что именно вы имеете в виду под "2-й раз"? Вышеприведенное выглядит так, как будто вы сбрасывали NVRAM / PRAM в процессе. Или это действительно то, что вы сделали, работая с 10.13 и только что применив недавнюю SecUpdate? (Сам SecUpdate не должен делать ничего, чтобы аннулировать сам взлом, но установить работающий AMD.kext в - для взлома - неправильное место, и, следовательно, должен быть перемещен). Или с другой стороны: был ли сброшен NVRAM во время обновления?
LаngLаngС
Я уже работал над 10.13.6, который был сделан в прошлом сентябре 2016 года после вашего ответа. Затем применил обновление безопасности вчера, после чего я снова застрял с белым экраном. Я никогда не играю с файлами KEXT, если мне не нужно следовать вашим инструкциям, чтобы устранить проблему с белым экраном после обновления безопасности. С помощью только шага 1 (1-й однопользовательский режим) проблема не устранялась, поэтому мне пришлось перейти к шагу 2 (режим восстановления) после перехода к шагу 3 (снова однопользовательский режим).
Радж
Я только что обновил свой том High Sierra последним обновлением безопасности 2019-005. Панель процессов застряла при перезагрузке, поэтому я ждал, пока фанаты остановятся, и перезагрузил мой MBP вручную в однопользовательском режиме и следовал вашим указаниям. Работал нормально! Несколько вопросов: почему вы должны повторить взлом NVRAM на шаге 2? это уже в /force-iGPU-boot.shскрипте нет? и мой Extensions-offкаталог уже был на месте, я просто переместил новый AMDRadeonX3000.kextи назвал его AMDRadeonX3000v2.kext. Кажется, лучше сохранить и загрузить оригинал, как указано в руководстве @LangLangC.
aroom
1
@aroom Вышеприведенное повторяет несколько лишних шагов, не причиняя вреда, только подход с поясом и подтяжками. Ключ к обновлениям - с NVRAM на месте, работающий X3000 зависает при загрузке. Довольно часто Apple отправляла дефектный kext, который зависел от одной первоначальной установки, во всех дельтах отсутствовал важный файл. (Для получения оптимальных результатов мы должны были вставить старый kext на место, затем обновить его, затем снова перейти на Ext-off). Теперь, когда Apple наконец исправила это, лучше всего использовать новейший kext из обновления, соответствующий номерам версий в обновлении. , С выключенным SIP, просто загрузите SafeMode и mv в Ext-off, удалив предыдущую версию.
LаngLаngС