| Qui est en ligne ? |
| Il y a : 10 utilisateurs en ligne, consultez le détail |
Forum » Documentation Linux » Thème I (noyau 2.4.x) : Update d'un noyau fonctionnel |
Forum modéré par : Jul |
| Même auteur |
|
Score ( voter ) : ![]() ![]()
|
|
|
|
|
| Page : [1] |
| Auteur | Message |
|---|---|
|
|
#0 Message posté le : 17-09-2006 à 00:00:00 |
Scarabée Forum : Inscrit Association : Arrivé(e) le : 04-07-2003 Nombre de messages : 171 |
Dans cette partie nous allons supposer que vous ayez déjà un noyau fonctionnel, mais auquel il manque une ou deux fonctionnalités. Par exemple, le module n_hdlc. Il est donc, dans ce cas, inutile de passer en revue les quelques 500 options possibles du noyau. 1. Pré-requis :Pour upgrader votre noyau, assurez-vous d'avoir les paquets suivants :
2. Installer les sources :Votre distribution est livrée avec les sources du noyau qui anime votre machine. Vous pouvez bien-sûr prendre les sources du noyau correspondant sur kernel.org , mais le noyau de votre distribution contient des patchs et des corrections de bugs, il est préférable d'en profiter. Concrètement :
Terminez en faisant le lien suivant, par exemple, chez moi sur une Slackware 9, le paquet kernel-source a créé le répertoire /usr/src/linux-2.4.19/ , j'ai donc fait le lien suivant :
cd /usr/src/ mv linux linux-old ln -sf linux-2.4.19 linux 3. Patcher son noyau :Cette étape, concerne les personnes qui souhaitent rajouter un patch à leur noyau, si vous n'avez pas de patch à appliquer passer au 3. Sinon, commencez par copier le patch dans le répertoire des sources du noyau :
cp /où_est/nouveau.gz /usr/src/linux/ Puis appliquez-le ainsi :
cd /usr/src/linux/ gunzip nouveau.gz patch -p1 < nouveau.patch Pour annuler ce patch, il suffira de rappeler patch. Ceci suppose bien-sûr que le patch soit compressé avec gzip. 4. Le ./configure :Rappelons que cette étape a pour but, la génération du fichier de configuration, qui indiquera au compilateur les parties à inclure dans l'exécutable. Heureusement pour nous, les distributions sont livrées avec le fichier de config du noyau qu'elles utilisent. Ce fichier est souvent localisé dans /boot/, il s'appelle /boot/config-ide-2.4.19, /boot/config-ide-2.4.18-bf2.4, /boot/config-2.4.18-3 ou /boot/config-2.4.19-16mdk, peu importe, copiez-le, chez moi (Slackware 9) ça donne :
cp /boot/config-ide-2.4.19 /usr/src/linux/.config Si vous avez l'expérience des commandes Unix, vous avez naturellement déduit que le fichier de configuration du noyau n'est pas config.h mais .config, peu importe, ils jouent le même rôle. C'est à dire que la modification de ce fichier n'influe en rien sur l'exécutable déjà présent sur votre système. Pour changer de noyau, il faut le re-compiler et le re-installer exactement comme avec les autres logiciels. A ce stade, si vous décidiez de lancer la compilation, vous obtiendrez exactement l'exécutable que vous avez déjà sur votre système, pour rajouter une option à ce fichier, lancez l'utilitaire : make menuconfig, depuis le répertoire /usr/src/linux/. C'est une interface ncurse, rudimentaire, mais qui conviendra pour ce qu'on souhaite faire. Elle s'organise en menus, vous pouvez naviguer grâce aux touches directionnelles. Pour valider une action, positionnez-vous sur <Select> et pressez la touche [enter], pour changer une option ([N] pour non,[M] pour module,[*] pour yes) utilisez la touche [espace]. Mettons que je souhaite, activer n_hdlc en module, il me suffit d'aller dans Character devices --> et de m'assurer d'avoir :
<M> HDLC line discipline support Quand vous êtes satisfait, choisissez <exit>, à la question, Do you wish to save your new kernel configuration ? choisissez <Yes>. Voilà, votre noyau est configuré, il ne vous reste plus qu'à le compiler où l'installer. 5. make :Comme annoncé dans l'introduction, le make sert à générer un exécutable, pour ce faire il suit les indications contenues dans le .config. Rappelons que la compilation est une traduction, au même titre que le passage de l'anglais au français. On passe d'un fichier ascii, contenant du code source C à un fichier binaire (contenant des 0 et des 1) appelé exécutable. Pour la plus part des logiciels, la commande make suffit à lancer la compilation, pour le noyau c'est :
make dep clean bzImage modules
6. make install :Rien de bien compliqué ici non plus, puisqu'il il s'agit d'installer le noyau et les modules. On commence par le noyau :
cd /usr/src/linux/ cp arch/i386/boot/bzImage /boot/vmlinuz.2419 cp System.map /boot/System.map-2419 Le .2419 c'est parce que j'installe un noyau 2.4.19, mais le nom n'a pas d'importance, évitez néanmoins de l'appeler vmlinuz tout court. A ce stade votre noyau est installé, mais pour être totalement en règle avec la syntaxe Linux, exécutez également les commandes suivantes :
cd /boot/ mv System.map System.map.old mv vmlinuz vmlinuz.old ln -s vmlinuz.2419 vmlinuz ln -s System.map-2419 System.map Il ne vous reste plus qu'à installer les modules :
cd /usr/src/linux/ make modules_install Si votre distribution utilise un disque ram initial (initial ramdisk = initrd) pour démarrer, je pense à Mandriva et RedHat, tapez également :
mkinitrd -o /boot/initrd.2419 /lib/modules/votre_nouveau_noyau 7. Mise à jour du chargeur d'OS :Maintenant que votre noyau est installé il vous reste à mettre à jour votre chargeur d'OS, il peut s'agir de lilo ou grub. 7.1 Si vous utilisez Lilo :Editez votre fichier /etc/lilo.conf, focalisez sur la zone qui démarre Linux (label=linux), chez moi elle ressemble à ce qui suit, il peut y avoir quelques variations chez vous, cela n'a aucune importance : image = /boot/vmlinuz root = /dev/hda4 append = "hdc=ide-scsi hdd=ide-scsi" label = Linux vga = 773 read-only Vous devez la dédoubler et modifier chacun des deux blocs, concrètement voici en gras les modifications à apporter : # Ancien noyau : image = /boot/vmlinuz.old root = /dev/hda4 append = "hdc=ide-scsi hdd=ide-scsi" label = mylinux-old vga = 773 read-only # Nouveau noyau : image = /boot/vmlinuz root = /dev/hda4 append = "hdc=ide-scsi hdd=ide-scsi" label = Linux vga = 773 read-only Le reste doit rester inchangé. Si vous utilisez une distribution avec initrd, votre /etc/lilo.conf ressemblera plutôt à ceci : image=/boot/vmlinuz label=linux root=/dev/hdc6 initrd=/boot/initrd.img append="quiet devfs=mount" vga=788 read-only Vous devez la dédoubler et modifier chacun des deux blocs, concrètement voici en gras les modifications à apporter : # Ancien noyau : image=/boot/vmlinuz.old label = mylinux-old root=/dev/hdc6 initrd=/boot/initrd.img append="quiet devfs=mount" vga=788 read-only # Nouveau noyau image=/boot/vmlinuz label=Linux root=/dev/hdc6 initrd=/boot/initrd.2419 append="quiet devfs=mount" vga=788 read-only Le reste doit demeurer inchangé. Quand vous êtes satisfait, validez vos changements en tapant :
/sbin/lilo -v Voilà vous pouvez redémarrer, au boot vous choisirez Linux, en cas de difficultés vous pourrez toujours revenir à l'ancienne version en choisissant mylinux-old et recommencer plus consciencieusement. 7.2 Si vous utilisez Grub :Pour grub c'est le fichier /boot/grub/menu.lst, qu'il faut éditer, la section linux (title Linux) ressemble à : title Linux root (hd0,3) kernel /boot/vmlinuz root=/dev/hda4 hdc=ide-scsi hdd=ide-scsi vga=773 Vous devez la dédoubler et modifier chacun des deux blocs, concrètement voici en gras les modifications à apporter : # Ancien noyau : title mylinux-old root (hd0,3) kernel /boot/vmlinuz.old root=/dev/hda4 hdc=ide-scsi hdd=ide-scsi vga=773 # Nouveau noyau title Linux root (hd0,3) kernel /boot/vmlinuz root=/dev/hda4 hdc=ide-scsi hdd=ide-scsi vga=773 Le reste doit rester inchangé. Si vous utilisez une distribution avec initrd, votre /boot/grub/menu.lst ressemblera plutôt à ceci : title Linux kernel (hd0,5)/boot/vmlinuz root=/dev/hdc6 quiet devfs=mount vga=788 initrd (hd0,5)/boot/initrd.img Vous devez la dédoubler et modifier chacun des deux blocs, concrètement voici en gras les modifications à apporter : # Ancien noyau : title mylinux-old kernel (hd0,5)/boot/vmlinuz.old root=/dev/hdc6 quiet devfs=mount vga=788 initrd (hd0,5)/boot/initrd.img # Nouveau noyau title Linux kernel (hd0,5)/boot/vmlinuz root=/dev/hdc6 quiet devfs=mount vga=788 initrd (hd0,5)/boot/initrd.2419 Voilà vous pouvez redémarrer, au boot vous choisirez Linux, en cas de difficultés vous pourrez toujours revenir à l'ancienne version en choisissant mylinux-old et recommencer plus consciencieusement. Introduction Thème II : Installation d'un nouveau noyau --Message édité par TrustRobot le 17-09-2006 à 00:00:00-- |
| Page : [1] |
Forum » Documentation Linux » Thème I (noyau 2.4.x) : Update d'un noyau fonctionnel |
Forum modéré par : Jul |
| Même auteur |
|
Score ( voter ) : ![]() ![]()
|
|
|
|
|
- Petit scarabée : 0 pastille, moins de 100 messages
- Scarabée : 0 pastille, plus de 100 messages
- Hobbit : 1 pastille, plus de 1000 messages
- Naboo : 2 pastilles, plus de 2000 messages
- Elfe : 3 pastilles, plus de 3000 messages
- Jedi : 4 pastilles, plus de 4000 messages
- Maître Jedi : 5 pastilles, plus de 5000 messages
