Recompil de kernel 2.6.8.1 => reboot => kernel panic :

Hello tout le monde…

Je viens de compiler un noyau 2.6.8.1 (j’avais le noyau de base de la sarge: 2.4.27-1-386)
Voici la méthode utilisée (# = root; % = user)

  • decompression des soures
% cd /usr/src
% tar xvjf linux-2.6.8.1.tar.bzip2
% ln -sfn linux-2.6.8.1 linux
% cd linux
  • configuration du noyau
% make menuconfig

juske la rien d’interessant…

  • installation du noyau
% make
# make modules_install
# cp arch/i386/boot/bzImage /boot/vmlinuz-2.6.8.1
# cp System.map /boot/System.map-2.6.8.1
# cp .config /boot/config-2.6.8.1
# cd /
# mv vmlinuz vmlinuz.old
# ln -sf boot/vmlinuz-2.6.8.1 vmlinuz

donc la voila on est content
maintenant, avec Grub, comment on fait pour ecrire les changement de boot?
Avec lilo je sais comment faire, mai pas avec grub : /

Du coup je l’ai tenté à la main et G droit a un bo kernel panic
voici un extrait du fichier de boot de grub ‘/boot/grub/menu.lst’

title Debian GNU/Linux, kernel 2.6.8.1
	root (hd0,4)
	kernel /boot/vmlinuz-2.6.8.1 root=/dev/hda5 ro noapic acpi=no

title Debian GNU/Linux, kernel 2.4.27-1-386
	root (hd0,4)
	kernel /boot/vmlinuz-2.4.27-1-386 root=/dev/hda5 ro noapic acpi=no
	initrd /boot/initrd.img-2.4.27-1-386

bon ben pour le kernel 2.6.8.1 G pas d’initrd.img donc G viré le champs…

KERNEL PANIC : /

apt-get install kernel 2.6.8.x image
Ça fonctionne aussi !

bon, echo ce que tu as fait comme compil noyau, c’est presque bon, sauf qu’il manque plusieurs trucs.
le premier, c’est l’initrd.
il te le faut impérativement avec les nouveaux noyaux (ca fait belle lurette que je n’ai pas trouvé de config noyau qui s’en passe).

Si tu ne sais pas ce que c’est, grossièrement, en fait, il faudrait que tu puisse mettre une entrée

title Debian GNU/Linux, kernel 2.6.8.1 
   root (hd0,4) 
   kernel /boot/vmlinuz-2.6.8.1 root=/dev/hda5 ro noapic acpi=no 
   initrd /boot/initrd.img-2.6.8-1-386 

dans ton grub. conf.
mais comme tu n’as pas génèré ton initrd.img-2.6.8-1, tu ne peux pas.
Cela peut se faire avec mkinitrd, juste aprés avoir installé ton nouveau noyau, mais avant d’avoir rebooté. Mais c’est une mauvaise solution.

Au passage, saches qu’il existe une commande ‘update-grub’, qui fabrique un menu.lst automatiquement, avec ce qu’il trouve dans /boot . Cette commande étant appelée à chaque install de paquetage de noyau, il faut faire attention à bien mettre tes entrées manuelles (style boot windows) en dehors de la partie gèrée automatiquement.

Ca, c’est indépendamment du fait que ta methode de compil noyau aurait presque pu passer sur une autre distrib (même sous debian en insistant bien), mais ce n’est pas la methode normale de compil noyau sous debian. Il existe un outil pour compiler le noyau. C’est make-kpkg. C’est plus simple d’utilisation que la methode “à l’ancienne”, puisqu’en gros, tu peux faire la compil et l’install propre du noyau en deux passes, mais un peu plus sensible a configurer, et il faut respecter la logique debian. Pour plus d’info, tu peux te réfèrer aux pages suivantes:
desktop-linux.net/debkernel.htm
et
qref.sourceforge.net/Debian/refe … el.fr.html
Grossierement sous debian,

  • tu installes les source du noyau avec apt-get (elles arrivent déja avec les patchs spécifiques debian),
  • tu les detarres et tu fais les ln -s comme tu l’a fait precedemment,
  • tu fais ton make menuconfig (tu peux reprendre le /boot/config- de ton noyau de distrib comme base avant la config, ca t’evite de la reprendre à zéro, et de faire des choix idiots sur les modules que tu ne connais pas),
  • tu fais un make-kpkg buildpackage modules (ca te fabrique des paquetages binaires pour le noyau, les sources repaquetées telles que compilées avec eventuellement les patchs que tu as appliqués, les headers, et finalement les modules annexes style nvidia ou alsa, dans le répertoire /usr/src)
  • tu installes le paquetages noyau obtenu avec un
    dpkg -i kernel-image-2.6.8-1_i386.deb
    et éventuellement, tu installes les paquetages annexes de la même manière.
    vala. Si tu as besoin de précisions, pas de pb.

bon et bien je viens de tester la 2eme version, celle "officielle"
c’était plutot bien parti…

[quote=“MattOTop”]

  • tu installes le paquetages noyau obtenu avec un
    dpkg -i kernel-image-2.6.8-1_i386.deb
    et éventuellement, tu installes les paquetages annexes de la même manière.
    vala. Si tu as besoin de précisions, pas de pb.[/quote]

Arrivé a cette étape, Debian a eu un peu de mal en allant chercher des fichiers de conf dans /etc/modprobe.d/ PUIS (comprenez donc ET) dans /etc/modprob.d/ (qui n’existe pas)
Pour résoudre le pb je me suis pas fais chier j’ai copier coller /etc/modprobe.d/ en /etc/modprob.d/
C’est passé donc j’imagine que c’est ce qui fallait faire.

Reboot time…
Déjà grub m’a foutu une liste pas possible de noyaux pr démarrer et après avoir testé les 4 proposés avec le nouveau noyau, un point commun: kernel panic!

Voici le message d’erreur:

VFS: cannot open root device "hda5" or unknown-block(0,0)
Please append a correct "root=" root option
Kernel panic: VFS: Unable to mount root fs on unknown-block(0,0)

Voila…
Me reste plus qu’a tester la première méthode proposée voir si ca fait pareil mais je me fais pas trop d’illusion pr le coup :frowning:

NB: faites gaffe si vous avez un autre OS, Grub ne liste que les amorces presentes dans le repertoire /boot/ donc pour windob et consors sauvegardez en renommant votre /boot/menu.lst en /boot/menu.lst.old
Finalement je préferais lilo : /

salut le accessoirement etudiant en informatique à l’EPITH (c’est comme l’aneth, ca va bien avec le saumon ?)
1/concernant le noyau lui meme: même motif meme punition !
tu n’as toujours pas créé ton initrd, mais cette fois, c’est ma faute, j’avais oublié de te dire que les “make-kpkg”, il fallait les faire avec l’option --initrd
mais la, c’est plus rien de recompiler et réinstaller les paquets…

2/pour grub, effectivement, à la fin de l’install, il appelle ‘update-grub’ qui installe ds ton menu.lst tout ce qu’il trouve comme noyau dans /boot (c l’automagic et c’est bien pratique. sisi :slightly_smiling: ), MAIS, seule une partie de ton menu.lst est gèrée automatiquement. si tu mets tes entrées windows en dehors des lignes de commentaires qui parlent d’automagic (seule la partie entre ces commentaires est modifiée), elles resteront aprés mise à jour (tu peux mettre aussi d’autres options d’ailleurs qui resteront aprés mise à jour de ta liste par automagic).
tu peut faire un ‘update-grub’ sans installer de noyau pour tester ca.
si tu as tant de noyaux que ca, enleve ceux dont tu n’as plus besoin avec ‘apt-get remove’ quand c’est possible, ou déplace les dans un sous rep de /boot.
MAIS GARDES TOUJOURS UN NOYAU SUR QUAND MEME, POUR POUVOIR REBOOTER SI NECESSAIRE.
vala.

[quote=“MattOTop”]salut le accessoirement etudiant en informatique à l’EPITH (c’est comme l’aneth, ca va bien avec le saumon ?)
1/concernant le noyau lui meme: même motif meme punition !
tu n’as toujours pas créé ton initrd, mais cette fois, c’est ma faute, j’avais oublié de te dire que les “make-kpkg”, il fallait les faire avec l’option --initrd
mais la, c’est plus rien de recompiler et réinstaller les paquets…
[/quote]

mouais sauf que cette option je l’ai bien mise figure toi…

# apt-get install debhelper modutils kernel-package libncurses5-dev
# apt-get install fakeroot
# vim /etc/kernel-pkg.conf  # j'entre nom et email
$ cd /usr/src
$ tar  -xvjf kernel-source-2.6.8.1.tar.bz2
$ ln -sf kernel-source-2.6.8.1 linux
$ cd linux
$ cp /boot/config-2.6.8.1  .config
$ make-kpkg clean
$ fakeroot make-kpkg --append_to_version -486 --initrd  \
--revision=rev.01 kernel_image
$ cd ..
# dpkg -i kernel-image*.deb

Et initrd a bien été créé et tout se trouve bien dans /boot près à booter…
:frowning:

Ah vi c’est bien ca c’est bien… Ben ca devait etre entre les balises de commentaires alors =)
mais bon j’ai retapé a la main cette partie et j’ai pas eu de pb pr rebooter sous windows

[quote=“MattOTop”]
MAIS GARDES TOUJOURS UN NOYAU SUR QUAND MEME, POUR POUVOIR REBOOTER SI NECESSAIRE.
vala.[/quote]
Mais pour qui tu me prends toi??? :wink:
J’attends d’avoir une version du 2.6.8.1 ki marche pr virer le 2.4 : / et apres joujou avec le 2.6.9 voir si il est si Terrible ke ca :slightly_smiling:

[quote=“Echo”][quote=“MattOTop”]salut le accessoirement etudiant en informatique à l’EPITH (c’est comme l’aneth, ca va bien avec le saumon ?)
1/concernant le noyau lui meme: même motif meme punition !
tu n’as toujours pas créé ton initrd, mais cette fois, c’est ma faute, j’avais oublié de te dire que les “make-kpkg”, il fallait les faire avec l’option --initrd
mais la, c’est plus rien de recompiler et réinstaller les paquets…
[/quote]

mouais sauf que cette option je l’ai bien mise figure toi…

# apt-get install debhelper modutils kernel-package libncurses5-dev
# apt-get install fakeroot
# vim /etc/kernel-pkg.conf  # j'entre nom et email
$ cd /usr/src
$ tar  -xvjf kernel-source-2.6.8.1.tar.bz2
$ ln -sf kernel-source-2.6.8.1 linux
$ cd linux
$ cp /boot/config-2.6.8.1  .config
$ make-kpkg clean
$ fakeroot make-kpkg --append_to_version -486 --initrd  \
--revision=rev.01 kernel_image
$ cd ..
# dpkg -i kernel-image*.deb

Et initrd a bien été créé et tout se trouve bien dans /boot près à booter…
:frowning:

[/quote]
alors deux autres pistes: je ne vois nulle part d’apt-get de ton kernel source. Si tu as pris ton tarball sur kernel.org, il faut que tu installes le cramfs, et les patchs debian: ca ce fait avec make-kpkg debian. Mais il vaut mieux installer le paquetage source noyau, puisque il existe en apt.
Sinon, ca peut etre que tu n’a pas mis les options nécessaires à la lecture de tes partoches… verifie que donc tu as bien ext au moins en module, et cramfs dans le noyau (pas en module).
tu as repris un .config, ou tu l’as créé “from scratch” ?
personnellement, j’installe d’abord le noyau en binaire, puis j’utilise le /boot/configXXX comme base pour me fabriquer mon .config.

[quote=“Echo”]<…>[quote=“MattOTop”]
MAIS GARDES TOUJOURS UN NOYAU SUR QUAND MEME, POUR POUVOIR REBOOTER SI NECESSAIRE.
vala.[/quote]
Mais pour qui tu me prends toi??? :wink:[/quote]
dsl, mais je ne sais pas ou tu en es … :confused:

le 2.6.9 j’en ai un peu bavé pour le compiler, mais globalement, j’en suis satisfait. Il faut aller chercher le paquetage source dans un repositary sid, et le patch pptp nécessite une petite bidouille (cf le post sur le 2.6.9), mais finalement, il est stable et fiable.

Mouais je parie que ca sera sur un miroir debian…
Et tu connais mon pb de connexion : / en fait ces gros c*£!!! ont bloqués l’accès aux FTP, dl & co.
Donc que je vais devoir patcher a la main une fois de plus :frowning:

Gné :question: from scratch :question:
Je l’ai récupéré avec la doc d’alexis delattre :unamused:

encore une fois, si tu as besoin de bypasser ton parefeu, on peut tester le tunneling http. mais personnellement, mes mirroirs debian sont configurés en deb-http, pas deb-ftp… changes tes sources, et ca ira tout seul…
pasque le make-kpkg debian, c’est un pis aller, il vaut mieux prendre les sources officielles debian, qui sont encore plus patchées pour la debian que ne le fait make-kpkg…

[quote=“MattOTop”]encore une fois, si tu as besoin de bypasser ton parefeu, on peut tester le tunneling http. mais personnellement, mes mirroirs debian sont configurés en deb-http, pas deb-ftp… changes tes sources, et ca ira tout seul…
[/quote]

t’inquiete pas que j’ai teste les deux depusi un moment et rien de passe!
:confused:

aucun pb: t’as qqchose qui passe ?

par http comme pâr ftp rien ne passe…
j’avais teste les connexion lors de l’installtion de debian…
L’adm du reso de ma residence a ete assez con pour empecher tout dl… ke ce soit par protocole ftp ou http

kesketu dis: tu es bien obligé de passer par un port 80 pour accèder à ce forum !

je sais bien mais G le pb pour kelkes sites: "connection timed out"
LE pb est le meme.

bon, il existe encore une autre manière encore plus exotique de faire de l’apt: c apt-torrent c’est de l’apt en p2p ! sur
sianka.free.fr
tu dl le package (par un autre biais que ta connection bien sur), tu l’unstalles et tu le testes. etant donné que ca passe par defaut par le port 6968, avec un peu de chance, ca passera…

[quote=“MattOTop”]bon, il existe encore une autre manière encore plus exotique de faire de l’apt: c apt-torrent c’est de l’apt en p2p ! sur
sianka.free.fr
tu dl le package (par un autre biais que ta connection bien sur), tu l’unstalles et tu le testes. etant donné que ca passe par defaut par le port 6968, avec un peu de chance, ca passera…[/quote]

un peu d’exotisme en ce mois de decembre moi je kiff =)