Comment RECOMPILER le noyau de mandrake2.6.8.

pristella Messages postés 859 Date d'inscription   Statut Contributeur Dernière intervention   -  
 kmf -
bonjour,
J'ai réussi à compiler le noyau 2.6.9 sur mandrake 10.1 officiel (c'etait un exercice).
Maintenant, j'aimerais recompiler le noyau existant de la distribution mandrake (2.6.8.1-10).
Malheureusement les sources du noyau n'apparaissent pas dans /usr/src/ . Seul existe le repertoire RPM (vide). J'ai donc voulu récupérer les sources avec un urpmi kernel-source et c'est une version 2.4.... qui s'installe.
Ma question la voici :
comment peut-on recompiler le noyau 2.6.8.1-10 alors que les sources n'existent pas ?

Ps: en fait je veux recompiler ce noyau car j'essaie d'installer un driver pour une webcam (quickcam messenger). Au moment, de la compilation du driver, des messages d'erreur apparaissent qui expliquent qu'il faut que le noyau soit compiler avec la même version de compilateur...et comme le noyau 2.6.8.1-10 est pré-compilé...!!!


merci d'avance pour votre aide

7 réponses

kmf
 
Il y a certainement aussi le paquet rpm pour 2.6.8.1 mais le nom est differents. Il te faut regarder sur les cds de Mandrake et/ou sur leur site ftp ou tu peux le telecharger. Apres tu l'installe avec "rpm -Uvh <nom_du_pacquet>.rpm". Mais il faut aussi appliquer toutes les patchs qui font que c'est 2.6.8.1.blablabla et non 2.6.8.1 tout court et je me demande si le "rpm" applique automatiquement ces patchs ou s'il le faut faire soit meme. Pour controler regardes les premieres lignes du Makefile dans les sources et notamment la "EXTRAVERSION" (le "blablabla") apres installation des sources. La tu sauras si les patchs ont ete appliques ou pas.
En plus, il faut faire attention que ca n'entre pas en conflits avec les sources 2.6.9. J'espere que tu n'as pas installe les dernieres dans le repertoire /usr/src/linux/ pour cette raison.

Cependant tu peux tres bien compiler ton driver webcam avec le noyau 2.6.9, c.-a-d. tu demarres le 2.6.9 et tu fait la compilation. Normalement le lien /lib/modules/2.6.9/build -> "repertoire_source_de_2.6.9" s'occupe de tout pour trouver les fichiers includes des sources, eventuellement il y a une option dans le script configure (de ton truc webcam) ou tu dois fournir l'endroit des sources. Regarde les fichiers INSTALL, README du driver webcam. Tu peux aussi regarder les options avec
"./configure --help". Pour la version du compilateur c'est toujours le gcc 3.3.4, donc ca doit etre bon. Peut-etre tu as deja fait ca ?

Ton message avec la version de compilateur c'est entre les grands sauts de versions gcc normalement entre gcc 2.95 et gcc 3.x.y. Maintenant il semble c'est aussi en 3.x.y et 4.0.0.
Il y a des drivers partiellements propritaires avec des morceaux binaires precompiles (par exemple pctel pour les winmodem) ou il faut avoir le gcc 2.95 pour eviter ce message a cause de ces moreaux. Dans ce cas on peut quand-meme compiler avec 3.3.4 et apres on peut forcer de charger le module avec l'option "-f" ("insmod -f <nom_du_module>"). Il est possible que ton message d'erreur est relie a ca (donc conflit 2.95 et 3.3.4) et pas forcement par le fait que le noyau de Mandrake a ete compili avec 4.0.0 (donc conflit 3.3.4 et 4.0.0).
De toute facon pour compiler le module pour le noyau 2.6.8.1.... il faut avoir les bonnes sources avec exactement les bonnes patchs, deja pour les fichiers includes meme si on ne recompile pas le noyau completement.
0
pristella Messages postés 859 Date d'inscription   Statut Contributeur Dernière intervention   74
 
Merci kmf,
Je vais etudier tous ces éléments attentivement.
Je te tiens au courant
A+
0
pristella Messages postés 859 Date d'inscription   Statut Contributeur Dernière intervention   74
 
J'ai reussi la compilation du noyau 2.6.8.1 (en fait j'ai télécharger un fichier targz sur kernel.org) mais j'ai des trucs bizarre au démarrage du pc quand je choisi le nouveau noyau et comme pour le 2.6.9, j'ai les messages suivants :

"mount : fs type supermount not supported by kernel".

Mais plus surprenant, le lancement de pppo à disparu au profit de capi4linux.

A l'issue ça fonctionne quand même.Mais c koi exactement capi4linux?

j'imagine que ça permet la connexion à internet mais pourquoi a -t-il remplacé pppo.

ça fait pareil lorsque je choisi le noyau 2.6.9 ou 2.6.8.1-10. Mais ça fonctionne :):)

Une dernière chose, quelle est la procedure pour desinstaller
proprement un noyau compiler sur sa machine?

Pour info, j'ai reussi à installer ma webcam (quickcam messenger).
Est-ce qu'on peut faire une video conférence avec une personne qui ne possède que windowsXP . Moi j'utilise gnomemeeting et j'ai bien peur que ça ne soit pas possible de discuter avec quelqu'un qui possède msn messenger ?????

merci pour tous ces renseignements - je progresse, je progresse :):):)

Grace à vous
0
pristella Messages postés 859 Date d'inscription   Statut Contributeur Dernière intervention   74
 
bon, j'ai tout recommencé en reinstallant 10.1 communinity.
A partir de là, j'ai trouver les sources du noyau 2.6.8.1-10 sur les cd de mandrake ( l'imbécile! j'aurais pu y penser plus tôt :(:( merci KMF
Et voici la procedure que j'ai faite pour recompiler ce noyau (j'espère que je n'ai pas fait d'erreurs) :

cd /usr/src/linux
make mrproper
cp /boot/config-2.6.8.1-10mdksmp .config (au fait c koi le smp?)
make bzImage

make modules " (avec quelques messages :

r driver to the new sysfs api"
CC [M] drivers/net/3c501.o
CC [M] drivers/net/3c507.o
CC [M] drivers/net/3c509.o
CC [M] drivers/net/3c515.o
CC [M] drivers/net/eexpress.o
In file included from drivers/net/eexpress.c:116:
include/linux/mca-legacy.h:12:2: warning: #warning "MCA legacy - please move your driver to the new sysfs api"

et bien d'autres du genre "not definied"

puis j'ai fait :

[root@localhost linux]# cp System.map boot/System.map-2.6.8.1-10mdksmp
cp: écraser `/boot/System.map-2.6.8.1-10mdksmp'?o
[root@localhost linux]# cp arch/i386/boot/bzImage /boot/vmlinuz-2.6.8.1-10mdksmp
cp: écraser `/boot/vmlinuz-2.6.8.1-10mdksmp'?o
[root@localhost linux]# cp .config /boot/config-2.6.8.1-10mdksmp
cp: écraser `/boot/config-2.6.8.1-10mdksmp'?o
[root@localhost linux]#

puis :

make modules_install

voila j'espère ne pas avoir fait d'erreurs.
Si vous avez des explications concernant les messages apres avoir fait make modules, je suis tout ouie.

A+

au fait j'avais oublié de faire :

ln -sf /boot/vmlinuz-2.6.8.1-10mdksmp vmlinuz

je l'ai fait après make modules_install puis après avoir réalisé ce lien j'ai refait make modules_install.
Est-ce que ça pose un problème ???

merci d'avance

A+
0

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

Posez votre question
kmf
 
Je crois avant le "make bzImage" et apres la copie du fichier config tu as oublie un truc comme "make oldconfig" ou "make xconfig". Normalement c'est indispensable pour preparer la configuration. Les commandes de type "make *config" font plus que de creer le fichier .config, ca fait aussi d'autres chose importantes. Il faut les toujours faire
apres un make mrproper/clean meme si on fournit un fichier .config par copie d'un autre fichier ("make oldconfig" dans ce cas).

Le smp c'est pour multiprocesseur. Ca peut servir si tu as un P4 avec multi-thread. Regardes avec /cat/cpuinfo s'il t'affiche peut-etre deux processeurs (virtuels) au lieu d'un.

Pour le warning il n'y a pas de souci tant ca n'arrete pas la compilation. En plus ca concerne un driver (eexpress) qui ne sert (tres) probablement a rien dans ton systeme. Je suppose ca s'adresse plutot a un developeur pour adapter une interface interne a un nouveau truc (comme recommandation).

Le make modules_install ne copie que les modules compiles dans /lib/modules/2.6.8.1....../. Ton lien avec vmlinuz n'a pas d'importance particulier sauf pour simplifier ton /etc/lilo.conf (ou /boot/grub/menu.lst si tu utilise grub). Tu peux appeller tes noyaux dans /boot/ comme tu veux tant tu mets le bon truc dans /etc/lilo.conf (moi je mets toujours vmlinuz-<version>).
0
pristella Messages postés 859 Date d'inscription   Statut Contributeur Dernière intervention   74
 
en fait j'ai fait un make xconfig avant la copie du fichier config.
Je dois recommencer ????? étourderies :))))
le but pour moi est de recompiler ce noyau dont je n'avais pas les sources à l'install sauf qu'en fait elles etaient dans le cd3 de mandrake. Est-ce obligatoire de faire un make oldconfig même si il s'agit du même noyau????
0
kmf
 
Oui, apres l'installation des sources et chaque fois apres un make mrproper/clean il faut faire un des trucs "make *config" meme si on demarre avec une ancienne version de .config. Il faut faire le make xconfig apres la copie de .config car le "make xconfig" sert a editer en quelque sorte le .config. Peut-etre ca a bien marche mais je ne suis pas sur au niveaux des dependances. Un noyau 2.4 n'aurait pas pardonne ca, avec le 2.6 c'est beaucoup mieux avec les dependances (plus automatique). Disons si tu veux etre absolument sur tu refais la compilation. Ce point est certainement plus important que le lien avec vmlinuz ou les warnings.
0