problème compilation kernel


#1

Bonjour,

J’essaye de compiler un noyau sur ma Debian Sarge et je me retrouve sans cesse avec un kernel panic.

Voici ce que j’ai fais en détail:

-télechargement du paquet deb kernel-source-2.6.8.
-création d’un repertoire: mkdir /home/mat/src
-décompression de l’archive dans /home/mat/src et création d’un lien:

ln -s /home/mat/src/kernel-source-2.6.8 /home/mat/src/linux

-puis make menuconfig dans /home/mat/src/linux/
-pour terminer :

make-kpkg clean
make-kpkg --append-to-version=.date +%y%m%d --revision=2.6.7-1 kernel-image

Donc jusqu’ici pas de souci, la compilation s’effectue et mon .deb est créé et je lance :

dpkg-i kernel-im…deb

Je refuse la modification du fichier lilo.conf pour la modifier moi-même.

Dans le fichier lilo.conf, j’ajoute les lignes suivantes :

image=/boot/vmlinuz-2.6.8.041111
label=Linux2
read-only

et je relance lilo.

je reboot l’ordi et au au redémarrage j’obtiens le message suivant :

“kernel panic VFS unable to mount root fs”

Après recherche sur le net j’ajoute la ligne suivante dans lilo.conf :

initrd=/initrd.img-2.6.8-41111

cette fois, j’ai le message :

“kernel panic attempt to kill init”

Voilà , je ne sais plus trop quoi faire, je pense qu’il y a certainement une erreur dans lilo.conf mais je ne sais pas ou…

Merci de votre aide!

"


#2

refais ton make-kpkg, mais avec --initrd, tu verras, ca ira mieux :smiley:


#3

Ok je vais essayer comme ca.

Juste une précision: est ce que je dois mettre la ligne “initrd=/boot/initrd.img-2.6.8-41111” dans lilo.conf et à quoi cela sert-il exactement?

merci


#4

ben regardes si tu as bien un initrd qui s’appelle /boot/initrd.img-2.6.8-41111 .
sinon, trouves dans /boot le nom de celui qui a été installé avec kernel-image*.deb.
En fait, si tu n’as pas compilé dans le noyau tout ce qu’il te faut pour que celui ci accéde, par exemple, au disque dur (ce qui n’est pas conseillé), il faut bien qu’il trouve le module quelque part, et comme il ne sait pas accéder au disque, il ne peut trouver quoi que ce soit dans /lib/module/(etc).
Donc, en compilant avec --initrd, make-kpkg te fabrique un petit ramdisk compressé (et ca, le noyau sait TOUJOURS coment y accéder) ou il y a tout ce qui lui faut.
et hop…