| Linux-Mandrake: Manuel de référence | ||
|---|---|---|
| Page précédente | Chapitre 10. Compilation et mise en place de nouveaux noyaux | Page suivante |
Votre noyau étant maintenant compilé avec succès, il reste à l'installer. Toujours pour rester « propre » et identifier vos noyaux de façon non ambiguë, il est préférable de respecter une certaine discipline de nommage. On va supposer que vous installez un noyau 2.2.17. À ce moment-là, tapez les commandes suivantes :
$ make install |
Après celà, il ne vous reste plus qu'à mettre à jour le chargeur de démarrage (boot loader) que vous utilisez. Il-y-a deux possibilités : Grub ou LILO. Prenez bonne note que Linux-Mandrake est maintenant configuré avec Grub comme chargeur de démarrage par défaut.
Vous devez ici modifier le fichier /boot/grub/menu.lst. Évidemment, vous voudrez garder la possibilité de charger votre ancien noyau! Voilà ce à quoi ressemble un menu.lst typique, avant toute modification :
timeout 5 color black/cyan yellow/cyan i18n (hd0,4)/boot/grub/messages keytable (hd0,4)/boot/fr-latin1.klt default 0 title linux kernel (hd0,4)/boot/vmlinuz root=/dev/hda5 title failsafe kernel (hd0,4)/boot/vmlinuz root=/dev/hda5 failsafe title Windows root (hd0,0) makeactive chainloader +1 title floppy root (fd0) chainloader +1 |
Ce fichier est constitué de deux parties : l'entête avec les options communes de base (les cinq premières lignes), et les sections (ou entrées), chacune corespondant à un noyau différent ou à un autre système d'exploitation. timeout 5 définit le temps dont vous disposez pour choisir un autre noyau ou système d'exploitation que celui définit par défaut. Ce défaut est spécifié par default 0, qui signifie que la première section définie est celle par défaut. La ligne color définit les couleurs du menu; la ligne i18n indique l'emplacement du message de bienvenue : (hd0,4) signifie qu'il se trouve sur la quatrième partition du premier disque dur. L'option keytable (hd0,4)/boot/fr-latin1.klt indique à Grub le type de clavier utilisé si vous avez besoin de passer des options manuellement au démarrage.
Vient ensuite la section des entrées. Nous en avons quatre ici : linux. failsafe, windows, et floppy.
L'unique ligne pour la section linux indique à Grub que nous voulons charger l'image de démarrage primaire appelée vmlinuz dans le répertoire /boot/ de la quatrième partition du premier disque dur. L'option root=/dev/hda5 n'est pas une option pour Grub, elle est en fait passée directement au noyau pour l'informer que le système de fichiers racine root (/) est située sur /dev/hda5.
L'entrée failsafe ressemble beaucoup à la précédente, sauf que nous passons un argument supplémentaire au noyau (failsafe) qui lui demande de passer en mode « single » ou mode « de secours ».
L'entrée Windows demande à Grub de simplement charger le secteur de démarrage de la première partition, qui contient probablement le secteur de démarrage de Windows.
La dernière section, floppy démarre simplement votre système depuis la disquette du premier lecteur, quel que soit le système d'exploitation qui y réside.
![]() | Suivant le niveau de sécurité utilisé sur votre système, certaines des entrées décrites ici peuvent être absentes de votre fichier. |
Allons maintenant au but. Nous avons besoin de rajouter une nouvelle section Linux afin de pouvoir démarrer sur notre nouveau noyau. Dans cet exemple, il sera placé au début des entrées, mais rien ne vous empèche de le mettre ailleurs :
title linux-experimental kernel (hd0,4)/boot/vmlinuz-2.2.17 root=/dev/hda5 |
N'oubliez pas d'adapter le fichier à votre configuration! le système de fichier root Linux est ici sur /dev/hda5 mais il est sûrement ailleurs sur votre système. Votre machine est prête à être redémarrée, profitez bien de votre noyau tout neuf!
Si vous avez compilé votre noyau avec le framebuffer, vous voudrez sans doute l'exploiter : dans ce cas, il faut rajouter une directive à la section qui lui indique en quelle résolution vous voulez démarrer. La liste des modes est disponible dans le fichier /usr/src/linux/Documentation/fb/vesafb.txt (pour le framebuffer VESA! Sinon, reportez-vous au fichier correspondant). Pour du 800x600 en 32 bits[1], le numéro du mode est 0x315, il faut donc rajouter la directive :
vga=0x315 |
title linux-experimental kernel (hd0,4)/boot/vmlinuz-2.2.17 root=/dev/hda5 vga=0x315 |
Pour plus d'information, consultez les pages d'info de Grub (info grub).
Pour LILO, il vous faudra mettre à jour /etc/lilo.conf. Évidemment, gardez la possibilité de démarrer votre noyau actuel! Voici à quoi ressemble un lilo.conf typique, après installation de votre distribution Linux-Mandrake et avant modification :
boot=/dev/hda
map=/boot/map
install=/boot/boot.b
prompt
timeout=50
image=/boot/vmlinuz-2.2.9-19mdk
label=linux
root=/dev/hda1
read-only
other=/dev/hda2
label=dos
table=/dev/hda |
![]() | Cet exemple suppose que vous utilisez LILO en tant que chargeur principal! Si vous utilisez System Commander, la directive boot= sera différente, et vous n'aurez probablement pas de section other. |
Un fichier lilo.conf est composé d'une section principale, suivie d'une section pour le lancement de chaque système d'exploitation. Dans l'exemple du fichier ci-dessus la section principale est composée des directives suivantes :
boot=/dev/hda map=/boot/map install=/boot/boot.b prompt timeout=50 |
La directive boot= dit à LILO où il doit installer son secteur de boot; en l'occurrence, il s'agit du MBR (Master Boot Record, enregistrement principal de démarrage) du premier disque dur IDE. Si vous voulez faire une disquette LILO il vous suffira de remplacer /dev/hda par /dev/fd0 :-) La directive prompt demande à LILO de présenter l'invite au démarrage et d'entamer la procédure après 5 secondes (timeout=50). Si vous retirez la directive timeout=, LILO attendra jusqu'à ce que vous ayez tapé quelque chose.
Puis vient une section linux :
image=/boot/vmlinuz-2.2.9-19mdk
label=linux
root=/dev/hda1
read-only |
Une section linux commence par la directive image=, suivie par le chemin complet vers un noyau Linux valide. À l'instar de toute section, elle contient une directive label= pour l'identifier de façon unique. La directive root= dit à LILO quelle est la partition hébergeant le système de fichiers racine pour ce système Linux, elle pourra être différente chez vous. La directive read-only commande à LILO de monter ce système de fichiers racine en lecture seule au démarrage : s'il n'y a pas cette directive, vous aurez un message d'avertissement.
Puis vient la section Windows :
other=/dev/hda2
label=dos
table=/dev/hda |
En fait, une section débutant par other= sert à LILO pour démarrer tout système d'exploitation autre que Linux : l'argument de cette directive est l'emplacement du secteur de boot de ce système, et en l'occurrence il s'agit d'un système Windows. Pour trouver le secteur de boot, situé au début de la partition hébergeant cet autre système, Linux a également besoin de savoir où se trouve la table des partitions qui lui permettra de localiser la partition en question, ce que fait la directive table=. La directive label=, comme pour une section linux, sert à identifier le système.
Avant de rajouter notre section linux, nous allons faire d'une pierre deux coups :-) Composons un message qui s'affichera au démarrage avant l'apparition du prompt LILO, et qui explique comment utiliser celui-ci :
$ cat >/boot/message <<EOF > Bienvenue, ici LILO (LInux LOader). > Tapez sur la touche TAB pour avoir une liste des images de boot. > Vous disposez de: > * exp : démarrage de Linux-Mandrake avec votre nouveau noyau > * linux : noyau d'origine de Linux-Mandrake > * dos : Windows > Appuyer sur ENTREE sans entrer le nom d'une image démarrera > la première image sur la liste, à savoir exp. > EOF $ |
Et voilà! Pour que ce message s'affiche au boot, il suffit de rajouter la directive :
message=/boot/message |
dans la section principale de lilo.conf. Maintenant, il faut rajouter la section Linux pour pouvoir démarrer sur le nouveau noyau. Dans cet exemple, elle sera mise en tête, mais rien ne vous empêche de la mettre à un autre endroit :
image=/boot/vmlinuz-2.2.17
label=exp
root=/dev/hda1
read-only |
Si vous avez compilé votre noyau avec le framebuffer, consultez le paragraphe à ce sujet ci-dessus dans la section sur Grub. La différence est que désormais, l'option es sur une ligne à part :
vga=0x315 |
Voici donc à quoi ressemble notre lilo.conf après modification, agrémenté de quelques commentaires en plus (toutes les lignes commençant par #), qui seront ignorés par LILO :
#
# Section principale
#
boot=/dev/hda
map=/boot/map
install=/boot/boot.b
# Notre message d'invite
message=/boot/message
# Présenter le prompt...
prompt
# ... attendre 5 secondes
timeout=50
#
# Notre nouveau noyau: image par défaut
#
image=/boot/vmlinuz-2.2.17
label=exp
root=/dev/hda1
read-only
# Si on utilise le framebuffer VESA:
vga=0x315
#
# Le noyau d'origine
#
image=/boot/vmlinuz-2.2.15-19mdk
label=linux
root=/dev/hda1
read-only
#
# Section Windows
#
other=/dev/hda2
label=dos
table=/dev/hda |
N'oubliez pas d'adapter le fichier à votre configuration! Le système de fichiers racine de Linux est ici /dev/hda1 mais il peut très bien être ailleurs chez vous, et la même chose est valable pour Windows. Maintenant que le fichier est modifié de façon appropriée, il faut dire à LILO de changer le secteur de boot :
$ <Command>lilo </> Added exp * Added linux Added dos $ |
Vous pouvez ainsi compiler autant de noyaux que vous le souhaitez, en rajoutant autant de sections Linux que nécessaire. Il ne vous reste plus qu'à redémarrer pour tester votre nouveau noyau.
| [1] | 8 bits signifie (28)couleurs, soit 256; 16 bits signifie (216)couleurs, soit 64k, soit 65536; en 24 bits comme en 32 bits, la couleur est codée sur 24 bits, soit (224) couleurs possibles, soit exactement 16M, ou un peu plus de 16 millions. |
| Page précédente | Début | Page suivante |
| Compilation et installation des modules | Remonter | Systèmes de fichiers et points de montage |