Si les bidouilleurs installent des cartes « PC » dans les Mac Pro et autres iMac — en MXM —, un problème survient souvent avec ces cartes : l'absence d'écran de boot avant le démarrage de l'OS. Et les développeurs d'OpenCore proposent maintenant une solution pour quelques modèles de Mac. Soyons clairs dès le départ, elle nécessite de mettre les mains dans le cambouis.
Un problème d'EFI
Commençons par expliquer le problème : quand Apple a intégré l'EFI dans ses Mac en 2006, le monde PC était encore bloqué sur son antique BIOS des années 80. Pour l'affichage en dehors de l'OS, Apple a donc utilisé le standard proposé par les concepteurs de l'EFI, l'UGA (pour Universal Graphic Adapter). Une carte graphique avec un firmware compatible UGA peut afficher des images avant que l'OS ne démarre.
Quand l'UEFI a remplacé le BIOS dans les PC, un autre protocole a été choisi, le GOP (Graphics Output Protocol). Différent de l'UGA, il offre par contre une compatibilité avec les BIOS, pour les anciens PC. Les cartes « PC » sont majoritairement équipées d'un firmware GOP et ne fonctionnent donc pas en dehors de l'OS sur un Mac.
La solution magique d'OpenCore
Jusqu'à maintenant, la seule solution pour obtenir l'écran de boot et pouvoir choisir son disque de démarrage en pressant option passait par des cartes adaptées aux Mac. Il pouvait s'agir de modèles officiels (comme celles d'Apple pour le Mac Pro), de cartes pensées pour cet usage — AMD en a proposé à une époque — ou tout simplement de cartes flashées, c'est-à-dire équipées d'un firmware modifié pour ajouter la compatibilité UGA.
La solution d'OpenCore est un peu différente : elle consiste à ajouter un morceau de code qui va faire le lien entre l'interface de l'EFI Apple et le protocole GOP des cartes. Une fois la modification effectuée, il devient possible d'avoir un écran de boot, de voir la progression du chargement, d'afficher l'écran du choix de disque ou celui de FileVault, etc.
Deux méthodes compliquées
Les explications se trouvent dans la section /Utilities/EnableGop
des dernières versions d'OpenCore. Premièrement, les machines compatibles sont les Mac Pro 4,1 et 5,1 — les modèles de 2009 à 2012 —, les iMac 27 pouces de 2009, 2010 et 2011 ainsi que le 21 pouces de 2010. Il faut bien évidemment que la carte graphique ait été remplacée par un modèle « PC », ce qui est possible sur les iMac avec des cartes MXM issues de PC portables. Ce sujet des forums de MacRumors donne pas mal d'informations, dont une liste des GPU compatibles.
Pour les Mac Pro, la modification consiste à ajouter le pilote nécessaire directement dans l'EFI de la machine. Cette voie fonctionne aussi sur les iMac, mais elle est déconseillée : en cas de problème, la récupération de l'EFI des iMac est beaucoup plus compliquée que dans le cas des Mac Pro.
La seconde voie va passer par une modification du firmware de la carte graphique, que ce soit un modèle AMD ou Nvidia. Ce n'est pas sans risque, mais le remplacement de la carte graphique ou un flash en aveugle sont deux options plus simples que le flash manuel de la puce qui contient l'EFI.
Les deux méthodes nécessitent de bien connaître les arcanes des firmwares et de ne pas craindre les coupures de courant, mais les instructions sont claires pour ceux qui bidouillent un minimum. Pour terminer, nous n'avons pas effectué la modification faute de Mac compatible sous la main. Mais si le cœur vous en dit, nous acceptons les photos.