Migration de Mojave à Monterey sur un Mac Pro 2009
Veuillez noter que cet article n'est pas un guide comme d'habitude, mais simplement un retour d'expérience, qui pourra, nous l'espérons, aider d'autres utilisateurs à trouver des solutions à des problèmes atypiques.
Malgré ses 15 ans, notre Mac Pro 2009 est toujours vaillant. Il n'est plus à la pointe de la technologie, et clairement plus dans le coup, dans la course à la puissance. Mais ses performances nous suffisent largement, d'autant plus, que face à des machines plus récentes, il dispose encore d'avantages non négligeables telles que la possibilité de le gaver de RAM pour une bouchée de pain, et ses nombreuses capacités d'extension pour le stockage.
Il s'agit toujours de notre machine principal, et avec les tarifs que pratique Apple, il n'y a pas de raison d'en changer pour le moment.
1/ Pourquoi faire évoluer le Mac Pro ?
Jusqu'ici bloqué sur Mojave, cela permettait de continuer à utiliser de vieilles applications encore en 32bits. En contre-partie, de nombreuses applications, plus modernes, commençait à ne plus être compatibles, avec cette version 10.14 de macOS.
Ainsi, il était devenu très difficile de mettre à jour les applications via homebrew, à causes des nombreuses incompatibilités, et parfois même celles des dépendances venant en rajouter une couche.
Du côté des applications, Firefox ne proposait plus que sa version ESR, ce qui nous allait bien finalement. Steam nous indiquait qu'il n'y avait plus de support depuis Février, mais continuait à fonctionner comme si de rien n'était.
Mais pour d'autres applications, telles que Discord ou WhatsApp, qui sont continuellement mises à jour, et surtout ultra connectées et dont les dernières versions maintiennent le bon fonctionnement de l'application, cela devenait plus compliqué.
Après une tentative avortée il y a de nombreux mois, par manque de motivation, nous nous sommes donc relancés, un peu plus contraint et forcé, dans l'installation d'un OS plus récent pour notre bon vieux Mac Pro.
2/ OpenCore, la solution miracle
Au delà de Mojave, il est obligatoire de passer par OpenCore pour installer macOS sur un Mac non supporté. Et le Mac Pro, avec ses 15 ans, cela fait bien longtemps qu'il n'est plus supporté par Apple.
Pour faire simple, OpenCore va installer un EFI virtuel qui se placera entre l'EFI présent dans le matériel et macOS. Ainsi, lorsque le Mac va booter, au lieu de lancer macOS, l'EFI du Mac va appeler l'EFI modifié d'OpenCore, qui va se charger de lancer le démarrage de macOS tout en lui faisant croire que le matériel est compatible.
Notre Mac est tout simplement devenu un hackintosh, puisque le fonctionnement est strictement identique à l'installation de macOS sur un PC.
Comme indiqué en préambule, cet article n'est pas un guide, parce que l'installation via OpenCore est devenue très simple, et qu'il suffit de suivre le processus écrit par l'équipe de développement. Elle a fait un travail d'orfèvre, puisque les réglages pour l'installation sont quasiment tous fait automatiquement. Petite cerise sur le gâteau, macOS affiche désormais une barre de démarrage, même si notre carte graphique ne dispose pas d'EFI.
Cela est tout simplement possible, car OpenCore injecte les drivers graphiques dès le lancement de son EFI virtuel. Evidemment, cela ne permet toujours pas d'aller choisir un autre disque au démarrage, puisqu'ils ne sont toujours disponibles à ce moment là.
Si vous vous lancez dans l'entreprise, pensez à avoir sous la main, une carte graphique permettant l'affichage du boot du Mac, et pas seulement une carte performante sans EFI, capable de gérer Metal, comme c'est le cas dans la plupart des Mac Pro de cette génération encore en fonctionnement. Car il sera nécessaire de sélectionner le disque de l'EFI virtuel au lancement du Mac.
3/ Tentative sur Sonoma
Très motivés, nous avons d'abord tenter une installation de Sonoma, la dernière itération en date de macOS.
Nous avons pu passé par dessus les incompatibilités de Somona avec ce modèle de Mac lors de l'installation et obtenir un OS parfaitement fonctionnel et stable, avec, cependant, un léger défaut. Malgré tous nos efforts, et tous nos essais, nous n'avons jamais réussi à obtenir l'accélération graphique sur l'une de nos cartes graphiques.
Les cartes à base de puces AMD, plus ou moins récentes, étaient soit pas reconnues du tout, soit partiellement reconnues. Mais dans tous les cas, macOS indiquait une quantité de VRAM de 14Mo, un résultat un peu loin des 8Go que contenaient les deux cartes.
Il en découlait une absence totale d'accélération graphique.. Entre la lenteur d'affichage, les nombreux bugs graphiques et le refus de certaines applications de se lancer, cela rendait le Mac difficilement exploitable
A force de chercher, nous avons aussi découvert que Ventura et Sonoma faisait usage d'instructions CPU (AVX2) absentes sur les vieux Xeons qui équipent le Mac Pro. Et notamment, elles seraient utilisées au niveau des drivers graphiques. Mais cela parait étonnant puisque certains Mac Pro de la même génération semblent supporter Sonoma. Cela dépend peut être du modèle de carte, mais aussi si elle dispose d'un bios Mac ou pas... à confirmer.
Dans tous les cas, l'absence de ces instructions AVX2 sont une source potentielle d'instabilité du système, et pour un Mac dont on fait un usage intensif, cela n'est malheureusement pas envisageable.
Nous avons donc fait le choix de redescendre vers Monterey, avec une installation tout aussi facile, mais sans les désagréments des drivers graphiques.
4/ Cartes graphiques capricieuses
L'avantage de monter en version d'OS, c'est que de nouvelles cartes graphiques disposent de drivers et sont donc exploitables. Nous en avons donc profité pour tester une AMD RX6600 qui viendrait en lieu et place de la RX580 qui équipe le Mac Pro depuis l'installation de Mojave.
A l'époque, nous avions choisi la RX580 car c'était l'une des cartes les plus compatibles, équipant certains MacBook Pro haut de gamme dans une version mobile. C'était aussi une carte sensée rivaliser avec la 970GTX qu'elle remplaçait par obligation, Apple ayant volontairement mis de côté la possibilité d'installer les WebDrivers de Nvidia.
Dans les faits, la 970GTX restait toujours au dessus, du moins sur Mac, malgré 1 ou 2 générations de retard. Mais le plus gros défaut de RX580 est sa consommation. Alors que la 970GTX se contentait, comme la 285GTX avant elle, de deux prises 6-pins (2x75W) dont est équipé le Mac d'origine, la RX580 demande une prise 6-pins (75W) et une prise 8-pins (75W). A cela il faut ajouter les 75W du port PCI, ce qui commence à faire un joli total.
Elle nous a tout de même permis de tenir jusqu'ici et d'offrir des performances suffisamment correctes pour faire ce que l'on souhaitait du Mac.
Avec l'arrivée de Monterey (ou Sonoma) sur le Mac, nous en avons profité pour s'intéresser à nouveau au marché des cartes graphiques, et plus particulièrement celles compatibles avec ce Mac.
A partir de macOS 12.1, le système semble supporter la plupart des cartes de la génération RX6xxx, des cartes aux performances raisonnables, mais toujours en deçà des cartes Nvidia, mais qu'importe.
L'objectif de cet éventuel changement est principalement de réduire le défaut de la RX580 : sa consommation. Nous sommes donc partis sur la carte la plus petite de cette génération et supportée par macOS. C'est comme cela que nous nous sommes procurés une RX6600.
Sur le papier, elle est sensée être 50% plus rapide, mais sur tout 40% moins vorace.
Oui, mais voilà, une fois dans le Mac, celui-ci ne démarre pas du tout, vraiment pas du tout. On tente vainement de sortir et remettre la carte, jusqu'à redémarrer sur la RX580, sans aucun accroc.
Après quelques recherches, il s'avère que les cartes de cette série disposent d'un bios, fait un peu l'arrache. Et si l'on a bien compris, le fameux bios disposent de quelques bits blancs avant son propre code que le Mac n'apprécie absolument pas.
Heureusement, une solution existe, et elle n'est pas compliquée. Il suffit simplement d'extraire le bios, le modifier, puis le ré-injecter dans la carte. Mais voilà, la carte bloquant le boot du Mac, l'action ne peut pas être faite dessus, y compris avec Bootcamp. Un PC est donc nécessaire pour effection cette action. Merci à Frank pour sa patience et son efficacité.
Une fois la carte flashée, elle est parfaitement reconnue par le Mac et est donc venue remplacer avantageusement la RX580. Elle consomme effectivement moins, que ce soit au repos ou en action, et elle est légèrement plus efficace que la RX580. Elle a aussi l'avantage d'être plus silencieuse, ce qui est un petit plus.
Comparatif entre les deux cartes : la RX6600 est au dessus, la RX580 en dessous.
Nous aurions pu faire l'effort de prendre une carte plus performante, comme la version XT de la 6600 ou carrément monter en gamme avec les 6800 ou 6900 ou leur déclinaison XT. Mais au final, le jeu n'est pas la priorité, et dans les quelques jeux que nous lançons, nous avons pu voir que ce sont les CPU qui limitent les FPS, pas la carte graphique où nous nous permettons de pousser, presque à fond, les réglages graphiques consommant du GPU.
5/ Instabilité post installation
A la suite de l'installation et du changement de carte graphique qui se sont fait dans la foulée. Nous avons eu la mauvaise surprise d'avoir des instabilités. Le Mac Pro fonctionnait bien, puis aléatoirement en temps et en utilisation, il finissait par faire un kernel panic avec une erreur pratiquement identique
Machine-check capabilities: 0x0000000000001c09
family: 6 model: 26 stepping: 5 microcode: 29
signature: 0x106a5
Intel(R) Xeon(R) CPU X5570 @ 2.93GHz
9 error-reporting banks
Processor 8: IA32_MCG_STATUS: 0x0000000000000004
IA32_MC8_STATUS(0x421): 0xba000000008000b2
IA32_MC8_MISC(0x423): 0x0000000000080000
Processor 9: IA32_MCG_STATUS: 0x0000000000000004
IA32_MC8_STATUS(0x421): 0xba000000008000b2
IA32_MC8_MISC(0x423): 0x0000000000080000
Processor 10: IA32_MCG_STATUS: 0x0000000000000004
IA32_MC8_STATUS(0x421): 0xba000000008000b2
IA32_MC8_MISC(0x423): 0x0000000000080000
Processor 11: IA32_MCG_STATUS: 0x0000000000000004
IA32_MC8_STATUS(0x421): 0xba000000008000b2
IA32_MC8_MISC(0x423): 0x0000000000080000
Processor 12: IA32_MCG_STATUS: 0x0000000000000004
IA32_MC8_STATUS(0x421): 0xba000000008000b2
IA32_MC8_MISC(0x423): 0x0000000000080000
Processor 13: IA32_MCG_STATUS: 0x0000000000000004
IA32_MC8_STATUS(0x421): 0xba000000008000b2
IA32_MC8_MISC(0x423): 0x0000000000080000
Processor 14: IA32_MCG_STATUS: 0x0000000000000004
IA32_MC8_STATUS(0x421): 0xba000000008000b2
IA32_MC8_MISC(0x423): 0x0000000000080000
Processor 15: IA32_MCG_STATUS: 0x0000000000000004
IA32_MC8_STATUS(0x421): 0xba000000008000b2
IA32_MC8_MISC(0x423): 0x0000000000080000
mp_kdp_enter() timed-out on cpu 12, NMI-ing
mp_kdp_enter() NMI pending on cpus: 0 1 2 3 4 5 6 7 8 9 10 11 13 14 15
mp_kdp_enter() timed-out during locked wait after NMI;expected 16 acks but received 1 after 16728988 loops in 1462999813 ticks
Cependant, le coeur coupable n'était pas toujours le même. Dans notre cas, il semblerait que le coeur en question faisait attendre les autres trop longtemps, et n'arrivant à se synchroniser, renvoyer un Kernel Panic sur le système d'exploitation.
Mais l'erreur ne semblait pas logique, absolument pas en rapport avec la mise à jour. De plus, le Mac Pro tournait comme un charme quelques heures avant.
Après des recherches sur les processus en action lors des KPs, sans succès. Nous nous revenus sur l'idée un soucis matériel, mais pas au niveau du CPU. Nous avons donc démonté la carte CPU du Mac Pro, toutes les barrettes de RAM, ainsi que toutes les cartes PCI. Après un coup de bombe d'air sec sur chacun des ports, nous avons remonté l'ensemble.
Cela a totalement annihilé le soucis, et depuis le Mac Pro n'a plus fait une seule erreur (sans que nous ne le poussions à le faire).
Nous pensons qu'une carte PCI (ou peut être une barette de RAM) aurait bougé lors des nombreuses manipulations, et que, légèrement sortie de son slot, les communications avaient du mal à passer, poussant le coeur en charge de sa gestion à attendre de manière excessive.
6/ Résultat final
Depuis les soucis d'instabilité réglés, l'OS et le Mac sont de nouveau sur des rails. Cela fait maintenant 2 mois que le Mac tourne comme avant, et nous avons eu le temps de reprendre notre rythme d'utilisation mêlant de nombreuses activités diverses et variées, plus ou moins gourmandes en ressources.
Il reste quelques problèmes, issus de macOS, et qui ne touche pas que les Macs obsolètes que nous réglons au fur et à mesure, et dont nous ferons certainement des articles si cela est digne d'intérêt.
Monterey sera certainement le dernier OS du Mac Pro, et dans 2/3 ans, lorsque cette version de macOS sera devenue obsolète, nous serons alors condamnés à changer de machine. En espérant qu'Apple propose, à ce moment là, une machine qui pourrait nous convenir.