Mac-On-Linux : virtualiser Mac OS X sous Linux

J’en avais déjà parlé il y a un moment, un logiciel permettant de virtualiser Mac OS X sur un ordinateur basé sur un processeur Power PC (un Mac… ou pas, mais on en reparlera). Et donc j’ai essayé d’utiliser le programme avec un Power Mac G3 sous Linux PowerPC. Après quelques essais, ça fonctionne assez bien.

mom

Première chose, installer Linux, une version PowerPC en ligne de commande suffit, comme expliqué dans un précédent post.

Je vais éviter l’affichage sous X (qui est plus lent que le mode standard), et je préviens de suite que je ne suis pas un expert en Linux, donc je fais peut-être mal certaines choses. Les instructions données ici fonctionnent, même si ce n’est pas nécessairement la technique la plus efficace.

D’abord, quelques dépendances. Pour la version des sources, il faut sélectionner celles du noyau utilisé, que l’on obtient avec la commande uname -r. Par défaut, c’est une 2.6.32.

apt-get install build-essential
apt-get install autoconf
apt-get install linux-headers-$(uname -r)
apt-get install linux-source-2.6.32
apt-get install bison
apt-get install alsa
apt-get install zlib1g-dev
apt-get install libncurses5-dev

Seconde étape, on va télécharger la dernière version de Mac-On-Linux. Le plus simple est de créer un dossier dans le répertoire /home pour accueillir les données.
Il devrait être possible de cloner le tout depuis le repository, mais dans mon cas, ça ne fonctionne pas.

wget http://mac-on-linux.svn.sourceforge.net/viewvc/mac-on-linux/trunk/?view=tar
tar xvf index.html?view=tar

Avant de compiler, il y a une petite modification à faire.

nano trunk/src/kmod/Linux/Makefile.26

Il faut ajouter les deux lignes suivantes dans le code.

-I/lib/modules/`uname -r`/build/arch/$(TMPARCH)/include \
-I/lib/modules/`uname -r`/source/include \

Ca doit ressembler à ça :

TMPARCH := powerpc
K_FLAGS = -Iinclude -include include/linux/autoconf.h -Iarch/$(TMPARCH)$
-I/lib/modules/`uname -r`/build/arch/$(TMPARCH)/include \
-I/lib/modules/`uname -r`/source/arch/$(TMPARCH)/include \
-I/lib/modules/`uname -r`/source/include \

-I$(src) -I$(src)/../../../include $(INCLUDES) -D__KERNEL__
else

Ensuite, on sauve (ctrl + o) et on quitte (ctrl + x).

On compile.

cd trunk
make

Dans le menu, il y a quelques options à choisir, pour le son, l’image et le réseau. Le mieux est de prendre le mode framebuffer pour la vidéo (X11 est aussi possible), Alsa pour le son, TUN pour le réseau et le support de l’USB.

Screen Shot 2012-12-31 at 11.33.20

On installe le programme. Les nombreux warning sont « normaux », le programme date un peu.

make install

On configure l’image, avec la commande suivante. Le plus simple, si vous utilisez un écran LCD, est de n’accepter que les définitions classiques (800x 600, 1 024 x 768, etc.) avec un taux de rafraichissements de 60 Hz. Si vous avez un CRT, le mieux est d’essayer ce qui passe bien.

molvconfig

On teste le programme :

startmol --test

Si tout va bien, vous devriez obtenir ceci :

*******************************************
* Self-test successful *
*******************************************

Et on redémarre la machine.

Tout n’est pas fini. La version de développement a un bug dans le fichier qui permet de booter Mac OS X, il faut donc le remplacer.

wget http://down.dandu.be/bootx
mv bootx /usr/local/share/mol/0.9.73/drivers/bootx

Maintenant, on va configurer le programme.

nano /etc/mol/molrc.osx

On peut changer la valeur de RAM, qui est par défaut de 128 Mo. C’est à adapter en fonction de la quantité de RAM de la machine physique.
Dans mon cas, j’ai dédié un disque dur complet à Mac OS X, mais il est possible de travailler uniquement sur une partition. Avec un disque complet, voici la ligne à ajouter dans le fichier, hdb étant le disque dur.

blkdev: /dev/hdb -rw -force -boot -whole

Une petite modification pour démarrer sur le CD :

nano /etc/modules

Et on ajoute ide-scsi à la fin avant de redémarrer.

Ensuite, enfin, on peut lancer le programme. Pour l’installation, on va forcer le boot sur le CD.

startmol --osx --cdboot

Le programme devrait booter sur le CD et un passage dans Disk Utility va permettre (si tout va bien) de formater le disque dur.
Ensuite, il suffit d’installer Mac OS X de façon classique.

Pour lancer Mac-On-Linux avec Mac OS X, la commande est la suivante.

startmol --osx

Terminé ? Pas tout à fait. Il faut maintenant installer les pilotes de Mac-On-Linux, pour que Mac OS X reconnaisse la carte son et le contrôleur Ethernet. Un disque virtuel est normalement monté, il suffit ensuite d’installer les pilotes.

Mac OS X ne bronche pas

Mac OS X ne bronche pas

C’est bon, ça marche !

Au niveau des performances, ça va aussi vite qu’en natif (à 10 % près) au niveau du processeur, mais l’affichage est nettement plus lent que sur un « vrai » Mac. Les clés USB et autres disques durs sont censés fonctionner, même si je n’ai pas réussi directement. Globalement, les performances sont bien supérieures à ce que l’on peut obtenir avec PearPC, par exemple.

La vidéo montre le démarrage et quelques manipulations. L’image est un peu décalée parce que sortir du 720p propre sur une machine de 1998 en VGA et faire entrer le tout dans une carte d’acquisition HDMI, ce n’est pas une sinécure…