Jump to content

Compilation de noyau


Recommended Posts

Salut à tous ! Je voulais savoir si il y a de grosses différences entre un noyau de suse 9.1 et un noyau de kernel.org ? Car la derniere fois que j'ai essayé une recompilation d'un noyau 2.6.5 sur SuSe sa c'est finit en kernel panic. Par contre sous Mandrake 10.0 sa marche sans probleme ! Que faut il rajouter au noyau pour qu'il soit utilisable sous SuSe 9.1 ?

Link to post
Share on other sites

les "kernel panic" ne depende pas que d'ou tu a recuperer ton kernel

mais de la facon dont tu va le configurer lui et le bootloader ( lilo ou grub)

Il faut que les 2 soient en accord sinon ......

De plus assez souvent quand sa marche pas , c'est qu'il aurait fallut faire un initrd.img

ex:

cp /boot/config-2.* /usr/src/linux/.config

make bzImage && make modules && make moules_install && make install

tu met se qu'il faut pour lilo ou grub

tu redemarre et la "kernel panic" unable to mount .........

pourtant c'est le fichier de configuration du noyau fournie par ta distrib.

Il faut donc faire un initrd.img et avec exactement le meme .config sa va marcher.

Car par default tous les kernel livrés par les distrib passe par un initrd.img

Donc soi tu fait differend essaie jusqu'a avoir une config qui s'en passe ou alors tu

t'arrange pour faire initrd.img

Le mieux c'est de s'en passer mais apres sa depend de son matos

ps:

Je dit sa par experience personnelle car j'en ai ch*er aussi pour compiler mon mien.

Sur debian j'ai trouvé comment faire avec la compile a la sauce debian

make-kpkg --initrd --revision=1.0 kernel-image

Pour les autre , j'en sais rien

Link to post
Share on other sites

Comment tu fait un initrd.img ?

Pour la compilation du noyau je fais :

Decompression des sources dans /usr/src/linux 2.6.7

Creation d'un lien symbolique /usr/src/linux

make mrproper

make menuconfig

make clean

make bzImage

make modules

make modules_install

et pour finir make install

J'ai grub en chargeur. Mais je crois que le make install fait tout le reste tout seul (initrd et modification de grub), non ?

Link to post
Share on other sites

pour l'initr.img comme je l'ai dit je ne connait que la methode indiqué au dessus.

Par contre toi si tu fait comme tu dit sa va pas allez tres loin ou certainement pas avec tes reglages

make mrproper

make menuconfig

make clean

make bzImage

on fait le menage "make mrproper" des le depart ok.

Mais apres menuconfig , il faut pas faire make clean.

c'est idiot , sa doit effacer ton .config et tu doit te retrouver avec celui par defaut quand tu execute le reste

Link to post
Share on other sites

pour ton kernel panik, je pense que ça viens de grub...

pour mon cas je lance:

make xconfig

make dep clean bzImage modules modules_install

mkinitrd

make install

puis j'édite grub à la main.... car sous suze 9.1 (et fedora et mandrake, j'ai aussi testé)

la ligne de démarrage ne convient pas et me donne invariablement un kernel panik,

j'ai du respécifier le répertoire root

Link to post
Share on other sites

tiens voilà ce que j'ai mis pour grub pour mon noyau

title Linux 2.6.6 jphi

    kernel (hd1,0)/boot/vmlinuz-2.6.6 root=/dev/hdb1 showopts

    initrd (hd1,0)/boot/initrd-2.6.6

et voilà la version par default lors de l'install de suze

title Linux 2.6.4-54-5 SUZE

    kernel (hd1,0)/boot/vmlinuz-2.6.4-54.5-default root=/dev/hdb1 vga=0x31a splash=silent desktop resume=/dev/hda4 showopts

    initrd (hd1,0)/boot/initrd-2.6.4-54.5-default

je n'ai pas repris les autres option car je n'ai pas lu la doc, donc je ne sais pas trop à quoi ça sert :D

ça démarre bien, mais je n'ai pas les logo lors du démarrage....

tiens rémy puisque tu proposes ton aide, le fichier system.map, ça sert à quoi?...

tiens je viens d'aller faire un tour sur kernel.org, j'avais pas vu que le 2.6.7 était passé en stable....

manquerait'il une news????

Link to post
Share on other sites

tiens rémy puisque tu proposes ton aide, le fichier system.map, ça sert à quoi?..

Quand tu recompiles un noyau linux, il se referre a des symboles, venant de fonctions, variables etc... Il en a besoin apres pour les connaitre lorsqu'il s'execute, et pour cela le noyau a besoin d'une table des symboles ( tout comme un programme executable ).

Cette table des symboles est creee lors de la compilation d'un noyau et porte le nom de 'system.map' , sachant que map signifie carte en anglais, cela semble assez coherent une fois qu'on sait ce que c'est. Donc sans system.map, ca peut ne pas marcher ou partiellement marcher, mais y a un bug dans l'air.... :smack:

Link to post
Share on other sites

j'ai cherché un peu et ai trouvé une autre déf:

system.map est un fichier de symbôles du noyau. Il indique les points d'entrées de chaque fonction dans l'API du noyau, mais aussi les adresses des structures de données propres noyau en cours d'exécution.

un idée au hasard : ce serait pratique d'avoir une page html avec un arborescence type de linux, et l'utilisation/rôle/définition de chaque fichier/répertoire type.... pour les newbees, cela pourrait être pratique et permattrait de savoir qui fait quoi, et où c'est rangé...

autre question (j'ai pas encore cherché..), comment le noyaux sait il repérer le bon system.map. J'ai plusieur noyaux sur ma machine, et donc plusieurs system.map

exemple:

System.map-2.6.4-54.5-default

System.map-2.6.6

Link to post
Share on other sites

System.map-2.6.4-54.5-default

System.map-2.6.6

la reponse est dans la question, les versions des noyaux sont a la fin du nom, derriere le .map !

System.map-2.6.4-54.5-default => noyau par defaut de ta distrib, un 2.6.4

System.map-2.6.6 => noyau que tu as recompile

Et pour connaitre la version de ton noyau :

uname -a

Link to post
Share on other sites

Je me suis mal exprimé.

Puis-je renommer sans risque le fichier system.map/vmlinuz en system.map.toto/vmlinuz.toto afin de faire differente version du même kernel. Va t'il faire tout seul le lien entre les version ".toto"

Link to post
Share on other sites

je n'ai jamais essaye, mais je pense que ca ne fonctionnera pas. Le fichier doit etre reference par des pointeurs memoires, a mon avis ca merderait qqpart car il chercherait toujours l'ancien.

Link to post
Share on other sites

Je cite zaverel qui a fait une excellente suggestion, ( vraiment :reflechis: zaverel ) :

l y a aussi une d'autres options interessantes :

make-kpkg --help

(entre autre)

--append_to_version foo an additional kernel sub-version. ([-a-z.+0-9])

Does not require editing the kernel Makefile

over rides env var APPEND_TO_VERSION.

requires a make-kpkg clean

make-kpkg --revision=1.0 kernel-image --append_to_version essaie1

comme ca apres installation sa donne

/boot/vmlinuz-2.6.6-essaie1

/lib/modules/2.6.6-essaie1

car si on ne se mefie pas ,c'est un coup a ecraser la version precedente , ca m'est arrivé et heuresement je n'avait pas supprimer le kernel 2.4 de l'install par default, sinon j'etait dans le caca

Link to post
Share on other sites

c'est quoi ces patch:

+ patch ck1

+ mm1 + love1

d'où viennent ils?

où peut on trouver dse informations sur les patch à installer, et leur disponibilité ? (c'est surtout ça qui m'intéresse, cela évitera de poser la première question :mdr: )

Link to post
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...