YABOOT: mode d'emploi.

Introduction.

J'ai décidé de poster ce mini How-To car il m'a fallut beaucoup de temps pour booter Linux avec cette méthode. Mes connaissances en informatique sont limitées, et j'ai rencontré de nombreux problèmes, qui, je l'espère, vous seront évités.

D'ailleurs, la mailing list de Linuxppc est actuellement pleine de messages à ce sujet, et j'ai pu remarquer que de nombreuses autres personnes rencontraient des difficultés. Les informations sur ce sujet sont très disparates, confuses, imprécises, voir parfois complètement erronées. J'ai essayé bien des fichiers et bien des méthodes sans aucun succès.

Ce que je décris ici FONCTIONNE sur ma machine, un B&W G3 rev1, Mac OS 9.04, Linuxppc 1999. J'espère ainsi vous éviter de nombreuses heures à tourner en rond, vous décourageant d'utiliser Mac OS 9.04, voire votre Linux favori (y aurait-il une volonté de la part d'Apple de nous faire abandonner notre Linux chéri, quelques mois avant le lancement de Mac OS X ??).

Pourquoi utiliser Yaboot plutôt que BootX ?

Chaque nouvelle version de Mac OS et chaque nouvelle machine changent le comportement des couches basses (hardware). Cela modifie donc la manière de booter. La modification répétée de ces couches basses rend le développement d'un utilitaire de boot comme Bootx difficile à maintenir. L'utilisation de l'Open Firmware est techniquement plus sur. BootX fonctionne très bien sur toutes les machines "Old World" (tout ce qui n'est pas coloré) et même la plupart des machines "New World" (G3, G4, Imac, Lombard) tant que l'Os utilisé est inférieur à Mac OS 9.04. Toutefois, sur les derniers G4 et Imac, le boot de Linux avec Bootx peut être capricieux, même sous Mac OS 8.6. Quant à utiliser Bootx avec Mac OS 9.04, cela est impossible.

De quoi avez vous besoin?

· un éditeur de texte
Simple Text ou bien BBedit feront très bien l'affaire. J'ai personnellement utilisé BBedit, car je suis sur que les fichiers édités par cet utilitaire pourront être lus par un environnement UNIX. Si vous n'avez pas BBedit, vous pouvez obtenir gratuitement une version Lite en allant sur n'importe quel site de téléchargement de logiciels (Tucows, Zdnet, Mac download...).
· Le Firmware de votre machine mis à jour.
En effet, certaines premières versions ont des claviers qui sont incorrectement mappés, et l'installation ne va pas fonctionner. Pour obtenir la dernière version, allez sur le site d'Apple : http://www.apple.com/support/downloads/.
· System Disk 2.3.1.
Vous trouverez cet utilitaire à l'adresse suivante : ftp://ftp.apple.com/developer/macosxserver/utilities/.Il vous servira à connaître l'adresse des différentes partitions de votre (ou vos) disque dur sous Mac OS. Les adresses de partition données par pdisk ne sont pas utilisables par l'Openfirmware. Vous constaterez, si vous essayez, que les numéros de partitions données par pdisk ne sont pas les mêmes que celles données par System Disk.
· Un noyau récent: 2.2.15.
Vous pouvez le compiler vous même, ou utiliser le noyau 2.2.14pre14 pré compilé par Benjamin Herrenschmidt.
· L'utilitaire Yaboot 0.6,
que vous trouverez sur le site de Benjamin Herrenschmidt.
· Un script de boot,
appelé bootinfo.txt (ou parfois ofboot). Celui que j'utilise vous est fourni.
· Un fichier yaboot.conf,
qui va indiquer différents renseignements à yaboot afin de charger le noyau, la partition root, ainsi que les arguments de boot. Celui que j'utilise vous est fourni.

Quelques adresse utiles où trouver des renseignements.

· Le site de Benjamin Herrenschmidt :
http://penguinppc.org/~benh
· L'article du très actif Martin Costabel sur l'installation de Linuxppc sur un Imac :
http://lists.linuxppc.org/linuxppc-user/199912/msg00954.html ou http://www.linux-france.org/article/materiel/mac/install_iMacDV.html pour la version française.
· quelques bonnes explications pêchées sur la mailing liste (cherchez yaboot sur cette liste, vous serez étonnés du nombre de messages y faisant référence):
http://lists.linuxppc.org/linuxppc-user/200003/msg01194.html ; msg01389.html ; msg00262.html ; msg02056.html ; msg00239.html ; msg00402.html

Le principe de fonctionnement

Il y a deux étapes distinctes, et il me parait impératif de bien faire fonctionner la première avant de s'attaquer à la suivante.

La première étape consiste à faire booter votre Mac sur Linux, et non sur Mac OS. Vous aller lui dire de booter sur un programme qui s'appelle yaboot, et qui utilise un fichier de configuration appelé yaboot.conf. Pour se faire, vous devez ouvrir le Firmware au démarrage. Pour cela, démarrez en appuyant simultanément sur les touches <ALT>+<POMME>+ O+F.

Vous arrivez sur une invitation de commandes. Attention, le clavier est désormais en qwerty. Voici quelques concordances de touches (sous Mac OS, tableau de bord, clavier, clavier US, vous trouverez le clavier qwerty) :

- ------> )
: ------> <MAJ>+M
\ ------> £
, ------> ;
. ------> /
m ------> ,
a ------> q

Vous devrez taper "boot hd:5,\\yaboot", c'est à dire, indiquer au Firmware de booter sur yaboot. Vous devez lui indiquer le chemin de yaboot. Dans mon cas, j'ai mis yaboot dans mon dossier système, qui est à l'adresse "hd:5". J'ai pu trouver son adresse en utilisant System Disk. Lancez l'utilitaire, et cliquez sur la partition où est installée votre dossier système (partition de boot). Vous verrez en bas s'afficher quelque chose comme : "HD name,(mac os),Bus ATA1, N O, partition 5". Le numéro sera peut-être différent chez vous. Si vous avez un deuxième disque dur, vous verrez "Bus ATA 1, N 1" pour ce qui concerne le deuxième disque.

Sous openfirmware, pour booter sur Mac OS, tapez "mac-boot", ou bien " boot hd:5,\\:tbxi". Cela lui dit d'aller charger Mac OS ROM, et un fichier qui se termine par tbxi.

Éditer correctement yaboot.conf

Vous devrez mettre le fichier yaboot.conf dans votre dossier système, comme l'utilitaire yaboot.

Le petit message de bienvenu (Welcome to...), "init-message", n'est pas utile.
La syntaxe au niveau des "n" et "\" est importante et doit être respectée, sinon yaboot ne pourra pas lire ce message d'invite. La plupart des exemples trouvés sur le net ne sont pas lisibles. Vous pouvez y mettre ce que vous souhaitez. Si il y a un problème à la lecture, supprimez le.
timeout=50.
C'est le temps, en dixième de secondes, au bout duquel yaboot va charger la configuration "default" que vous lui indiquerez (je reviendrais après sur les options possibles).
default=linuxppc.
Vous donnez ici un nom à la config par défaut. Vous pouvez donner n'importe quel nom.

Là, vous passez une ligne.

image=hd:11,vmlinux-2.2.15pre14-ben1.
Vous allez indiquer ici quel noyau vous utilisez, ainsi que son chemin. Dans mon cas, j'utilise le noyau pré compilé par B.Herrenschmidt, que j'ai mis dans ma partition "exchange". Je n'ai pas réussi à faire fonctionner yaboot en mettant le noyau dans mon dossier système. Je crois qu'il faut que la partition soit HFS. Toujours à l'aide de System Disk, j'ai déterminé que cette partition avait pour adresse "hd:11" (premier disque dur, partition 11).
label=linuxppc.
Donnez ici un nom à cette config. Dans mon cas, c'est cette config là qui est donnée en défaut.
root=/dev/hdb5.
Vous donnez ici le chemin de votre partition Root sous Linux. Dans mon cas, "hdb" est le deuxième disque dur. ATTENTION, ici il faut donner l'adresse donnée par pdisk (ou Linux), et non par System Disk.
append="video=128atyfb:vmode:17,cmode:24".
Cette petite ligne est sans doute celle qui m'a donnée le plus de souci. J'ai d'abord essayé avec "novideo" à la place de cette ligne. Or, quand je démarrais mon server X sous Linux (Xpmac.rev.10), mon écran était rempli de millions de petits points de couleur, et lorsque je quittait X, je lisais le message suivant: "misaligned data in rage128.imc". Personne n'a pu m'expliquer pourquoi. J'ai mis du temps à trouver que le fichier rage128.imc est un fichier source, écrit en C, et qui fait partie des fichiers nécessaires à la compilation de Xpmac. Ma carte vidéo est sur mon G3 une ATI rage 128. Toutes les autres options (novideo, video=ofonly...) n'ont pas marché. Quant aux valeurs de vmode et cmode, ce sont des valeurs classiques, que vous pouvez modifier selon votre écran.

Au boot de Linux, l'image sera sans doute plus lumineuse qu'avec Bootx. L'explication est que c'est le vidéo driver d'openfirmware qui est alors actif. Lorsque vous démarrez le server X (Xpmac ou Xfree), l'image sera légèrement distordue. Essayez alors de corriger avec les réglages de votre écran. Toutefois, je crois savoir qu'il est impossible de parvenir à un réglage parfait pour l'instant.

Ces quelques lignes de yaboot.conf devraient vous permettent de booter sur linux. Vous pouvez rajouter d'autres lignes, comme je l'ai fait, afin de donner une autre config (correspondant à un autre noyau). Vous donnez alors un autre "label". Lorsque vous arrivez sur yaboot après le firmware, vous avez alors 5 secondes (si timeout=50) pour appuyer sur la touche <TAB>. Vous verez alors apparaître les différents noms de label (dans mon cas, linuxppc et linuxppcpre20). Celui par défaut a une étoile devant (* ). Tapez alors à l'invite de commande, le nom du label que vous voulez charger.

Installer le dual boot : bootinfo.txt

Bootinfo.txt est un petit script de boot qui va vous permettre de ne plus avoir à faire à l'horrible Firmware (ouf...). Il vous faut placer ce script dans votre dossier système. Puis, APRÈS vous être assuré que le boot de Linux se passe sans problème en ouvrant openfirmware au démarrage, vous allez indiquer au firmware de booter dorénavant sur bootinfo.txt. Pour cela, à l'invite de commande du firmware, vous tapez: "setenv boot-device hd:5,\\bootinfo.txt" , puis <ENTER> ("ok" doit alors apparaître), puis "boot". Vous allez alors booter sur Mac OS. Lorsque vous éteindrez, et redémarrez, n'ouvrez plus openfirmware. Tapez sur la barre d'espace, vous allez booter sur Linux; ne faites rien, et vous bootez sur Mac OS. MAGIC, NO?

Si vous avez alors un problème au boot, si yaboot ou Mac OS ne se chargent pas, ne paniquez pas! Redémarrez en ouvrant openfirmware, et tapez alors "set-defaults". Cela réactivera la configuration par défaut du démarrage du Mac. Vous verrez que la plupart des explications que vous trouvez vous disent de taper "setenv boot-command boot", "setenv boot-file hd:x,\\bootinfo.txt", "setenv boot-device hd:x,\\bootinfo.txt". Cela n'a pas marché dans mon cas. Yaboot, au lieu de lancer mon noyau Linux, lançait bootinfo.txt, et le boot se bloquait alors ("Not a valid ELF format").

Conclusion.

Voilà. Vous devrez normalement y arriver, avec ce petit guide, ainsi que les infos récupérées sur internet. Il est possible toutefois que certaines choses varient d'une machine à l'autre, ce qui expliqueraient les nombreuses variantes constatées qui n'ont pas fonctionné dans mon cas. L'openfirmware est différent d'une machine à l'autre.

Téléchargement.

bootinfo.txt
yaboot.conf


Arnaud Gaboury.

 

Dernière mise à jour le 6/6/00.

les fichiers en téléchargement sont à ftp://ftp.linux-france.org/pub/macintosh/

 

Retour à GNU Linux sur Macintosh