Apple

Résolu – Forcer le MacBook Pro 8,2 2011 avec le GPU AMD défaillant à utiliser TOUJOURS le GPU intégré Intel (correctif de variable EFI)

Par Maximus , le 14 août 2019 - 19 minutes de lecture

Si vous n'avez pas le temps de lire mon histoire (qui décrit également certaines approches techniques intéressantes) il suffit de faire défiler ce fil jusqu'à un texte "100% WORKING SOLUTION"

Le GPU AMD discret de mon MacBook Pro 2011 8,2 a finalement échoué pour les raisons mentionnées ici ( http://logicboardmac.blogspot.ru/ ) et là (https://www.macrumors.com/2015/02/19/2011-macbook-pro-repair-program-apple/) . Cela fait 6 ans qu'il fonctionne parfaitement sous une charge assez élevée, et même d'essayer l'exploitation SETI @ HOME en arrière-plan! J'étais donc convaincu que mon MBP n'est pas affecté par une mauvaise qualité de soudure et que je ne voulais pas le proposer à Apple pour un programme de réparation gratuit – en partie parce que je ne pouvais pas trouver le temps de mettre en pause mes projets logiciels importants, en partie parce que J'avais peur qu'Apple me donne une carte logique moins fiable ou refuse une réparation gratuite à cause des nombreux sans lien réparations que j’avais effectuées manuellement moi-même plus tôt pour économiser de l’argent: changé plusieurs fois de pâte thermique, remplacé 2 fois la batterie interne, remplacé un clavier avec des boutons cassés, etc. Mais il s’est finalement effondré la semaine dernière: l’écran de l’ordinateur portable était déformé, a refusé de démarrer OS X (toujours gelant à mi-chemin)et – le programme de réparation gratuit Apple est déjà terminé! Je sais qu'il existe des solutions abordables, telles que 50 $ BGA, ressouder dans un atelier de réparation local non officiel et qu'il est possible d'obtenir une nouvelle puce HD 6750M de remplacement auprès d'AliExpress pour 35 $ ou moins (http://www.aliexpress.com/item/DC-2…0028-216-0810028-BGA-Chipset/32764872143.html ou https://www.aliexpress.com/item/DC-2015-New -216-0810001-216-0810001-Chipset graphique / 32718112928.html, car je ne sais pas si cela est vrai – https://www.rossmanngroup.com/board…0604-replace-216-0810005-gpu -with-216-0810028) pour garantir une réparation réussie, le prix total de la réparation serait donc de 50 $ ou 50 $ + 35 $ = 85 $ – inférieur à 100 $ dans tous les cas. Mais je n’aime pas investir de l’argent dans les vieux ordinateurs, alors j’ai réfléchi – et s’il ya un bidouillage à Obliger MBP pour utiliser des graphiques intégrés TOUT LE TEMPS, même lors du démarrage? Et puis a commencé à explorer les solutions possibles …

===

Tout d’abord, il est possible de démarrer avec succès un MBP sous OS X tout en utilisant le GPU en échec, après avoir supprimé les pilotes AMD en démarrant en mode ligne de commande (CMD + S) et en entrant ces commandes:
1) fsck -fy (pour vérifier un disque)
2) mount -uw / (montez un système de fichiers racine avec des autorisations de lecture / écriture)
3) sudo mkdir / AMD_Kexts / (créez un répertoire pour stocker les pilotes AMD au cas où vous en auriez besoin ultérieurement)
4) sudo mv /System/Library/Extensions/AMD*.* / AMD_Kexts / (déplacez les pilotes AMD)
5) sudo rm -rf / System / Library / Caches/com.apple.kext.caches/ (supprimez le cache des pilotes AMD)
6) sudo mkdir /System/Library/Caches/com.apple.kext.caches/ (juste au cas où OS X serait idiot et ne recréerait pas ce répertoire, je le crée pour OS X)
7) sudo touch / Système / Bibliothèque / Extensions / (pour mettre à jour les horodatages afin que les nouveaux caches de pilotes – sans pilotes AMD – soient définitivement reconstruits)
8) sudo umount / (démontez une partition pour vous assurer que vos modifications y sont appliquées)
9) redémarrage sudo

Le degré de désagrément que vous subissez lorsque vous suivez ces étapes dépend du degré de distorsion de l'image dans votre cas. Dans mon cas, c'était encore plus difficile car la partition OS X devenait une partition "en lecture seule" (à cause de trop d'arrêts d'urgence que j'ai faits en essayant désespérément de démarrer OS X avec un GPU en panne) j'ai donc dû retirer un disque dur de MacBook Pro et (en utilisant un adaptateur USB vers SATA 2.5 "pris sur mon disque dur portable) connecté à un ordinateur sous Linux, puis suivez ces instructions:

https://superuser.com/questions/961401/mounting-hfs-partition-on-arch-linux (1ère réponse) – exécuté avec soin un certain nombre de commandes, calculé une limite sizel pour ma disposition de parition et enfin exécuté sudo mount -t hfsplus -o force, rw, sizelimit = YOURNUMBER / dev / sdb2 / mnt monter cette partition HFS + dans le répertoire / mnt en mode lecture-écriture. Puis j'ai effectué ces "1) -7)" étapes que vous voyez ci-dessus, et également réparé un système de fichiers en exécutant sudo fsck.hfsplus -f / dev / sdb2 avant de démonter une partition avec sudo umount / mnt et remettre un disque dur à MBP …

===

Cela m'a donné un MBP qui pourrait démarrer sous OS X bien que ENCORE en utilisant un GPU AMD cassé: l'image de l'écran est donc très déformée (peut naviguer sur Internet mais est assez gênant pour lire un texte), Launchpad est super laggy et vous ne pouvez pas basculer vers le processeur graphique intégré à l’aide de gfxCardStatus car: sans pilotes AMD (que nous avons dû supprimer pour démarrer avec succès sous OS X) Macbook Pro considère que son écran interne est Affichage externe et que gfxCardStatus indique qu’il est impossible de basculer car l’affichage externe utilise le processeur graphique AMD. Quelque part j'ai trouvé une suggestion qu'il est possible de reconstruire un gfxCardStatus à partir du code source – https://github.com/codykrieger/gfxCardStatus – avec supprimé ou mis en commentaire. 156-166 lignes dans le ./gfxCardStatus/Classes/GSProcess.m pour le faire ignorer l'affichage externe:

// savoir si un moniteur externe force le gpu discret
CGDirectDisplayID affiche[8];
CGDisplayCount displayCount = 0;
if (CGGetOnlineDisplayList (8, affiche, & displayCount) == noErr) {
pour (int i = 0; i <displayCount; i ++) {
si (! CGDisplayIsBuiltin (affiche))
[listaddObject:[NSDictionarydictionaryWithObjectsAndKeys:[listaddObject:[NSDictionarydictionaryWithObjectsAndKeys:[listaddObject:[NSDictionarydictionaryWithObjectsAndKeys:[listaddObject:[NSDictionarydictionaryWithObjectsAndKeys:
Str (@ "External Display"), kTaskItemName,
@ "", kTaskItemPID, nil]];
}
}

J'ai donc reconstruit un gfxCardStatus en utilisant les instructions de la dernière réponse de ce problème –
https://github.com/codykrieger/gfxCardStatus/issues/229
(également dû télécharger un MacOSX10.11.sdk à partir d'ici – https://github.com/phracker/MacOSX-SDKs/releases – décompressez-le et copiez-le dans le code XCode /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk – à cause de la stupidité d'Apple, le dernier XCode pour El Capitan n'inclut pas le SDK pour El Capitan!) Cependant, cela n'a toujours pas fonctionné – gfxCardStatus a seulement prétendu qu'il était passé au GPU intégré, alors qu'en réalité, OS X ne le laissait pas basculer! Même après avoir édité ./gfxCardStatus/Classes/GSGPU.m fichier pour activer le mystérieux "Nuke it de la commutation d'orbite"option, il ne pouvait toujours pas basculer …

===

Ensuite, j'ai découvert ce référentiel intéressant – https://github.com/0xbb/gpu-switch – qui est partiellement similaire par son code source à gfxCardStatus mais possède également les "crochets de connexion" (install_hooks.sh) pour "automatiser le processus de commutation pour la connexion / déconnexion". Malheureusement, cela n'a pas fonctionné pour moi … Cependant, il y a un très intéressant gpu-switch fichier texte situé à la racine de ce référentiel, qui décrit les variables EFI!

https://github.com/0xbb/gpu-switch/blob/master/gpu-switch

Après l'avoir étudiée et également lue dans les commentaires de ce numéro – https://github.com/0/0bb/gpu-switch/issues/11 – je suis devenu confiant pour essayer cette solution, mais j'ai découvert que mon MacBook Pro 2011 8,2 avec OS X El Capitan 10.11.6 est dans un Situation TRES problématique:

1) rEFInd n'est pas installé et pour l'installer, vous devez désactiver la protection SIP. Mais je ne peux pas démarrer en mode de récupération (Commande + Option + R) ou sur le DVD d'installation USB / OS X (tenir Option), (pour désactiver SIP), car ils gèlent lors du démarrage! – Bien que j'ai supprimé les kexts AMD de mon système, ces outils de récupération utilisent bien sûr des kexts AMD intégrés à leur conception. Aussi ne peut pas utiliser Rootfool bidouillez (https://github.com/gdbinit/rootfool) pour désactiver SIP pendant l'exécution, car il ne fonctionne que sur les versions d'OS X antérieures à 10.11.4.

2) J'ai essayé de surchauffer mon Macbook Pro exprès (forcer l'utilisation du processeur à 100% et le mettre dans un sac bien fermé) pour le forcer à s’éteindre en cas de surchauffe, puis à un redémarrage rapide, de sorte que les graphiques intégrés soient activés pendant le démarrage – ce qui permet de démarrer à partir de Recovery. Mais à cause de la merveilleuse pâte thermique haut de gamme que j'ai appliquée il n'y a pas si longtemps, je ne peux pas la surchauffer, même après une longue attente! À ce stade, j'ai pensé que cela pourrait soit: une) supprimez les kexts AMD du support d'installation, ou b) connecter à nouveau le disque dur de MBP à une machine Linux et exécuter un ensemble de commandes pour supprimer les indicateurs SIP des répertoires mentionnés ici (http://apple.stackexchange.com/questions/193368/what-is-the-rootless-feature -in-el-capitan-vraiment) qui pourrait potentiellement rendre un système impossible à démarrer, ou c) pour essayer d'installer rEFInd sur une partition HFS + directement à partir d'une machine Linux dotée de droits root, car elle contournera SIP — mais n'a pas exploré ces options, même si certaines d'entre elles ont peut-être fonctionné …

3) Je voulais démarrer un Linux LiveCD pour éditer les variables EFI à partir de là, mais peu importe ce que j'ai fait: j'ai essayé de démarrer directement sans modification de l'option GRUB, j'ai essayé de modifier les options de démarrage de GRUB (avec la touche "e") ajouter nomodeset / retirer éclaboussure tranquille / ou les deux dans chaque combinaison, ou comme suggéré dans cet article (https://wiki.archlinux.org/index.php/MacBookPro8,1/8,2/8,3_(2011)) ajoutent également i915.modeset = 0 radeon.modeset = 0 ou radeon.modeset = 0 i915.modeset = 1 i915.lvds_channel_mode = 2 ; puis pressé Fn + F10 ou Maj + Ctrl + Fn + F10 pour démarrer avec ces options: mais le processus de démarrage Linux a toujours échoué à différentes étapes de démarrage, peu importe la distribution Linux populaire et conviviale ou la version de celle-ci que j'essaie: essayé de nombreuses versions de Ubuntu / Lubuntu / Fedora, même les anciennes " AMD64 Mac "et" Alternate AMD64 Mac ", mais elles échouent toujours – soit au tout début du processus de démarrage (écran noir ou écran noir clignotant ou bloqué) _ dans le coin supérieur gauche) ou a échoué à la toute fin – juste avant de montrer un environnement de bureau graphique …

Plus tard, totoe_84 a écrit qu'il était capable de démarrer Ubuntu en mode graphique en utilisant la configuration suivante pour GRUB:

  • Pour désactiver la carte graphique AMD, j'ai ajouté les lignes suivantes après set gfxpayload = garder

outb 0x728 1
outb 0x710 2
outb 0x740 2
outb 0x750 0
Un séjour sans faille

(basé sur https://ubuntuforums.org/showthread.php?t=2157775)

===

Puis je me suis rappelé qu’il n’existait pas de distributions Linux classiques pour les utilisateurs avancés, qui disposaient d’un LiveCD. sans interface graphique: vous êtes abandonné sur une console pure et vous êtes censé installer le système avec uniquement les interfaces graphiques et les packages logiciels / groupes de packages que vous avez explicitement sélectionnés. Par exemple: Arch Linux (https://www.archlinux.org/) et Gentoo Linux (https://gentoo.org/). Parce que leur LiveCD n’a pas d’interface graphique, ils pourraient être démarrés sans problème avec une console Linux pure et là, vous pouvez éditer les variables EFI ! Alors voici un …

===
=== 100% DE SOLUTION DE TRAVAIL
===
=== Forcer votre MBP à utiliser TOUJOURS le processeur graphique intégré Intel (correctif de variable EFI)
===
=== pour le rendre à nouveau génial! ;)
===

1) Créez le LiveCD / LiveUSB Arch Linux:

Vous avez besoin d'un ordinateur de travail pour cela et d'un lecteur CD / DVD / USB disponible. Après le téléchargement archlinux-2017.03.01-dual.iso (voir les liens ci-dessous), vous devez vérifier l’intégrité du fichier .ISO pour voir s’il n’est pas corrompu (éviter les erreurs d'E / S, printf: non trouvé, chattr: non trouvé, etc.). Après avoir vérifié l'intégrité de archlinux-2017.03.01-dual.iso et tout va bien, vous pouvez générer un disque d’amorçage ArchLinux.

archlinux-2017.03.01-dual.iso

MD5:
1d25235e7cebe45f93452fbc05a0fb66 archlinux-2017.03.01-dual.iso

SHA1
f426866ca632a35a3eeae8e4080cff25ec8da614 archlinux-2017.03.01-dual.iso

Site officiel ArchLinux (only Torrent) – Voir les numéros de hachage MD5 et SHA1:

https://www.archlinux.org/releng/releases/2017.03.01/

Les MD5 et SHA1 du site Web officiel d’ArchLinux sont identiques aux miroirs Virtapi.org et Belnet.be. le archlinux-2017.03.01-dual.iso sur Virtapi.org et Belnet.be sont légitimes.

Virtapi.org:

http://archive.virtapi.org/iso/2017.03.01/

http://archive.virtapi.org/iso/2017.03.01/archlinux-2017.03.01-dual.iso

http://archive.virtapi.org/iso/2017.03.01/md5sums.txt

http://archive.virtapi.org/iso/2017.03.01/sha1sums.txt

Belnet:

http://ftp.belnet.be/pub/archlinux.org/iso/2017.03.01/

http://ftp.belnet.be/pub/archlinux.org/iso/2017.03.01/archlinux-2017.03.01-dual.iso

http://ftp.belnet.be/pub/archlinux.org/iso/2017.03.01/md5sums.txt

http://ftp.belnet.be/pub/archlinux.org/iso/2017.03.01/sha1sums.txt

Vérifiez l'intégrité de archlinux-2017.03.01-dual.iso (Mac OS):

Démarrez en mode sans échec (appuyez sur la touche SHIFT au démarrage) -> pas de gel Mac OS -> El Capitan ou Sierra.

HighSierra peut-être geler au démarrage (mode sans échec). Il y a eu des changements dans HighSierra par rapport aux kexts AMD chargés pendant le mode sans échec. Plus de tests sont nécessaires.

Fichier téléchargé -> /Users/Your_User/Downloads/archlinux-2017.03.01-dual.iso

Finder -> Applications -> Utilitaires -> Terminal:

MD5:

Code:




cd Téléchargements /

md5 archlinux-2017.03.01-dual.iso
MD5 (archlinux-2017.03.01-dual.iso) = 1d25235e7cebe45f93452fbc05a0fb66

SHA1:

Code:




cd Téléchargements /

shasum archlinux-2017.03.01-dual.iso
f426866ca632a35a3eeae8e4080cff25ec8da614 archlinux-2017.03.01-dual.iso

Ou essayez de la manière la plus simple – Pas besoin d’ArchLinux – Seulement MacOS:

1 – Démarrer l'utilisateur unique (appuyez sur Commande + S) au démarrage (si MacOS est installé sur votre disque dur).

2 – Si vous avez un disque vierge, utilisez la clé USB / Pendrive avec le programme d’installation MacOS (El Capitan, Sierra ou HighSierra).

2.1 – Appuyez sur la touche Option au démarrage, positionnez la souris sur l'icône du programme d'installation MacOS.

2.2 – Presse Commande + S et continuez à tenir ces deux clés.

2.3 – Cliquez sur l’icône du programme d’installation MacOS -> continuez de Commande + S touches jusqu’à la fin du démarrage du programme d’installation MacOS en mode utilisateur unique.

Entrez ces commandes (remplacez gpu-power-prefs par un processeur graphique Intel et lancez un démarrage détaillé):

Code:




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

nvram boot-args = "- v"

redémarrer

Si vous avez choisi la route Arch Linux, continuez à lire:

Ensuite, vous pouvez soit simplement graver cette image ISO sur un CD / DVD. (pouvant ultérieurement être inséré dans le lecteur SuperDrive ou externe du lecteur de DVD de MBP connecté à MBP par deux câbles USB) ou créez une clé USB amorçable: utilisez les instructions détaillées détaillées sur cette page, https://wiki.archlinux.org/index.php/USB_flash_installation_media

2) Démarrez: insérez ce CD / DVD / USB dans Macbook Pro, maintenez Option clé lors du démarrage, choisissez "démarrage EFI" (c'est votre support d'installation amorçable), presse "e"touche pour éditer les options GRUB du Arch Linux archiso x86_64 UEFI CD entrée du menu alors qu’elle est sélectionnée sur l’écran principal, ajoutez nomodeset à la fin de cette ligne et appuyez sur Entrer. Si tout est fait correctement, vous vous retrouverez sur la console Linux!

3) Éditer les vars EFI: ressemble à efivarfs Le système de fichiers est monté par défaut! Donc vous pouvez déjà cd / sys / firmware / efi / efivars et ls pour explorer ce répertoire et voir s'il y a un "gpu-power-prefs -…" variable (où est UUID de cette variable). Si une telle variable existe, il est préférable de la supprimer avec rm. Dans mon cas le efivarfs a été monté par défaut avec des autorisations de lecture / écriture, mais si vous obtenez le "Opération non autorisée" message en essayant de rm, cela signifie que dans votre cas efivarfs a été monté en lecture seule et vous devez le remonter avec des autorisations de lecture-écriture et réessayer (crédits à totoe_84 pour cet ajout précieux) :
*) cd /
*) umount / sys / firmware / efi / efivars /
*) mount -t efivarfs rw / sys / firmware / efi / efivars /
*) cd / sys / firmware / efi / efivars /

Si votre écran est tellement déformé qu’il est difficile de voir les lettres, commencez à taper le texte rm gpu-power-pré puis appuyez sur LANGUETTE clé pour l'auto-complétion. Dans mon cas, il n'y avait pas une telle variable EFI, seulement "gpu-active -…" et peut-être en quelque sorte lié "gfx-saved-config-restore-status -…" . Puis j'ai encore regardé ça gpu-switch fichier texte (mentionné ci-dessus, https://github.com/0xbb/gpu-switch/blob/master/gpu-switch),
et entré CES COMMANDES:

*) chattr -i "/ sys / firmware / efi / efivars /" <—– ignore cette commande

En fait, un script gpu-switch avait la variable "$ {sysfs_efi_vars} / $ {efi_gpu}" mais je n'avais pas de variable "gpu-power-prefs -…" – donc, en partie par erreur, je n'ai pas ajouté le suffixe efi_gpu et est entré accidentellement dans cette voie incomplète

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

N'avait pas de variable EFI "gpu-power-prefs-", alors j'ai pensé qu'il serait correct d'en créer une nouvelle avec un UUID aléatoire – dans ce cas, tiré directement d'un script gpu-switch

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

http://www.tecmint.com/chattr-command-examples/ – chattr (Modifier l'attribut) est un utilitaire Linux en ligne de commande utilisé pour définir / annuler la définition de certains attributs d'un fichier sous Linux afin de sécuriser la suppression ou la modification accidentelle de fichiers et de dossiers importants, même si vous êtes connecté en tant qu'utilisateur root.

Syntaxe de chattr —> chattr [operator] [flags] [filename]

Un fichier est défini avec ‘je«Attribut (+ je comme vous le voyez dans cette commande) —> ne peut pas être modifié (immuable). Signifie aucun renommage, aucune création de lien symbolique, aucune exécution, aucune écriture, seul le superutilisateur peut annuler l'attribut.

Opérateur

  1. + : Ajoute l'attribut à l'attribut existant des fichiers.
  2. : Supprime l'attribut de l'attribut existant des fichiers.
  3. = : Conserve les attributs existants des fichiers.

Cette commande chattr est censée verrouiller un fichier pour le rendre accessible uniquement par le "superutilisateur". Ainsi, lors du démarrage, votre EFI n'aura aucune chance de vous tromper. gpu-power-prefs -… variable en toutes circonstances

*) cd /

Impossible de démonter les efivars si vous vous trouvez dans ce répertoire. Changez donc dans le répertoire racine.

*) umount / sys / firmware / efi / efivars /

Garantit que vos variables EFI sont vidées sur le système de fichiers efivarfs, veuillez le démonter en toute sécurité avant de redémarrer)

*) redémarrer

===> SI VOUS AVEZ RÉALISÉ TOUT CORRECTEMENT ET SUSCEPTIBLE QUE VOTRE MACBOOK PRO UTILISE MAINTENANT DES GRAPHIQUES INTÉGRÉS PENDANT LE DÉMARRAGE, APRÈS LE DÉMARRAGE, ET FONCTIONNE À NOUVEAU! ;)

Dans le futur, vous devrez peut-être réappliquer cette solution si vous deviez réinitialiser votre PRAM / NVRAM / SMC à cause d'autres problèmes, alors souvenez-vous de cette solution quelque part … Chose amusante: maintenant, vous ne pouvez plus utiliser le GPU discret, même avec gfxCardStatus, il est toujours bloqué chez Integrated

J’ai passé deux jours ouvrables à découvrir cette solution et j’espère vraiment que cela fonctionnera sans faille pour tous les propriétaires de MBP avec un processeur graphique distinct cassé. Bonne chance!

=== NOUVELLES! VOUS POUVEZ ÉGALEMENT SUIVRE CES GUIDES POUR LES AMÉLIORATIONS SUPPLÉMENTAIRES: ===

Suivez le Guide MikeyN – page 35 – N ° 875 – pour déplacer le fichier AMDRadeonX3000.kext du répertoire / System / Library / Extensions et ne pas geler Macbook Pro (barre de progression de 75% ou message "IOConsoleUsers: gIOScreenLockState 3").

Renommez l'ancien AMDRadeonX3000.kext et déplacez le nouvel AMDRadeonX3000.kext après la mise à jour – Page 57 – # 1425

Arrêtez ou redémarrez Macbook Pro – évitez le gel de l'écran noir – Mise à jour 2 – Page 57 – # 1425

Fermez le couvercle – Sommeil – Réveil – Page 43 # 1066 – Page 50 # 1243