Installer le noyau 2.6.9, help!!

Fermé
pristella Messages postés 859 Date d'inscription samedi 23 octobre 2004 Statut Contributeur Dernière intervention 8 mai 2007 - 24 nov. 2004 à 23:29
 Phiphi - 21 déc. 2004 à 22:39
bonjour,
Je suis sur mandrake 10.1 officiel et j'ai le noyau Linux 2.6.8.1-10mdksmp.

J'essaie depuis plusieurs jours d'installer le noyau 2.6.9 en suivant les instructions de cette page : http://people.via.ecp.fr/~alexis/formation-linux/config-noyau.html

A l'issue voici les messages d'erreur apres avoir fait make clean, make bzImage , make modules :

CC [M] drivers/scsi/qla2xxx/ql2322_fw.o
CC [M] drivers/scsi/qla2xxx/qla_os.o
drivers/scsi/qla2xxx/qla_os.c: In function `qla2x00_queuecommand':
drivers/scsi/qla2xxx/qla_os.c:315: sorry, unimplemented: inlining failed in call to 'qla2x00_callback': function not considered for inlining
drivers/scsi/qla2xxx/qla_os.c:269: sorry, unimplemented: called from here
drivers/scsi/qla2xxx/qla_os.c:315: sorry, unimplemented: inlining failed in call to 'qla2x00_callback': function not considered for inlining
drivers/scsi/qla2xxx/qla_os.c:269: sorry, unimplemented: called from here
make[3]: *** [drivers/scsi/qla2xxx/qla_os.o] Erreur 1
make[2]: *** [drivers/scsi/qla2xxx] Erreur 2
make[1]: *** [drivers/scsi] Erreur 2
make: *** [drivers] Erreur 2
[root@localhost linux]#

Un petit coup de pouce me serait bien utile.

merci d'avance

9 réponses

Tu as essaye avec le ficher ".config" de Mandrake ? Ca me parait le plus facile car ca devrait tout contenir en module et marcher avec presque toutes les configurations de hardware. Typiquement c'est le fichier
/boot/config-2.6.8..... . Apres avoir copie ce fichier vers ".config"
tu fais "make oldconfig" et tu tapes return a chaque question ou il
s'arrete. Comme ca tu evites les difficultes tu trouver une bonne configuration.
Apart ca pour bien nettoyer les sources de noyau le "make clean" n'est pas assez. Pour ca il y a le "make mrproper" mais fais attention ca efface le fichier .config, donc saufgarder dans un autre fichier. "cp .config config" suffit et apres "make mrproper" on fait "cp config .config" et
"make oldconfig".

Cependant il est tres probable que ton probleme est relie a la version de ton compilateur gcc. Je crois en Mandrake il y a
gcc-4.0.0.... et gcc-3.3.4.... . Le premier pose presque certainement de problemes dans la compilation du noyau, car il est trop mechant pour la syntax. Deja avec 3.4.0 (que tu n'as pas) j'ai vu des problemes. Moi j'utilise le gcc-3.3.4.
Verifie avec "gcc -v" quelle version tu utilise. Si c'est gcc-4.0.0 il faut passer a l'autre. Il y a des rpm pour Mandrake a:
http://ftp.lip6.fr/pub/linux/distributions/Mandrakelinux/official/10.1/i586/media/contrib/
Sinon tu peux aussi telecharger les sources a:
ftp://ftp.lip6.fr/pub/gcc/releases/
les compiler et installer en /usr/local. C'est un peu subtile et ca prend 45 minutes (pour un prozesseur de 2 GHz) mais ca marche bien. Comme ca il n'y a pas de conflits avec gcc de Mandrake. J'ai vu il y a aussi le 3.3.5 qui doit etre bon. (les derniers numeros de versions ce ne sont que de bug-fixs, mais les autres ca fait de vraie differences pour la syntax!!!)
0
pristella Messages postés 859 Date d'inscription samedi 23 octobre 2004 Statut Contributeur Dernière intervention 8 mai 2007 74
25 nov. 2004 à 09:01
merci,
j'ai fait un mrproper avant la compilation si bien que comme tu le dis le fichier .conf est effacé. Comment faire pour récupérer ce fichier?
Pour le gcc j'ai la version 4.00, je vais donc la desinstaller et mettre à la place la 3.3.4 comme tu me le recommande.

merci
0
Normalement le .config est perdu definitivement apres "make mrproper".
Tu peux reprendre celui de Mandrake:
make mrproper
cp /boot/config-2.6.8.....      .config
make xconfig

(ou gconfig, menuconfig, selon ton gout)
et appliquer tes modifications de config (processeur, hardware etc.).
La config de Mandrake est assez complet, tu n'as pas besoin de faire grand chose, sauf si tu veux reduire le nombre de modules au minimum pour ton systeme. Mais c'est beaucoup de travail pour chercher et comprendre la signification de tous les trucs du noyau.
0
pristella Messages postés 859 Date d'inscription samedi 23 octobre 2004 Statut Contributeur Dernière intervention 8 mai 2007 74
25 nov. 2004 à 19:25
C'est encore moi,
lorsque je fais make xconfig et que je vais dans la rubrique processor type and feature puis processor family, je choisis quoi pentium pro ou pentium classic (j'ai un pentium 4 cpu 3Ghertz)??
0
Tu peux utiliser directement Pentium-4 qui est enocre 6-7 lignes plus bas.
Ca rapporte encore un peu de vitesse (quelques % ?). Bien sur presque tous les options 586, pentium classic, pentium II, pentium III marchent aussi mais peut-etre un peu moins bien. Les noyaux de Mandrake sont bases sur le 586 (ou pentium classic) pour garantir la compatibilite mais quand tu recompiles pour toi ce n'est plus necessaire.

Dans le fenetre de help tu as:
Pentium-4/Celeron(P4-based)/Pentium-4 M/Xeon (MPENTIUM4)

Select this for Intel Pentium 4 chips. This includes the
Pentium 4, P4-based Celeron and Xeon, and Pentium-4 M
(not Pentium M) chips. This option enables compile flags
optimized for the chip, uses the correct cache shift, and
applies any applicable Pentium III optimizations.

Tu peux aussi mettre plus bas le High Memory support a
"off" si tu as <=1GB de memoire (je suppose que oui). Je crois ca marche mieux si on n'en a pas besoin.
Il faut aussi ajouter le "MTRR". C'est probablement utile pour acceler le X et je crois ca marche a partir du Pentium II. Ce ne fait pas de mal.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
pristella Messages postés 859 Date d'inscription samedi 23 octobre 2004 Statut Contributeur Dernière intervention 8 mai 2007 74
25 nov. 2004 à 20:03
merci pour tout, je teste tout ça
0
pristella Messages postés 859 Date d'inscription samedi 23 octobre 2004 Statut Contributeur Dernière intervention 8 mai 2007 74
25 nov. 2004 à 22:28
bon voilà, j'y suis. La compilation a été bizarre, j'ai eu plein de warning. Mais ça semble avoir fonctionné.
Maintenant, je voudrais modifier lilo pour pouvoir démarrer soit avec mon nouveau noyau 2.6.9 soit avec l'ancien 2.6.8.1.10. Que dois-je modifier? voici mon fichier lilo.conf :

#file generated by DrakX/drakboot
#warning: do not forget to run lilo after modifying this file

default="linux"
boot=/dev/hda
map=/boot/map
keytable=/boot/fr-latin1.klt
prompt
nowarn
timeout
message=/boot/message
menu-scheme=wb:bw:wb:bw
image=/boot/vmlinuz
label="linux"
root=/dev/hda6
initrd=/boot/initrd.img
append="devfs=nomount acpi=ht resume=/dev/hda7 splash=silent"
vga=788
read-only
image=/boot/vmlinuz
label="linux-nonfb"
root=/dev/hda6
initrd=/boot/initrd.img
append="devfs=nomount acpi=ht resume=/dev/hda7
read-only
image=/boot/vmlinuz
label="failsafe"
root=/dev/hda6
initrd=/boot/initrd.img
append="failsafe acpi=ht resume=/dev/hda7 devfs=nomount
read-only
other=/dev/hda1
label="windows"
table=/dev/hda

comment faire pour modifier lilo pour avoir le choix du noyau et donc conserver mon ancien noyau au cas où . Puis comment faire le "run" dit plus haut dans le fichier????
0
C'est assez facile tu prend le premier bloc de 5 lignes pour l'image "linux" et tu fais copier-coller dans le fichier au meme endroit d'en sorte d'avoir deux fois les memes 5 lignes identiques et tu fais quelques adapations a la 1er copie pour ton proper noyau. Il faut choisir un nom pour ton fichier noyau dans /boot/ et il faut aussi chosir un label qui te convient. Par exemple tu mets derrier la ligne avec: "menu-scheme ...":
image=/boot/vmlinuz-2.6.9
label="linux-moi"
root=/dev/hda6
#initrd=/boot/initrd.img
append="devfs=nomount acpi=ht resume=/dev/hda7 splash=silent" 

Pour le "initrd" j'ai mis un commentaire '#' parce que je suppose que tu n'en as pas cree (un init-ramdisk). J'ai garde les memes options de boot (ligne avec "append") comme pour ton image principal "linux". Je suppose c'est bon. Moi je ne mets jamais d'options. (Il y avait une epoque ou il fallait y mettre les IRQ des cartes reseaux ISA etc. Avec les cartes PCI ce n'est heureusement plus necessaire.)

Concernant l'init-ramdisk il y a un piege a eviter! (helas un autre) Je sais que Redhat et Feodora (et peut-etre aussi Mandrake) y mettent des modules necessaires pour les disques scsi et le "filesystemes" ext3. Ces modules permettent acces a ton disque dur mais on ne peut pas les chargers du disque dur avant cet access. Pour cette raison on les mets dans le ramdisk qui y est charge pendant le boot (ici c'est le bios avec lilo et non linux qui charge le ramdisk). Il y a des commandes pour les creer.

Tu vois tout ca c'est assez complique et en fait tant tu n'as pas de disque scsi ce n'est pas necessaire! Pour le "ext3" il y a une solution triviale, il ne faut pas mettre ca en module mais en "yes", c.-a-d. directement dans le noyau. Probablement tu n'as pas fait attention a "ext3" et il faut peut-etre encore une fois recompiler ton noyau mais cette fois ci ca ira beaucoup plus vite. Alors tu va dans le repertoire sources de noyau et tu fait (SANS faire "make clean/mrproper"!!!!!!)
simplement le "make xconfig". Tu vas dans le menu "File systems" et tu mets a cote de "Ext3 journalling file system support" un trait pour "yes" au lieu du point pour module. S'il y avait deja le trait ta compilation precedante est bonne! S'il y avait le point pour module tu mets le trait et tu sauvegarde la configuration et tu refais simplement:
make bzImage 
make modules

pour recompiler. Ne t'inquiete pas ca ira tres vite car 99.9 % des fichiers *.o sont deja presents et make ne fait que les choses necessaires.

Pour l'installation tu fait en root et dans le repertoire sources:
cp  System.map /boot/System.map-2.6.9
cp  arch/i386/boot/bzImage  /boot/vmlinuz-2.6.9
cp   .config  /boot/config-2.6.9
make modules_install

Ici seulement les lignes 2 et 4 sont indispensables. La ligne 1 avec System.map est recommande mais pas indispensable. La ligne 3 avec la copie de .config n'est qu'une saufgarde de ta configuration de noyau
(utile au cas ou tu refais "make mrproper").
Apres tu appliques la modifiction ci-dessus dans /etc/lilo.conf et
tu tape simplement (en root):
lilo

Ca cree un nouveau tableau de boot et ca t'affiche la liste de noyau installe avec une etoile pour le noyau default. Tu pourras demarrer avec ton nouveau noyau en utilisant le label "linux-moi" si tu as repris ma proposition ci-dessus. Si tu veux tu peux mettre le "linux-moi" en default
(modifier la ligne "default" dans /etc/lilo.conf). Apres chaque modification de lilo il faut refaire la commande "lilo". C'est ca le "run"
mysterieux.

P.S.: Pour plus tard tu peux envisager de remplacer lilo par Grub. Il y a un fichier de config different mais base sur les memes idees. L'avantage il n'a y plus le "run" mysterieux. Il faut installer le grub une fois et apres on peux modifier le fichier de config, installer le noyau et les modules et ca roule. En fait grub demarre une petite shell avant le boot qui sait acceder aux "file systems" ext2/3 etc. Comme lilo ne peut pas lire les "file systems" de facon normale il faut creer un tableau special ou on stoque les secteurs du disque ou les fichiers noyaus se trouvent. Pour cette raison il faut toujour faire "lilo" apres toute modification (de lilo.conf ou de tout fichier noyau) meme si on ne remplace qu'un noyau deja present.
0
J'ai oublie ces deux lignes dans lilo.conf:
vga=788
read-only 

Il faut aussi prevoir le "read-only" pour ton noyau (important). Pour le vga je ne suis pas sur. Peut etre il faut ne l'avoir qu'une fois avec le premier noyau.
0
Nunuxnewby Messages postés 432 Date d'inscription jeudi 15 juillet 2004 Statut Contributeur Dernière intervention 5 février 2010 124
25 nov. 2004 à 23:03
Salut!
En gros exigeant que je suis (je sais, c'est pas bien!) , je me demandait,Pristella, quand tu auras réussi à changer de version du noyau... si tu étais prêt(e?) à faire un joli tutorial adapté à la mandrake 10.1.
Un truc sympathique que "Mr tout le monde" (genre un neuneu comme moi) pourrait suivre pour mettre à jour son noyau...
Un truc commande par commande avec 2 phrases d'explications et les pièges à éviter (genre GCC 3.4 et pas 4.0)...
Tu est loin d'être obligé(e?) de la faire mais je t'en serait reconnaissant et je pense que je ne serais pas le seul...
Merci d'avance (même si tu le fais pas) :)

P.S: Pristella... désolé! mais c'est un prénom M ou F?
0
pristella Messages postés 859 Date d'inscription samedi 23 octobre 2004 Statut Contributeur Dernière intervention 8 mai 2007 74
25 nov. 2004 à 23:54
bonjour nunu,

Pourquoi pas, mais pour l'instant c'est pas le top. J'ai encore pas mal d'erreur à rectifier sur mon changement de noyau. Dès que j'ai la solution, je vous en fait part.
A+
0
Nunuxnewby Messages postés 432 Date d'inscription jeudi 15 juillet 2004 Statut Contributeur Dernière intervention 5 février 2010 124
26 nov. 2004 à 00:22
OK, merci! ça serait sympa! :)
"J'ai encore pas mal d'erreur à rectifier sur mon changement de noyau"
je me doute, d'ailleurs, c'est pour ça que un tuto serait le bienvenu, que tu m'évites (nous évites) les péripéties que tu traverses.
+++
0
bon, alors comme tout ce qui se passe ici m'a été assez utile, et que je suis aussi débutant, je vais peut etre essayer de le faire ce tuto : ca me servira autant qu'a vous ;-)

Je suis parti de l'install d'une Mdk 10.1 (noyau 2.6.8.1-12mdk) pour installer un 2.6.9

* comment connaitre la version de votre noyau :
uname -r
la commande uname donne qques infos sur le systeme
(man uname , uname -a pour avoir toutes les infos de uname)

ensuite, aller verifier qques petits trucs dans /boot, de facon a garder dans un coin un noyau qui fonctionne (pour le moment, j'ai jamais réussi a compiler un noyau qui marche... :-/ )

cd /boot
ls -l
lrwxrwxrwx 1 root root 20 déc 21 18:59 config -> config-2.6.8.1-12mdk
lrwxrwxrwx 1 root root 24 déc 19 02:22 System.map -> System.map-2.6.8.1-12mdk
lrwxrwxrwx 1 root root 21 déc 19 03:18 vmlinuz -> vmlinuz-2.6.8.1-12mdk

vous devriez y trouver au moins les fichiers suivants :
config
System.map
vmlinuz

comme on le voit, chez moi ces fichiers sont en fait des liens vers le noyau "old". Si ce n'est pas le cas chez vous, copiez ces fichiers (UNIQUEMENT si ce ne sont pas des liens....) :

cd /boot
cp config config.old
cp System.map System.map.old
cp vmlinuz vmlinuz.old

il faudra par la suite CONSERVER les differents fichiers *-old avec "old"=2.6.8.1-12mdk dans mon cas
ils vous permettront de pouvoir revenir a une configuration du noyau fonctionnelle en cas de "kernel panic"... :D

ensuite, un petit tour du coté de www.kernel.org, histoire de récupérer l'archive des sources du noyau qui vous intéresse (2.6.9="new" dans mon cas) : cliquez sur F (full source) pour telecharger linux-new.tar.bz2

ensuite, un petit tour du coté de /usr/src
cd /usr/src (ca m'etonnerait, mais creer ce dossier s'il n'existe pas)
ls -l
lrwxrwxrwx 1 root root 11 déc 21 20:14 linux -> linux-2.6.8.1-12mdk/
drwxrwxr-x 19 500 500 4096 déc 21 21:27 linux-2.6.8.1-12mdk/

verifiez que linux est un lien . SI c'est un dossier, deplacons le ! :

mv linux linux-old

maintenant, les choses un peu plus serieuses commencent :

tar xvfj /là/où/j'ai/telechargé/linux-new.tar.bz2

cela va creer le dossier linux-new.
a ce moment, creer un lien :

ln -s linux-new linux

puis

cd /usr/src/linux

vous etes dans le dossier des sources du nouveau noyau en théorie. c'est le moment de passer en root
su
*********
make mrproper
(pour tout nettoyer? j'ai pas tout saisi là, mais ca semble une bonne idee...)

ensuite vous avez le choix : make config, make menuconfig, make xconfig.
vous pouvez essayer chacune de ces commandes pour voire a quoi ca ressemble...je vous conseille le xconfig (mais sachez que les autres fonctionnent si jamais xconfig ne marche pas...)
Par contre, le make config peut etre a mon avis un peu lourd pour les premieres compilation : on voit défiler TOUTES les options, dont une grande majorité qu'on ne comprend pas... :-(

bref, a vous de configurer votre noyau, l'aide du xconfig vous donnant des pistes pour certains des modules (une adresse web, ce genre de choses)

Par défaut, make xconfig va chercher les défauts de configuration dans .config (dans le rep courant), ou sinon dans le /boot/config qu'on a vu plus haut.
le plus simple etant d'avoir /boot/config == /boot/config-old pour partir de la configuration d'un noyau qui fonctionne

une fois tout ca fait, je vous conseille de sauver la configuration de votre noyau, par exemple dans /boot/config-new
puis :
rm /boot/config
ln -s /boot/config-new /boot/config

ensuite, (on est encore et toujours dans /usr/src/linux/)
make dep (inutile sur les nouveau noyau : il vous le dira, sans que ca pose de pb pour la suite, donc a faire dans le doute)
make clean
make bzImage

cela va creer /usr/src/linux/arch/i386/boot/bzImage
il s'agit de votre tout nouveau noyau :D

make modules (pour compiler les modules)

en cas de souci, comme dit plus haut, cela peut provenir du compilateur gcc
sous Mdk : gcc -v
sur la 10.1 : 3.4.1 (qui fait planter la compilation)
urpme gcc
urpmi gcc3.3
urpmi gcc3.3-c++
pour avoir une version 3.3.qqch de gcc ;-) (qui a fonctionné chez moi :D )

make modules_install

pour installer les modules qu'on a compilé avec make modules

il ne reste plus qu'a préparer le reboot avec un nouveau noyau...

cp /usr/src/linux/arch/i386/boot/bzImage /boot/vmlinuz-new
cp /usr/src/linux/System.map /boot/System.map.new (<-- utile??)
il y a peut etre aussi un truc a faire avec le initrd.img???

puis editer /etc/lilo.conf
et rajouter une entree en se basant sur les autres (et modifier l'ancienne) :
xxxxxxxxxxxxxxxxxxxxxxxxxxxxx
image=/boot/vmlinuz-new
label="linux-new"
root=/dev/hdb5 <--- votre DD sur lequel vous avez linux
initrd=/boot/initrd.img
# vga=788 <--- j'aime pas la merde bleue de Mdk au démarrage : on dirait un ecran de plantage Win*$#@ ;-)
read-only
image=/boot/vmlinuz-old
label="linux-old"
root=/dev/hdb5
initrd=/boot/initrd.img
# vga=788
read-only
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

enregistrer, quitter
je vous conseille de laisser le noyau "old" par defaut, comme ca vous bootez sur le nouveau QUE si vous le voulez vraiment au démarrage ;-)

puis

/sbin/lilo

root # /sbin/lilo
Added linux-old *
Added linux-new
Added linux-nonfb
Added failsafe
.....

pour mettre a jour lilo.

reste a prier tres fort, serrer les fesses et lancer la commande ultime...

reboot

Voila, j'espere que ca pourra servir a qqn,
d'autre part je ne me fais pas d'illusion, c'est a mon avis loin d'etre parfait, et tous les commentaires/corrections sont bien entendu les bienvenus!!!

Ceci n'est qu'un petit resumé de tout ce que j'ai pu trouver sur le net

Bon courage aux téméraires qui se lancent la dedans! ;-)

Phiphi
0