Cette partie donne un certain nombre d'exemples de logiciels qui peuvent être utilisés pour transmettre les paramètres de démarrage au noyau. Elle donne aussi une idée de la façon dont les paramètres sont traités, quelles sont les limitations des paramètres de démarrage, et la façon dont ils sont répartis vers chaque périphérique pour lesquels ils ont été conçus.
Le programme LILO (LInux LOader) écrit par Werner Almesberger est le plus couramment utilisé. Il a la capacité de démarrer différents noyaux, et stocke les informations de configuration dans un fichier contenant exclusivement du texte. Beaucoup de distributions fournissent LILO comme "boot-loader" (chargeur de noyau) par défaut. LILO peut démarrer DOS, OS/2, Linux, FreeBSD, etc. sans aucun problème, et il est très souple.
LILO est fourni avec une documentation excellente, et pour les
paramètres de démarrage dont nous parlons ici, la commande
append=
de LILO est d'une très grande importance.
L'autre chargeur de noyau couramment utilisé est `LoadLin' qui est un programme DOS qui est capable de lancer un noyau Linux à partir du prompt du dos (avec des paramètres de démarrage) en supposant que certaines ressources sont disponibles. Ceci est très bien pour les gens qui utilisent le DOS et qui veulent basculer sur Linux à partir du DOS.
C'est aussi très pratique si vous possédez du matériel qui est dépendant du pilote fourni pour le DOS afin de mettre le matériel dans un état donné. Un exemple fréquent : les cartes son `SoundBlaster Compatible' qui requièrent un pilote DOS pour tripoter un ensemble de registres exotiques pour mettre la carte dans un mode compatible SoundBlaster. Démarrez le DOS avec le pilote requis, et maintenant chargez Linux à partir du prompt du DOS avec loadlin en esquivant la remise à zéro de la carte qui intervient si on redémarre complètement la machine. De cette façon, la carte est laissée dans le mode compatible SB et par conséquent est utilisable sous Linux.
Il y a aussi d'autres programmes qui peuvent être utilisés pour
démarrer Linux. Pour une liste complète, regardez sur votre miroir
ftp Linux local, les programmes disponibles dans le répertoire
system/Linux-boot/
.
Un certain nombre des paramètres de démarrage du noyau ont
leurs valeurs par défaut stockées dans différents octets de l'image
du noyau. Il existe un utilitaire baptisé rdev
qui est installé
sur la plupart des systèmes et qui sait où sont ces valeurs, et
comment les changer. Il peut aussi modifier un certain nombre de
choses qui ne possèdent pas de paramètre de démarrage équivalent,
comme le mode vidéo utilisé par défaut.
L'utilitaire rdev est couramment associé à swapdev, ramsize, vidmode et rootflags. Les cinq paramètres que rdev peut modifier sont : le périphérique de démarrage, le périphérique de swap, la taille du disque RAM, le mode vidéo par défaut, et l'autorisation de lecture-seule/lecture-écriture sur le périphérique racine.
Des informations plus complètes sur rdev
peuvent être obtenues
en tapant rdev -h
ou en lisant la page correspondante du manuel
fourni.
La plupart des paramètres de démarrage utilisent la syntaxe suivante :
nom[=valeur_1][,valeur_2]...[,valeur_11]
où `nom' est un mot clé unique qui est utilisé pour reconnaître à quelle partie du noyau sont destinées les valeurs associées (si il y en a). Plusieurs paramètres de démarrage peuvent être transmis sous forme d'une liste d'éléments, comme celle situé ci-dessus, séparés par des espaces. Notez que la limite de 11 paramètres est réelle, c'est pourquoi le code ci-dessus ne comporte que 11 paramètres séparés par des virgules pour un mot clé. Toutefois, vous pouvez réutiliser le même mot clé avec 11 paramètres de plus dans des situations très complexes, en sachant que ceci est accepté par la fonction de configuration.
La plupart sont pris en charge par linux/init/main.c
.
Tout d'abord, le noyau cherche à voir si le paramètre fait partie
des paramètres spéciaux comme `root=', `ro', `rw', ou `debug'.
La signification de ces paramètres spéciaux est décrite plus loin
dans ce document.
Il parcourt alors une liste de fonctions de configuration (contenues
dans le tableau bootsetups
) pour voir si la chaîne paramètre
spécifiée (comme par exemple `foo') a été associée à une fonction
de configuration (`foo_setup()') pour un périphérique particulier ou
une partie du noyau. Si vous passez au noyau la ligne foo=3,4,5,6
alors, il cherchera dans le tableau bootsetups
pour voir si `foo'
y figure. S'il y est, alors il pourra appeler la fonction de configuration
associée à `foo' (foo_setup()) et prendra en charge les paramètres
3, 4, 5 et 6 tels qu'ils sont donnés dans la ligne de commande adressée
au noyau.
Quelque chose du type `foo=bar', qui n'est pas accepté comme une fonction de configuration telle qu'elle est décrite ci-dessus, est interprétée comme une variable d'environnement à positionner. Un exemple (inutile ?) serait d'utiliser `TERM=vt100' comme paramètre de démarrage.
Tous les paramètres restants qui ne sont pas pris par le noyau
et qui ne sont pas considérés comme étant des variables
d'environnement sont transmis au processus initial, qui est
généralement le programme init
. Le paramètre le plus
couramment passé au processus init
est le mot single
qui demande à init
de démarrer l'ordinateur en mode
mono-utilisateur, et de ne pas lancer les "daemons" (démons) habituels.
Regardez la page du manuel correspondant à la version de
init
installée sur votre système, afin de connaître les
paramètres acceptés.
Chapitre suivant, Chapitre Précédent
Table des matières de ce chapitre, Table des matières générale
Début du document, Début de ce chapitre