Mac OS sur la Wii avec Mac-On-Linux

Je vous avoue un truc : ce sujet, j’en ai eu l’idée il y a pratiquement 10 ans, en janvier 2013. J’y ai repensé en faisant une actu chez MacG sur Luke Miani, qui a installé un Mac mini M1 dans une Wii (physiquement). J’ai donc cherché un peu : est-ce qu’on peut installer Mac OS sur une Wii (oui).

Je ne partais pas de zéro : il y a de longues années, j’avais installé un logiciel (Mac-On-Linux) sur une carte mère équipée d’un PowerPC G3, sous Linux. Pour faire simple, Mac-On-Linux (MOL pour les intimes) permet plus ou moins de virtualiser Mac OS et Mac OS X sur des plateformes à base de PowerPC. C’est prévu au départ pour lancer Mac OS sur des Mac sous Linux, mais ça marche (à peu près) sur d’autres plateformes à base de PowerPC, comme les Pegasos.

Mac OS sur la Wii (noire)

La Wii, un Mac (presque) comme les autres

Le rapport avec la Wii ? Son CPU est un PowerPC G3. Le Broadway est une évolution du Gecko du GameCube, qui est de la famille des PowerPC 750 (comme les G3 des Mac). Nintendo a d’ailleurs encore utilisé un G3 dans la Wii U (Espresso) et je suppose que ce que je fais ici fonctionne avec la Wii U. Pour le reste, la console est assez limitée : il y a une carte graphique ATi (Hollywood) avec 3 Mo de mémoire vidéo, 88 Mo de RAM au total (sous Linux, j’ai 74 Mo accessible), 512 Mo de flash pour le stockage et une sortie vidéo singulièrement limitée (en gros, au mieux du 480p).

Mais la console a aussi un lecteur de cartes SD, du Wi-Fi et des ports USB. Et il existe des portages de distributions GNU/Linux pour la console. L’idée de lancer de lancer MOL n’est donc pas totalement idiote. Dans l’ensemble, on est sur un iMac ou un iBook du début des années 2000, donc : environ 64 Mo de RAM, un G3 à une fréquence correcte (ici 729 MHz), de l’USB, etc. Pas de quoi lancer réellement Mac OS X, mais c’est par contre suffisant pour Mac OS 9.

C’est… compliqué

Je vais résumer certains trucs, mais la première étape a été de trouver une Wii. Après un passage rapide sur LeBonCoin, j’ai trouvé une Wii noire (elle a la classe) avec ses accessoires (et elle est rétrocompatibles GameCube, en plus). Je n’avais que le câble pour une sortie composite, mais j’ai commandé directement un Wii2HDMI. C’est un petit boîtier super cheap (mais qui ne vaut que 7 €) qui permet d’utiliser une sortie HDMI, en progressif. La console supporte en effet le 480p en composante (le câble d’origine est rare et cher) en plus du 480i/576i.

Le Homebrew Channel

La première étape a été de cracker la console. Enfin, plus exactement de mettre à jour le crack : elle était déjà équipée du Homebrew Channel, mais dans une version pas totalement à jour. Je ne suis pas un expert, donc j’ai un peu galéré pour installer et activer BootMii. Pour faire simple, sur ce modèle de Wii, je ne peux pas démarrer directement sous GNU/Linux (je vais utiliser Linux dans la suite), je dois d’abord démarrer la Wii, lancer le Homebrew Channel puis lancer BootMii. Cette partie liée à la Wii a peu d’intérêt pratique, mais j’ai quand même dû me battre un peu avec la Wii Remote.

Est-ce que j’ai installé Linux manuellement et compilé Mac-On-Linux ? Non. Je suis en fait tombé sur quelqu’un qui l’a fait cette année et qui a eu la bonne idée de partager le résultat (merci Jose64141). Heureusement, dans un sens : installer Linux sur la Wii n’est pas réellement un souci, mais compiler MOL, si. Il nécessite pas mal de dépendances, un noyau précis, etc. Je l’avais compilé il y a longtemps sur un Power Mac G3 sous Linux et même là, ce n’était pas simple.

Linux démarre

La première a donc été d’utiliser l’image disque de Jose64141 et de régler quelques points. Par défaut, elle étairt un peu petite (je l’ai étendue avec une machine virtuelle Ubuntu) et démarrait en mode 480p, alors que j’utilisais une sortie composite (il faut modifier le fichier /bootmii/bootmii.ini sur la carte SD). Dans les trucs de base, j’ai aussi dû sortir un clavier QWERTY et le configurer : par défaut, la distribution est sur un clavier QWERTY espagnol (aucune idée de la raison). On peut le changer avec dpkg-reconfigure console-data (pour mettre du QWERTY US). Pour le réseau, c’est un peu compliqué : techniquement, la Wii a du Wi-Fi 11g, mais le pilote ne prend pas en charge le WPA2 et je n’ai pas installé un réseau exprès pour elle. Certains adaptateurs USB vers Ethernet (comme le vieux modèle Apple) fonctionnent, mais la console n’a que deux ports USB, donc ça peut bloquer l’usage de la souris. Pour information (enfin, surtout mon moi du futur), le login est root, le mot de passe whiite.

Un petit souci de config’ vidéo

Si vous voulez tenter, il y a pas mal d’infos sur cette page et celle-ci.

Un gros problème visuel

Pour installer Mac OS, c’est finalement assez simple. J’ai pris une image disque vide d’une capacité correcte, une image disque « universelle » de Mac OS 9 (pour l’installation) et j’ai lancé Mac OS. Petite astuce, il faut bien mettre les bon chemins d’accès pour les images dans /etc/mol/molrc.macos et bien garder l’ISO d’installation en lecture seule (sinon Mac OS ne démarre pas). J’ai alloué 48 Mo de RAM et lancé MOL après avoir lancé le serveur X (je reviens sur ça ensuite). Autre petit point, j’ai désactivé les instructions Altivec (activées par défaut, a priori) : le G3 de la Wii ne supporte pas le jeu d’instructions SIMD.

startx
startmol

Et magie, ça démarre. Au premier abord, c’est un peu lent sur l’affichage (le principal problème de MOL, qui ne virtualise pas le GPU) mais Mac OS répond bien et c’est stable. Mais il y a un souci sur l’image : une partie des polices est illisible. C’est le cas pour le nom des fenêtres, pour certains menus, etc. Comme je connais assez bien Mac OS 9, ça ne pose pas réellement de problèmes.

Le logo Mac-On-Linux


Mac OS démarre

Avant de parler de la vidéo, un mot sur le son : Jose64141 indique que le son ne fonctionne pas, mais moi, j’en ai. Il n’est pas génial, mais ça passe. La méthode est expliquée sur le site de MOL (encore en ligne) : il faut installer l’extension dédiée (chargée dans une image disque au boot) au niveau du Mac OS virtualisé, et bien choisir la sortie. Le son crachote et c’est franchement instable avec certains lecteurs audio, mais j’ai du son. J’ai même installé iTunes pour lire quelques MP3, d’ailleurs.

L’audio marche (presque)

Pour la vidéo, c’est compliqué. Et je ne comprends pas tout. Pour faire « simple », la console utilise à la base un framebuffer en YUY2 (et pas en RGB) et ça pose pleins de soucis. De même, la console sort du 480p au mais avec une image en 576 x 432 en pratique. J’ai essayé quelques réglages de MOL (mais le serveur VNC ne démarre même pas) et je n’ai pas réussi à créer un mode pour l’accès direct (mais merci @kwyxz tout de même). En théorie, sur un Mac sous Linux, on lance molvconfig pour choisir un mode vidéo qui affiche quelque chose, mais rien ne passe ici. Jose a eu le problème (il en parle sur un forum, sans préciser qu’il est sur Wii) mais je ne suis pas assez compétent pour essayer de corriger ça.

Quelques soucis visuels

En gros, ça donne l’impression que certains pixels sont mélangés dans la mémoire vidéo, et même les captures d’écrans (sous Mac OS) sont dans le cas, c’est très bizarre.

Ça donne quoi ?

J’ai donc une image disque de Mac OS 9 (configurée avec 32 Mo de RAM) sur la carte SD, pas spécialement rapide. Pour lancer Mac OS, il faut allumer la Wii, lancer le Homebrew Channel, lancer BootMii et démarrer Linux. Ensuite deux commandes plus tard, je suis sous Mac OS 9. En théorie, je dois pouvoir émuler le bong de démarrage, mais ça ne fonctionne pas. Sous Mac OS 9, donc, le son crachote un peu et beaucoup de polices sont altérées, mais si on connaît l’OS, ça marche.

Mac OS 9

La vidéo montre quelques trucs de Mac OS, avec les artefacts. J’ai lancé Doom dans sa version Mac OS, mais on se retrouve avec une image toutes les minutes (j’exagère à peine). MacBench donne des scores élevés pour le CPU, mais la base de calcul est un PowerPC 601 dans un Power Mac 6100. Avec MacBench 5, on est au niveau d’un G3 à 300 MHz en natif, ce qui n’est pas si mal compte tenu de ce que MOL gère en arrière-plan. Gauge Pro donne des infos sur le CPU, mais plante lamentablement (le reset de la console permet de redémarrer).

Doom se lance.

Internet Explorer 5 se lance, mais je n’ai pas tenté de connecter MOL au net (le Wi-Fi ne marche pas chez moi), même si c’est probablement possible. J’ai aussi installé iTunes, mais il est capricieux : l’application s’affiche mal, le son crachote quelques secondes puis plante (probablement une histoire de tampon dans les réglages). Et on le voit dans la vidéo, iTunes ne se lance qu’en 640 x 480 au minimum (et pas en 576 x 432, donc). Je passe donc dans la bonne définition, je le lance, puis je reviens (en 640 x 480, je n’ai pas toute l’image). Sans le mini lecteur, c’est encore pire. Et avec iTunes, qui visiblement utilise pas mal la carte vidéo, l’ensemble est à la limite de l’inutilisable : MOL utilise le CPU pour la vidéo.

IE5 aussi


iTunes a un soucis


Surtout quand on quitte le mini lecteur

Ce qui marche mal/pas

Dans l’ensemble, c’est quand même très tès expérimental, ne serait-ce que parce que l’OS s’affiche mal. Le son crachote, je n’ai pas réglé le réseau et l’USB n’est pas réellement accessible. Question performances, c’est honnête quand on n’a pas trop de trucs qui bougent à l’écran. Sur le coup, j’ai vraiment fait ça pour le fun, genre « Est-ce que Mac OS tourne sur une Wii ? Oui, je l’ai fait. ».

Je suppose qu’il doit être possible de régler les soucis de son et peut-être ceux de vidéo, mais je ne suis pas un expert en Linux, et encore moins sur des trucs liés à de vieilles distributions.

Et Mac OS X ?

En théorie, MOL permet de lancer Mac OS X, mais quand j’ai tenté avec l’image d’un CD de Mac OS X Puma (10.1), je n’ai eu que des erreurs. Le problème principal est la RAM : Mac OS X demande en théorie 128 Mo et il est possible de le lancer avec un peu moins (officieusement 64 Mo) mais sur la Wii, je ne peux pas dépasser 52 Mo en pratique. Du coup, ça plante directement au démarrage. C’est peut-être lié au manque de RAM, peut-être au pilote vidéo, mais impossible.