|
|
|
|
Compilation noyau linux ==> kernel panic
Dernière réponse le 5 avr 2009 à 23:08:11 doumeasse38, le 28 sep 2005 à 23:38:56Tu as correctement mis le bon truc root=/dev/hda? ou root=/dev/sda? pour le nouveau noyau dans le fichier config pour grub ou lilo ?
cd linux-2.6.12.4 make mrproper # pour nettoyer cp /boot/config-<ancien_2.6> .config make oldconfig # repondre a toute question par entree make bzImage make modules make modules_install mkinitrd /boot/initrd-2.6.12.4 2.6.12.4 et apres copier arch/i386/boot/bzImage vers /boot/vmlinuz-2.6.12.4 et modifier lilo ou grub.
|
Alors ce que j'ai fait :
- ln -sfn linux-2.6.12.4 linux - make mrproper - cp config-2.6.12.4 .config ==> Je n'utilise pas mon config-<ancien_2.6> car plantage lors du make. Ce config-2.6.12.4 a été récupéré sur le site du tuto dont je me suis inspiré. - make menuconfig ==> chargement du .config - make - cp arch/i386/boot/bzImage /boot/vmlinuz-2.6.12.4 - cp System.map /boot/System.map-2.6.12.4 - make modules_install - mkinitrd -o /boot/initrd-2.6.12.4 2.6.12.4 ==> sous /lib/modules/2.6.12.4 Ensuite modif du lilo.conf par : boot=/dev/hda root=/dev/hda1 map=/boot/map prompt timeout=15 default=Linux-2.6.12.4 # Noyau 2.6.12.4 image=/boot/vmlinuz-2.6.12.4 label=Linux-2.6.12.4 read-only # restricted # alias=1 initrd=/boot/initrd.img-2.6.12.4 # Noyau 2.6.8-2-386 image=/boot/vmlinuz-2.6.8-2-386 label=Linux-2.6.8-2 read-only optional # restricted # alias=2 initrd=/boot/initrd.img-2.6.8-2-386 Regénération de lilo : - /sbin/lilo -v Et reboot ... J'espère que ces qques infos supplémentaires t'aideront !!! Merci beaucoup Dom. |
Tout ca a l'aire correct, j'aurais remplace le "make" par:
make bzImage make modules mais en theorie ca doit etre identique au moins pour le 2.6 (je crois avec un 2.4 ce n'est pas equivalent et il faut aussi faire un "make dep" avant le "make bzImage). Un autre point ou il faut faire attenion: Tu as (tres correctement) lance un "make menuconfig" apres la copie du fichier config et je suppose dans le "make menuconfig" tu as bien sur saufgarde le fichier .config (meme si tu n'as rien change) !? Il est absolument imperative qu'avant le "make" (ou "make bzImage") qu'il ait un machin de genre "make <blablab>config", ca peut etre "make config", "make menuconfig", "make xconfig" ou "make gconfig" ou si tu ne veux rien changer a un fichier .config deja existant tu fais au moins "make oldconfig" (c'est le plus simple). De ne pas faire un de ces truc est un faute qui induit a d'erreurs serieuses dans la mise en place de la compilation!! Bref un truc comme: cp autre_config .config make est absolument faux. Si on veut prendre le .config sans changement il faut faire: cp autre_config .config make oldconfig make En principe, ce que tu as mis ci-dessus avec le "make menuconfig" c'est bon (et ca remplace le "make oldconfig") mais peut-etre tu as lance la compilation plusieures fois et pour la 2eme fois tu n'as pas toujours refait le "make menuconfig" ? Donc fais attention a ce detail. A l'instant ou tu fais un "make mrproper" ou "make clean" ou une modif de .config (par un editeur ou une copie) au debut il faut impartivement refaire un "make <blabla>config". C'est le piege a eviter. Apart ca tu utilses quelle versios du compilateur (tape: "gcc -v" pour la voire) ?? Je conseille d'utiliser un gcc-3.2.x ou gcc-3.3.x. Par contre un gcc-3.4.x et surtout un gcc-4.0.x est tres limite, ca peut planter ou creer un code faux!! Je crois maintenant il vaut aussi mieux eviter le gcc-2.95.x (qui etait pendant longtemps "le compilateur" pour le noyau). Peut-etre le probleme avec ton anienne config est lie a ca!! Regarde aussi dans les menus filesystemes, drivers etc. (quand tu es dans le "make menuconfig") s'il n'y a pas un truc superimportant qui manque, notamment pour le ext2, ext3, virtuel file systeme etc. |
Version gcc-3.3.5
# # File systems # CONFIG_EXT2_FS=y # CONFIG_EXT2_FS_XATTR is not set CONFIG_EXT3_FS=y CONFIG_EXT3_FS_XATTR=y CONFIG_EXT3_FS_POSIX_ACL=y CONFIG_EXT3_FS_SECURITY=y CONFIG_JBD=y # CONFIG_JBD_DEBUG is not set CONFIG_FS_MBCACHE=y CONFIG_REISERFS_FS=y # CONFIG_REISERFS_CHECK is not set # CONFIG_REISERFS_PROC_INFO is not set # CONFIG_REISERFS_FS_XATTR is not set CONFIG_JFS_FS=y CONFIG_JFS_POSIX_ACL=y # CONFIG_JFS_SECURITY is not set # CONFIG_JFS_DEBUG is not set # CONFIG_JFS_STATISTICS is not set CONFIG_FS_POSIX_ACL=y voili voilou |
Tu as aussi:
CONFIG_TMPFS=y c'est dans les "Pseudo filesystems": Virtual memory file system support (former shm fs) (TMPFS) Tmpfs is a file system which keeps all files in virtual memory. Everything in tmpfs is temporary in the sense that no files will be created on your hard drive. The files live in memory and swap space. If you unmount a tmpfs instance, everything stored therein is lost. See <file:Documentation/filesystems/tmpfs.txt> for details. Je crois tu peux l'avoir besoin pour faire fonctionner l'initrd. Donc ce serait util de l'ajouter. Sinon comme tu as mis l'ext3 en dur (et pas en module) et comme tu as un 1er DD en ide (et pas en scsi ou sata) tu n'as en effet pas besoin de l'initrd. Tu peux deja essayer sans ca (simplement commenter la ligne avec initrd dans lilo.conf et refaire la commande "lilo" et apres redemarrer). Cependant le tmpfs est tres utile aussi pour autre chose, ca fait un ramdisk elastique, c.-a-d. ca occupe de la memoire vive uniquement quand on met de fichiers la dedans. Pour l'utiliser du ajoutes (apart du support dans le noyau bien sur) dans /etc/fstab une ligne comme: tmpfs /dev/shm tmpfs defaults 0 0 et apres le prochain boot (ou "mount /dev/shm") tu aurras ton ramdisk dans le repertoire /dev/shm. Par defaut ca a la taille (maximale) de la moitie de ton RAM mais ce n'est bouffe quand on y met vraiement de fichiers. Ca peut bien servir pour faire des taches de manipulations de fichiers complique sans utiliser le DD (par exemple de compilations des tar.gz). |
Bonsoir
|

