Mac OS X sur le Raspberry Pi 3

Vu que c’est les vacances, j’en ai profité pour tenter un truc que je voulais faire depuis un moment : (re)lancer Mac OS X sur un Raspberry Pi. Mais au lieu d’un Raspberry Pi original, j’ai utilisé un Raspberry Pi 3.

A l’époque, j’avais utilisé un Raspberry Pi classique overclocké, c’est-à-dire un modèle à 800 MHz (600 MHz de base) avec seulement 256 Mo de RAM. Pour l’émulation, obligatoire, j’utilise PearPC. Ce logiciel open source qui a eu son heure de gloire il y a plus de 10 ans en permettant de lancer Mac OS X sur PC fonctionne en effet sous Linux sans trop de soucis. Avec le Raspberry Pi original (et à cause de quelques soucis avec Raspbian à l’époque), le démarrage prenait 1h20 et afficher le panneau « A propos de ce Mac » prenait pas loin de 4 minutes.

Ici, j’ai tenté avec un Raspberry Pi 3, équipé d’un Cortex A53 à 1,2 GHz et de quatre coeurs. La carte dispose aussi de 1 Go de RAM, ce qui permet d’en allouer 512 Mo sans soucis à Mac OS X. J’ai compilé PearPC 0.5, qui fonctionne correctement sous Raspbian (en ARMv7). A l’époque, j’avais du compiler l’OS sans FPU et en ARMv5 à cause de bugs. Petit truc qui peut servir, il existe un site permettant de générer un fichier de configuration propre pour PearPC.

Et le résultat ? Ca reste assez peu glorieux : PearPC n’utilise qu’un seul coeur et le Cortex A53 n’est pas un foudre de guerre. Ca va plus vite que sur l’antique ARM11, mais il faut tout de même 20 minutes et 40 secondes pour démarrer totalement. De même, afficher le panneau « A propos de ce Mac » prend encore 20 secondes. C’est extrêmement lent et totalement inutilisable en dehors de la présentation. Pour simplifier les choses, j’utilise d’ailleurs une image de Mac OS X déjà remplie, ça évite les complications liées à l’installation et à l’émulation d’un lecteur optique.

Panther sur le Raspberry Pi 3

Panther sur le Raspberry Pi 3

Pour information, les concepteurs indiquent que PearPC est environ 500x plus lent que le CPU d’origine avec l’émulation classique, et l’émulation améliorée (JIT) n’est pas compatible ARM…