Quelqu'un m'ayant pos� la question de la proc�dure de compilation du noyau
sous MDK 9.1 voici une petite proc�dure :
a) Pourquoi recompiler le noyau
Le noyau g�n�rique install� au moment de la mise en place d'une MDK 9.1
contient de nombreux modules inutiles qu'il est sage de retirer (par exemple
tous les modules des cartes son, scsi, r�seau support�es sont install�s !) ;
ces modules pr�sents dans le noyau natif n'�tant pas install�s, ils sont
inutiles.
b) Commment recompiler le noyau "kernel-source-2.4.21-0.13mdk"
i) Installer le rpm du source, car � l'installation de la MDK 9.1 il n'est en
g�n�ral pas mis en place ; alors dans "/usr/src" on voit :
- un fichier "linux" pointant sur "linux-2.4.21-0.13mdk",
- un fichier "linux-2.4.21-0.13mdk" contenant toutes les sources des
composants installables.
ii) Copier ce fichier "linux-2.4.21-0.13mdk" sous par exemple le nom de
"linux-2.4.21-0.13new"
iii) Cr�er un lien de "linux" vers "linux-2.4.21-0.13new",
iv) �diter le fichier "Makefile" et changer la ligne :
EXTRAVERSION = -0.13mdkcustom
en :
EXTRAVERSION = -0.13new
Ceci permettra d'installer les modules sous :
"/lib/modules/linux-2.4.21-0.13new"
sans �craser les modules du noyau natif si on avait par exemple choisi :
EXTRAVERSION = -0.13mdk
sinon bonjour les d�g�ts.
Note : le nom du fichier contenant le source est sans importance mais par
souci de coh�rence on harmonise les noms dans le "Makefile" et le nom du
dossier source.
v) �diter le fichier "/etc/lilo.conf" et remplacer tous les liens par les
composants point�s, car ceux-ci seront �cras�s par la compilation du nouveau
noyau pour pointer vers ses propres composants (et l� en cas de probl�me
adieu au retour au noyau natif). Explicitement :
"vmlinuz" par "linuz-2.4.21-0.13mdk" et :
"initrd.img" par "initrd-2.4.21-0.13mdk.img".
vi) Ex�cuter "lilo" pour ent�riner ces choix ; ceux qui doutent pourront au
pr�alable cr�er une option suppl�mentaire sans lien, pour v�rifier qu'elle
est amor�able, avant de supprimer l'option avec liens ; cette ex�cution doit
se d�rouler sans probl�me, sinon retour au fichier original avant nouvel
essai.
vii) Ouvrir une console et se logger sous "root" et faire :
$ cd "/usr/src/linux"
puis ex�cuter :
$ make xconfig
Il s'agit l� � mes yeux du meilleur utilitaire de configuration du noyau ;
�viter l'utilitaire "K linuz - Config noyau" d'une lenteur affligeante et qui
ne permet pas l'acc�s � toutes les options, en particulier celles qui
modifient des valeurs comme par exemple "CONFIG_NLS_DEFAULT".
viii) Charger le fichier de configuration "/boot/config-2.4.21-0.13mdk" et
modifier les param�tres de configuration selon vos choix avec prudence pour
certains param�tres. Choisir de pr�f�rence "m" (pour module) � "y"
(int�gration au noyau) et choisir "n" pour tout ce qui d'une mani�re �vidente
ne pr�sente aucun int�r�t vis � vis de la configuration hardware ou des choix
personnels. Attention "m" au lieu de "y" peut dans le cas des HD IDE �tre
fatal (kernel panic � l'amor�age). Dans l'incertitude on laisse le
param�trage propos� et on esaie l'option diff�rente � l'it�ration suivante.
ix) Quitter et sauver la configuration qui va se placer sous :
"/usr/src/linux-2.4.21-0.13new/.config".
x) Lancer le script suivant nomm� "install_kernel" :
#!/bin/sh
#
# Install a new kernel as pointed by /usr/src/linux
#
# Phase v�rification d�pendances
echo '===================================check dependencies'
make dep
# Phase nettoyage
echo '===================================clean old object files'
make clean
# Phase construction kernel et installation modules
echo '===================================build kernel and install modules'
make bzImage && make modules && make modules_install
# Phase installation kernel
echo '===================================install kernel'
make install
echo '===================================install completed'
Cela risque d'�tre long. Mis � part des messages d'erreurs en cours
d'ex�cution, ce qui compte est le message final.
xi) V�rifier la cr�ation sous "/lib/modules" du nouveau fichier contenant les
modules de ce nouveau noyau et l'ajout dans "lilo" d'une nouvelle option pour
l'amor�age avec ce nouveau noyau. Cette nouvelle option semble �tre cr��e
avec le m�me mod�le que l'option de base (le m�me "append" par exemple).
xii) R�amorcer avec ce nouveau noyau ; si �a marche on peut poursuivre la
modification de ce noyau en relan�ant la proc�dure ci-dessus ; certains
conseillent l'ex�cution de :
$ make mrproper
avant toutes choses ! ; il y a l� un pi�ge : le fichier ".config" est d�truit
! ; avant on le sauvera sous le nom ".config_0" qui lui est un winner ;
Personnellement je n'ex�cute pas cette commande.
c) Quelques conseils :
i) En g�n�ral les messages "kernel panic" sont � imputer � un mauvais
param�trage:
- du Frame buffer,
- des fs (file system) n�cessaires (un fs install� physiquement et manquant),
- des options HD ide ou scsi.
ii) Les it�rations successives installant toujours les modules dans le m�me
dossier sous "/lib/modules", il faut supprimer l'ancien dossier pour que la
nouvelle installation refl�te parfaitement le nouveau fichier de
configuration ".config" ; on sauvegarde les fichiers de configurations qui
fonctionnent sous le nom ".config_n" avant l'it�ration n+1.
iii) � partir de la seconde it�ration, il peut y avoir doute sur l'ex�cution
de la commande "/sbin/mkinitrd" qui cr�e le fichier "bootimage" du nouveau
noyau ; dans ce cas ex�cuter le script suivant nomm� "install_kernel_image" :
!/bin/sh
# # install a new kernel boot image in /boot
#
# Update kernel_version before executing this script
kernel_version="2.4.21-0.13new"
# Phase cr�ation kernel boot image
echo "====installing kernel boot image $kernel_version"
cd /boot
/sbin/mkinitrd -f -v "initrd-$kernel_version.img" $kernel_version
ln -sf "initrd-$kernel_version.img" initrd.img
echo "====kernel boot image installed"
Il m'est arriv� de rendre une compilation de kernel amor�able apr�s ex�cution
de ce script correctif.
iv) Enfin quand on est satisfait de sa compilation, on peut zipper tous les
fichiers du dossier "/lib/modules/linux-2.4.21-0.13new" pour gagner de la
place (extension *.gz support�es � l'amor�age).
Voil� bonne chance !
--
Daniel Moyne
(Nulix)-----------------------------------------------------------
Software : Mandrake 9.1 \\|// kernel "2.4.21-0.13mdk"
KDE 3.1.0 / --- \
(' o-o ')
--------------------------------oOO-(_)-OOo------------------------------------
Vous souhaitez acquerir votre Pack ou des Services MandrakeSoft?
Rendez-vous sur "http://www.mandrakestore.com".
Foire Aux Questions de la liste : http://mdk.mondelinux.org