Emuler Mac OS X sur un Raspberry Pi (presque)

Sur une idée de @Caseyneiba : est-ce possible de lancer Mac OS X sur un Raspberry Pi ? La version PowerPC de Mac OS X, oui (je l’avais fait avec PearPC), mais une version récente ? Du coup, j’ai essayé (et échoué, ça arrive).

J’ai utilisé ce tutorial, destiné à la base à « émuler » Mac OS X dans Qemu sur une machine à base d’Intel. C’est plutôt efficace, parce qu’on passe par KVM (Kernel Virtual Machine) avec Qemu (un émulateur) : en gros, on n’émule pas vraiment le processeur, il est virtualisé, et Qemu (l’émulateur) doit juste gérer les autres composants de la machine.

Avec un Raspberry Pi, impossible d’utiliser KVM, donc on doit émuler un Core 2 Duo sur un processeur qui a une architecture proche d’un 486, et Qemu n’est pas réputé pour sa vitesse. Pour se donner une idée de la perte, un Core i7 à 2 GHz (deux coeurs) émule un ARM11 comme celui du Raspberry Pi à environ la moitié de sa vitesse réelle…

La mise en place du tutorial sans KVM ne pose pas vraiment de soucis (même si c’est un peu galère de balancer des ISO de plusieurs gigaoctets sur le Raspberry Pi), mais il y a un gros souci qui m’a bloqué : la mémoire vive. Qemu ne semble pas permettre d’utiliser plus de mémoire que la capacité de la mémoire physique et le Raspberry Pi n’a que 512 Mo de mémoire vive (et en pratique un peu moins à cause de la mémoire vidéo).

J’ai pu démarrer, en définissant 448 Mo de mémoire vive, mais ensuite… ça plante. Le message d’erreur est bizarre, mais il varie selon les cas. Et on voit très bien en testant que le problème est bien la mémoire vive. Dommage, donc.

Techniquement, on émule une machine à base de Core 2 Duo avec un chipset standard (P35) et on utilise Chameleon (comme sur les Hackintosh) pour démarrer. Normalement, ça fonctionne avec toutes les versions récentes de Mac OS X. J’ai noté la mise en place, je peux le publier si ça intéresse vraiment quelqu’un.

Qemu

Qemu

En théorie, ça doit marcher sur une machine qui a au moins 2 Go de RAM, genre un gros PowerPC sous Linux par exemple.

Le lancement en vidéo (on voit bien que la première fois, ça plante simplement au boot).