|
Il y a actuellement 6 visiteurs connectés sur le site !
Mettre a jour son noyau
Presentation
Dans cette page je vous présente les manips que j'ai faites pour installer le noyau 2.5.7 sur ma Mandrake 8.1 avec noyau 2.4.8-26mdk. Ce n'est ni le dernier noyau disponible, ni la dernière version de la Mandrake, mais cette page a pour objet de vous présenter une "recette" pour mettre à jour son noyau qui marche pour toutes les configs matérielles et logicielles.
Vous constaterez que la compil d'un noyau n'est pas insurmontable, il faut savoir qu'il y a toujours moyen de revenir au noyau précédent, donc pas de panique.
Toutes les manips décrites sont à faire en tant que root.
Etape1
La première étape est de créer une disquette de boot au cas où, je vous recommande la commande drakfloppy pour créer la disquette, elle vous sera utile si l'installation du nouveau noyau foire.
Dans un deuxième temps, on va éviter de booter en mode graphique (avec le lancement du login graphique kdm ou de gdm), pour cela dans le fichier /etc/inittab on mettra:
id:3:initdefault:
Avec le 3 au lieu du 5.
Installation
On va chercher le noyau sur un des miroirs qu'on trouvera sur www.kernel.org, pour ma part j'avais pas envie de récupérer une trentaine de Mo avec ma modeste ligne RTC. Je me suis rabattu sur archive tarball linux-2.5.7.tar.gz qui fait dans les 33Mo plus ancienne trouvée dans un magazine. On la placera sous /usr/src.
A présent plaçons nous sous /usr/src
cd /usr/src
On décompresse l'archive
tar xvfz linux-2.5.7.tar.gz
Ca donne un répertoire linux-2.5.7 Maintenant veillez à installer les packages tcl et tk puis expect
Configuration
On rentre dans le répertoire /usr/src/linux-2.5.7, on lance l'utilitaire de configuration du noyau:
make xconfig
La fenêtre suivante apparaît:
Vous pouvez voir qu'on peut sauver la configuration dans un fichier (Store Configuration to File) ou charger la config d'un fichier (Load Configuration from file). C'est cette dernière option qui nous intéresse car il existe sur la Mandrake un fichier config de votre configuration courante, il vaut mieux partir de cette bonne base. Concrètement il faudra charger le fichier /boot/config après vous pouvez toujours modifier quelques paramètres.
La configuration est divisée par thèmes, pour chaque thème on a un tas de paramètres à fixer, exemple avec le thème Processor type and features:
Vous avez la possibilité d'inclure le support de telle ou telle chose dans le noyau ou en module, l'intérêt du module est qu'il est chargé en mémoire uniquement quand c'est nécessaire, du coup le noyau se retrouve plus petit, ce qui est mieux, dans la mesure du possible on choisira l'option module. Ne pas hésiter à cliquer sur Help pour chaque paramètre et de suivre les conseils.
Je vous conseille fortement de sauvegarder votre config dans un fichier, c'est utile pour des essais successifs, une fois terminée vous devez au niveau de la fenêtre principale cliquez sur Save and Exit.
Sur ma Mandrake 8.1, j'ai eu une suite d'erreur pour des variables dans le fichier config courant non reconnues, elles seront tout bonnement ignorées.
Construction du noyau
On tapera maintenant :
make dep
Puis
make bzImage
Voilà le résultat:
tools/build -b bbootsect bsetup compressed/bvmlinux.out CURRENT > bzImage
Root device is (3, 5)
Boot sector 512 bytes.
Setup is 4780 bytes.
System is 796 kB
make[1]: Quitte le répertoire `/usr/src/linux/arch/i386/boot'
Mon noyau fait donc 796 Ko
On construit maintenant les modules:
make modules
On installe le tout
make modules_install
Cela va créer un répertoire /lib/modules/2.5.7 qui ne va absolument pas écraser les modules du noyau précédent qui sont sous /lib/modules/2.4.8-26mdk/
Maintenant on va sous /usr/src/linux-2.5.7/arch/i386/boot et on copie le noyau sous /boot
cp bzImage /boot/vmlinuz-2.5.7
On va maintenant dans /usr/src/linux-2.5.7 et on tape :
cp System.map /boot/System.map-2.5.7
On tape maintenant sous /boot
mkinitrd /boot/initrd-2.5.7 2.5.7
NOTE Lors d'une mise à jour précédente, j'ai obtenu le message suivant:
No module 53c7,8xx found for kernel 2.4.2
J'ai donc tapé
cp /usr/src/linux-2.4.2/drivers/scsi/53c7,8xx.o /lib/modules/2.4.2/kernel/drivers/scsi/
et relancé la commande mkinitrd
Voilà l'arborescence de /boot
-rw-r--r-- 1 root root 512 jui 13 20:12 boot.0300
lrwxrwxrwx 1 root root 11 jui 13 20:12 boot.b -> lilo/boot.b
-rw-r--r-- 1 root root 624 aoû 5 2001 chain.b
lrwxrwxrwx 1 root root 18 jui 15 06:51 config -> config-2.4.8-26mdk
-rw-r--r-- 1 root root 37483 sep 23 2001 config-2.4.8-26mdk
-rw-r--r-- 1 root root 256 jui 13 20:12 fr-latin1.klt
drwxr-xr-x 2 root root 1024 jui 13 20:12 grub/
-rw-r--r-- 1 root root 170957 jui 13 20:12 initrd-2.4.8-26mdk.img
-rw-r--r-- 1 root root 454880 juil 15 09:50 initrd-2.5.7
lrwxrwxrwx 1 root root 22 jui 13 20:12 initrd.img -> initrd-2.4.8-26mdk.img
lrwxrwxrwx 1 root root 14 jui 13 19:56 kernel.h -> kernel.h-2.4.8
-rw-r--r-- 1 root root 441 jui 15 06:51 kernel.h-2.4.8
lrwxrwxrwx 1 root root 12 jui 13 20:12 lilo -> lilo-graphic/
drwxr-xr-x 2 root root 1024 jui 13 19:53 lilo-graphic/
drwxr-xr-x 2 root root 1024 jui 13 20:12 lilo-menu/
drwxr-xr-x 2 root root 1024 jui 13 20:12 lilo-text/
-rw------- 1 root root 50688 jui 13 20:12 map
lrwxrwxrwx 1 root root 12 jui 13 20:12 message -> lilo/message
-rw-r--r-- 1 root root 652 aoû 5 2001 os2_d.b
lrwxrwxrwx 1 root root 22 jui 13 20:14 System.map -> System.map-2.4.8-26mdk
-rw-r--r-- 1 root root 435683 sep 23 2001 System.map-2.4.8-26mdk
-rw-r--r-- 1 root root 442747 mar 18 09:45 System.map-2.5.7
lrwxrwxrwx 1 root root 19 jui 13 20:12 vmlinuz -> vmlinuz-2.4.8-26mdk
-rw-r--r-- 1 root root 1047752 sep 23 2001 vmlinuz-2.4.8-26mdk
-rw-r--r-- 1 root root 860412 juil 15 09:45 vmlinuz-2.5.7
Configuration du loader
On lance drakboot puis on clique sur configuration de LILO/GRUB

Choisissez le loader (lilo ou grub), puis cliquez sur Avancé

Saisissez les informations concernant votre nouveau noyau. Au niveau de image, doit apparaître les fichiers vmlinuz disponibles sous /boot

Maintenant on peut configurer le menu de lilo, votre ancien noyau doit rester celui par défaut.

On clique sur Terminer. Voilà c'est terminé, au reboot vous devriez avoir le choix de booter avec le nouveau noyau.
Vous pouvez maintenant lancer kdm ou gdm, pour cela taper (toujours en tant que root) :
init 5
Si vous retrouvez le login graphique, vous pouvez modifier /etc/inittab pour remettre le 5 à la place du 3. Si le lancement échoue, vous pouvez toujours lancer kde, pour cela, votre utilisateur doit avoir dans sa home directory un fichier .xinitrc contenant :
PATH="$PATH:/usr/X11R6/bin"
exec startkde
Pour lancer kde il suffit de taper
startx
Essais successifs
Il se peut qu'un tas de services ne marchent plus (carte son, réseau, ...), plusieurs essais de config sont nécessaires pour que vous arriviez à refaire tout marcher correctement, voilà les manips pour refaire un essai
cd /usr/src/linux-2.5.7/
make xconfig
Charger votre fichier de config préalablement sauvé
make clean
make dep
make bzImage
make modules
rm -Rf /lib/modules/2.5.7
make modules_install
cd /usr/src/linux-2.5.7/arch/i386/boot
cp bzImage /boot/vmlinuz-2.5.7
cd /usr/src/linux-2.5.7
cp System.map /boot/System.map-2.5.7
Et on reboote.
Si ca foire
En toute théorie vous devriez pouvoir rebooter avec votre ancien noyau, toutefois au cas où, vous devez rebooter avec la disquette contenant l'ancien noyau. Vous devez ensuite :
supprimer /boot/System.map et recréer le lien de System.map vers System.map-2.4.8-26mdk
ln -s System.map-2.4.8-26mdk System.map
N'oublier pas de remettre le 5 dans le fichier /etc/inittab.
Sources de l'article
|