Installer MkLinux sur un Power Mac, le Linux d’Apple

Dans mes jours de repos, j’ai eu une idée idiote : installer MkLinux.

Il s’agit d’un sujet qui traîne depuis longtemps dans ma liste de brouillons depuis un moment, elle avait comme date de publication le 1er janvier 2017.

MkLinux, c’est quoi ?

Je ne suis pas expert en Linux, donc les puristes pourront me corriger. MkLinux est un projet d’Apple en partenariat avec l’OSF Research Institute (Open Source Fondation). Il consiste à faire fonctionner une distribution GNU/Linux (ici Red Hat) au-dessus d’un noyau Mach. Le Mk signifie micro-kernel, soit micro-noyau. Dans la pratique, on a un noyau Mach capable de prendre en charge le matériel, et un noyau Linux au-dessus, qui est techniquement un simple processus. Ce fonctionnement hybride un peu particulier a quelques avantages, comme un portage rapide sur d’autres architectures, ou des pilotes simplifiés : ils communiquent avec Mach qui fournit une couche d’abstraction, et il suffit de modifier le noyau Mach pour supporter réellement une autre machine.

Schéma de MkLinux (http://maddingue.free.fr/articles/mklinux.html.fr)

Apple a commencé à distribuer MkLinux en 1996, et le développement a continué jusqu’en 1998 (avec la DR3). Visiblement, les versions suivantes (jusqu’en 2002) ne dépendent pas d’Apple. MkLinux fonctionne essentiellement sur des Mac (et des clones de Mac) à base de PowerPC, mais il existe des portages x86 ou HP-PA. Bon, dans la pratique l’OS vise essentiellement les machines d’Apple. Pendant pas mal de temps, MkLinux a été la seule solution pour installer Linux sur les machines en architecture NuBus, avant que les versions PowerPC des distributions classiques prennent en charge ces machines.

Un des trucs importants, finalement, c’est qu’il s’agit du premier OS open source d’Apple. Après, si le sujet vous intéresse, il y a une page pas mal (en français) sur le sujet.

L’installation

MkLinux, c’est… compliqué. Il faut un Mac compatible, une ISO de l’OS (pas si évident) et pas mal de manipulations.

Pour le Mac, il faut un Power PC avec un processeur de la famille 601, 603, 604 ou G3. Ca passe en gros sur tous les Mac entre les premiers PowerPC (6100) et les Power Mac G3, à l’exception des iMac. Il ne démarre pas sur un G4 et quelques Performa (52xx, 53xx, 62xx, 63xx) nécessitent des bidouilles. Idéalement, il faut 16 Mo de RAM au moins et pas trop au maximum (pas plus de 256 en tout cas, mais ça peut se limite manuellement, c’est expliqué plus bas), un disque dur et un lecteur de CD. Les machines en IDE posent plus de soucis de réglages que celles en SCSI. Les clones et les portables sont normalement supportés, dixit cette page. J’ai tenté avec un Power Mac G3 Beige en IDE, avec pleins de RAM, pas forcément l’idée du siècle, on va le voir.

Pour récupérer l’OS, c’est un peu la plaie. Le site officiel est encore en ligne (MkLinux.org) mais pas à jour. La page qui liste les miroirs renvoie vers des FTP morts ou qui ne contiennent plus l’OS. Heureusement, MacintoshGarden a encore des copies de deux versions : la DR3 (visiblement la dernière développée par Apple) et la RC2 DR5, la dernière version en date (2002). Techniquement, on peut installer via le réseau ou en copiant les données sur le disque dur, mais j’ai préféré la solution simple : graver l’ISO. Un jour, je vous parlerais de ma consommation indécente de CD-R en 2018.

Maintenant, c’est le moment de se lancer. Et de perdre pas mal de temps, parce que j’écris l’introduction après les étapes qui suivent.

La première étape bien énervante : il faut un disque dur vide. Les outils de l’époque ne permettent pas réellement de partitionner à la volée et donc il faut tout effacer. Dans mon cas, j’ai donc mis un disque dur vide dans un Power Mac G3 Beige. Il faut commencer par démarrer sur un CD de Mac OS, vu qu’on aura besoin de l’OS d’Apple dans certains cas. Avec Drive Setup, il faut initialiser le disque avec le schéma suivant : une partition pour Mac OS (en HFS, pas en HFS+, donc Mac OS Standard), une partition root (A/UX Root), une partition de swap (A/UX Swap, maximum 128 Mo) et une partition usr (A/UX User). La taille maximale des partitions sous MkLinux est de 2 Go, et attention : l’OS ne peut pas écrire sur du HFS (et ne supporte pas le HFS+). Les réglages dépendent de la capacité du disque dur, forcément. Par précaution, avec un Power Mac G3 Beige, il faut passer par un disque dur de moins de 8 Go ou placer les partitions Linux dans les premiers 8 Go.

Les partitions

Etape suivante, qui peut sembler illogique : installer Mac OS. j’ai pris Mac OS 9.1, mais normalement n’importe quelle version 8 ou 9 doit passer. Bon, je ne détaille pas l’installation, c’est tout de même assez simple et je suppose qu’une personne qui compte installer un Linux des années nonante sait installer Mac OS.

Installer Mac OS

Une fois Mac OS installé, il faut démarrer sous Mac OS et insérer le CD de MkLinux. Dans le dossier MkLinux-install, il y a plusieurs dossiers. Mach Kernel et MkLinux Booter vont dans le dossier Extensions du dossier Système de Mac OS, MkLinux dans le dossier Control Panel (Tableaux de bord), lilo.conf et MkLinux.prefs dans le dossier Préférences.

Les dossiers

Cette étape ne sert que si vous avez un lecteur de CD-ROM IDE (le cas de mon Power Mac G3). Il faut lancer le Tableau de bord MkLinux, choisir Custom (ça devrait ouvrir un ficher texte avec SimpleText) et bien vérifier que la ligne rootdev qui est active (sans # devant, donc) indique rootdev=/dev/hdc. C’était le cas sur ma machine, mais ça dépend a priori de la version de MkLinux.

Le tableau de bord


La modification

Ensuite, il faut redémarrer. Et… patatra. Message d’erreur. Attention, par défaut le Mac démarre sous MkLinux : il faut bien choisir rapidement Mac OS pour aller modifier un paramètre.

Oups

Dans mon cas, il s’agissait d’un problème matériel idiot : le lecteur de DVD que j’avais installé dans le Mac était réglé en esclave (généralement une mauvaise idée dans un Power Mac G3 Beige, d’ailleurs) et MkLinux attendait un lecteur en maître. Une fois le cavalier changé, MkLinux a démarré… ou presque. En effet, je perdais l’image (que ce soit sur la carte d’acquisition ou sur un moniteur) au lancement.

En fait, l’OS est assez strict sur les définition et l’image, spécialement avec une carte ATi. J’ai vu sur certains site qu’il fallait forcer un mode 256 couleurs, dans d’autres qu’il fallait passer en 640 x 480 mode VGA (c’est-à-dire 60 Hz et pas 67 Hz), etc. En forçant en 640 x 480 (VGA) en 256 couleurs avec un adaptateur doté de switchs et en limitant la mémoire du Mac, ça a fonctionné. Visiblement, MkLinux n’aime pas les machines avec plus de 256 Mo de RAM (j’en ai 384) et la commande mach_options= -m200 dans le fichier lilo.conf permet de régler le problème.

Dans l’interface d’installation, la souris ne semble pas fonctionne, il faut tout faire au clavier. Les explications assez claires avec les images (je suis resté en anglais). Quand le système propose de passer par Disk Druid… il faut rester avec fdisk. Petite astuce idiote : ne sélectionnez pas le clavier français dans la liste, c’est buggé. La touche q et la touche a affichent toutes les deux un a, ce qui rend la configuration un peu compliquée…

On commence


La langue


Le clavier


Le CD-ROM


Red Hat


Installer


Ne prenez pas Disk Druid


Le choix du disque

Il faut choisir une partition pour le / et une pour /usr (comme prévu au début) et ensuite sélectionner la partition de swap. Ensuite, il faut formater les deux partitions.

Les partitions


Le swap


Il faut formater

Au moment d’installer, vu que j’avais un disque dur de plusieurs Go, j’ai choisi Everything. Ensuite, quelques questions basiques, puis l’installeur formate en ext2 (les années nonante…). Après, il faut attendre. Le Power Mac G3 n’est pas une bête de course, ni son disque dur. Genre un bon 45 minutes pour tout copier… avec un segmentation fault à la fin.

Everything




Installation en cours


Oups

J’ai donc recommencé… avec la même erreur. Ensuite, j’ai tenté en mettant Workstation au lieu de Everything. Bon, l’avantage, c’est que ça installe nettement moins de choses (~860 Mo au lieu de 1 650 Mo) et donc que ça va plus vite.

Workstation


Installation en cours

Ensuite, le programme essaye de détecter la souris, demande quelques réglages sur le réseau, la présence d’une imprimante, etc.

Pas de souris détectée


Une souris ADB (MkLinux supporte les souris ADB à plusieurs boutons)


Réseau


DHCP


L’heure


Services


Et imprimantes (non)

Pour le mot de passe, attention : il faut taper en aveugle, un mot de passe de six caractères au minimum.

Le mot de passe


L’authentification

Dernière étape, le logiciel indique qu’il faut modifier manuellement le fichier de démarrage sous Mac OS, avec la bonne valeur (rootdev=/dev/hda7 ici, dans le tableau de bord MkLinux). Pensez à le noter. Il faut ensuite configurer rapidement le serveur X (qui a le défaut de ne pas être accéléré) et c’est plus ou moins fini.

La valeur à modifier


Le serveur X


Pas d’accélération


C’est bon


Victoire

On repasse ensuite sous Mac OS pour forcer le démarrage sous MkLinux. Bien évidemment, mon Mac a planté au démarrage de Linux.

Oups (encore)

La solution ? j’ai limité la mémoire à 90 Mo (mach_options= -m90) et forcé le mode 640 x 480 en 16 bits (milliers de couleurs) et ça a démarré. Aucune idée de la raison.

Ca démarre !

Le premier démarrage passe par une connexion en root, avec le mot de passe défini durant l’installation. Une fois connecté en root, il faut créer un utilisateur classique (commande adduser votrenom) puis lui donner un mot de passe (passwd votrenom). Enfin, fermez la session (exit) puis connectez-vous avec votre nouvelle utilisateur.

En root


C’est bon !

Maintenant, vous pouvez lancer le serveur X, en tapant startx. C’est Gnome, c’est lent, c’est vieux.

Gnome en 640 x 480


Le G3 est reconnu

Dans les trucs à savoir sur MkLinux, il dépend pas mal de Mac OS pour certains réglages. Genre changer de définition. Il faut redémarrer sous Mac OS, changer de définition, redémarrer sous MkLinux.

Quelques outils


Des jeux


Pas de navigateur


L’explorateur de fichiers

Je vous mets quelques images de Gnome sous MkLinux, mais je ne suis pas allé très loin : il n’y a pas de navigateur, pas grand chose d’installé, et je ne suis pas familier de la gestion des paquets de Red Hat. Accessoirement, l’interface est très lente (merci la carte graphique mal supportée) et les volumes en HFS supportés uniquement en lecture seule. Dans les logiciels, il y a The Gimp, AbiWord, etc. Dans les autres limites, d’ailleurs, le lecteur de disquettes ne fonctionne pas.

The Gimp plante évidemment


Avant de se lancer


The Gimp a planté la machine

Globalement, MkLinux est peut-être plus stable (encore que, regardez les images plus haut) que les Mac OS de l’époque, mais ça reste quand même un gros truc de barbu, avec une gestion hybride assez particulière et pas très pratique vu que pas mal de choses dépendent de Mac OS. Apple, vous le savez, a abandonné assez rapidement cette voie pour aller vers NeXT (et Mac OS X à la fin), mais MkLinux reste une curiosité assez intéressante dans l’absolu. Et je suis assez content d’avoir réussi à l’installer et à proposer un tutorial, ça manquait sur Internet en français.

En cadeau, une petite vidéo du démarrage.