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.
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.
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.
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
.
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.
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.
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…
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.
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.
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.
Ensuite, le programme essaye de détecter la souris, demande quelques réglages sur le réseau, la présence d’une imprimante, etc.
Pour le mot de passe, attention : il faut taper en aveugle, un mot de passe de six caractères au minimum.
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.
On repasse ensuite sous Mac OS pour forcer le démarrage sous MkLinux. Bien évidemment, mon Mac a planté au démarrage de Linux.
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.
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.
Maintenant, vous pouvez lancer le serveur X, en tapant startx
. C’est Gnome, c’est lent, c’est vieux.
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.
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.
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.
Merci Pierre de ce blog, c’est toujours un plaisir de te lire, même quand il s’agit de sujets totalement improbables ! Peut être est-ce la nostalgie d’un temps où l’on passait des heures et des week end entiers à installer des trucs, pour voir, sans l’aide d’internet. Et la fébrilité de voir une progression se remplir lentement, en espérant secrètement qu’elle atteindra les 100% !
Va falloir maintenant essayer BeOS, et faire decouvrir ce qui aurait pu etre une autre possibilite d’avenir pour Apple …
Merci pour la nostalgie !
Ca m’a rappelé avec émotion une installation (vers les années 2000) de MkLinux sur Performa 6200. Compliqué mais avec les bonnes instructions ca c’était bien passé !
Je me rappelle bien en tous cas du tableau de bord MkLinux !
En revanche pour la partie graphique c’était qqch dans le goût d’OpenStep (je n’arrive pas à retrouver d’info).