[Debian][Drivers Nforce] Recompilation du Noyau ?

Salut a tous,

Alors voila, j’ai fini par passer le pas et je me suis acheter mon serveur. Vous pouvez trouver le detail de tout ca ici.
J’ai donc une asus M2NPV-VM, carte a base de NForce et de video integré, et j’aimerai installer les drivers du chipset pour profiter du reseau et du son.
J’ai donc recuperer les drivers sur le cd (a jour par rapport au net), qui se presente sous cette forme :

Je les copie dans un repertoire temp (ca veut pas se lancer depuis le cd), je les lance, et j’arrive devant un ecran ou je selectionne les drivers reseau et son, puis j’arrive sur le message suivant :

Avec seulement un bouton ‘ok’, sur lequel je clic.
J’arrive alors sur l’ecran

Avec encore seulement un bouton ‘ok’. Et la l’installeur sort en erreur.

Donc j’ai un peu chercher sur le net, et j’ai trouver des procedures pour recompiler le noyau completement, mais je n’arrive toujours pas a mettre la main sur les sources.
En fait, je sais pas quoi prendre comme source pour etre honnete, et encore moins ou les telecharger. Les sources de linux 2.8.x ? ou mais quel x ? Parce que sur certain sites, il parle de la version 2.8.8, sur d’autre de la 2.8.16. Ca fait quand meme pas mal de difference.
Ou alors les sources de ma distib ? (j’ai installé a partir de la version : ‘debian-31r3-amd64-binary-1.iso’). Bref, ya beaucoup de version, et j’ai peur de recompiler la mauvaise.

Et ya pas moyen de mettre la main directement sur une precompiled kernel interface directement ? Parce que visiblement, si l’installeur trouve ca, il a pas besoin de recompiler le kernel.

Donc je veux bien un petit coup de main, juste histoire de me mettre sur les rails B) Des explications sur le principe m’interesse, histoire de devenir autonome a terme B)

Merci a tous !

Ben

Il te faut les headers de ton kernel.

apt-cache search kernel | grep header

Et les drivers libres inclus dans le kernel officiel ne te suffisent pas ? Sur Sarge mon réseau et mon son fonctionnaient sans problème il me semble.

Non, ma carte etait pas dans la liste. D’autant qu’il faut aussi que j’installe les drivers de la carte graphique integré B) Et puis j’aimerai bien savoir faire B)

[quote=« unreal, post:2, topic: 31537 »]Il te faut les headers de ton kernel.

apt-cache search kernel | grep header[/quote]

Ok merci !
Je fais quoi ensuite avec ces informations ? Tu veux que je recopie ici le resultat de la commande ?

Tu lis le résultat, et tu apt-get install le package qui correspond à ton kernel (uname -r).

Unreal : le pb c’est que le resultat du search ne correspond pas a la version de mon kernel.
Comme je n’ai pas le reseau, ma source pour les paquets apt est le DVD que j’ai gravé (debian-31r3-amd64-binary-1.iso). Peut etre que le paquet necessaire n’est pas dessus ?

Le apt-search avec un grep sur kernel me donne :

em8300-headers - Kernel headers to access DXR3/Hollywood+ decoder cards atlas3-headers - Automatically Tuned Linear Algebra Software, C header files atlas2-headers - Automatically Tuned Linear Algebra Software, C header files libdevmapper-dev - The Linux Kernel Device Mapper header files fblogo - Converts images to framebuffer-logo header file linux-kernel-headers - Linux Kernel Headers for development

Le uname -r donne :

J’ai fait un apt-get install sur libdevmapper-dev (qui n’etait pas installé) et sur linux-kernel-headers (qui etait deja installé), mais ca ne change rien.

Tu as fait apt-get update avant ? Et tu as mis des sources apt qui conviennent ?

Parce que moi j’ai ca :

kernel-headers-2.6.8-12-amd64-generic - Linux kernel headers 2.6.8 for generic x86_64 systems kernel-headers-2.6.8-12-amd64-k8 - Linux kernel headers for version 2.6.8 on AMD64 systems kernel-headers-2.6.8-12-amd64-k8-smp - Linux kernel headers for version 2.6.8 on AMD64 SMP systems kernel-headers-2.6.8-12-em64t-p4 - Linux kernel headers for version 2.6.8 on Intel EM64T systems kernel-headers-2.6.8-12-em64t-p4-smp - Linux kernel headers for version 2.6.8 on Intel EM64T SMP systems

[edit] : ah j’ai p-e un peu zappé le fait que tn n’aies pas encore le réseau… Va télécharger les packages dont tu as besoin sur le site de Debian.

Ok merci ! Je vais aller voir le site que tu m’as linker (j’ai pas pu rebosser la dessus cet aprem).
Je vous tiens au courant d’ici demain.

Merci B)

Ben

Salut,

J’ai eu le même pb, avec un kernel compilé avec mes petits doigts boudinés…

Si tu as un kernel de base de ta distro :

et donc tes headers seront automatiquement dans /usr/src/linux

Sinon, il faut juste faire un link vers les headers de ton kernel maison vers /usr/src/linux, et tu lances le script nvidia avec l’option :

Autre chose :
Vérifie que ta version de gcc ne soit pas supérieure à celle qui a servi pour compiler ton kern
Ca m’est déja arrivé (vu que je mélange des deb de etch et de sarge donc j’avais gcc 4 et un kern compilé avec 3.4) Dans ce cas, tu fais export cc=lien_vers_la_bonne_version_de_gcc

Hope this helps!

Bon, je m’en sort pas …

Ce que j’ai fait :

  • j’ai recuperer sur le net les paquets kernel-headers-2.6.8-12_2.6.8-16sarge4_amd64.deb et kernel-headers-2.6.8-12-em64t-p4-smp_2.6.8-16sarge4_amd64.deb

  • j’ai installer ces paquets grace a la commande "dpkg -i "

  • j’ai donc dans /usr/src/
    - kernel-headers-2.6.8-12
    - kernel-headers-2.6.8-12-em64t-p4-smp
    - kernel-kbuild-2.6-3

  • la je relance le drivers via le run en passant le --kernel (ou pas, ca change rien)

  • j’arrive alors sur l’ecran "No precompiled kernel …"n puis la il compile et sort avec le message d’erreur suivant :

Et la, je sais plus qui faire du tout …

Vous savez quoi faire ?

Merci !

Ben

PS : j’ai essayé aussi avant avec les sarge5, ca marchait pas meiux, mais je pense que je suis en sarge4.

Essaie d’installer aussi la derniere version de ton kernel.

cd /usr/src ln -s kernel-headers-2.6.8-12 linux
Et apres tu lances l’install des drivers.

Magie

LoneWolf
Les solutions les plus simples tout ca machin.

[quote=“LoneWolf, post:12, topic: 31537”] cd /usr/src ln -s kernel-headers-2.6.8-12 linux[/quote]

J’allais lui proposer ça, mais si ça compile c’est bien qu’il trouve les headers, non ?

Oh my.
My bad.
Mal Lu

(plus besoin du lien alors? plutot cool)

LoneWolf
Ouh la boulette.

Du coup faut que je refasse une installation complete ?
Je peux pas utiliser les osurces et les headers liée a ma version installée ?
Comment je fais pour etre sur de la version qui tourne actuellement (sarge 4 ou 5) ?

up : je reinstalle tout l’os pour avoir la derniere version alors ?

Essaie d’installer le package dont j’ai filé le lien pour mettre à jour ton kernel.

Ca veut bien dire que ton kernel installé et ton header source ne sont pas de meme version.
As tu vérifier que gcc est de la bonne version également ? les paquets deb sarge sont compilés avec la 3.4 et souvent on a tendance à installer la 4 pour compiler des dev plus récents…

si uname -r te sort bien 2.6.8-12-em64t-p4-smp (il me semble que tu dis ca dans un de tes messages), il te faut absolument ces sources en passage de paramètres au script nvidia, et pas juste kernel-headers-2.6.8-12.

du coup, le link que tu dois faire c’est

ln -s kernel-headers-2.6.8-12-em64t-p4-smp linux

et pas

ln -s kernel-headers-2.6.8-12 linux

[quote=“chipset, post:18, topic: 31537”]Ca veut bien dire que ton kernel installé et ton header source ne sont pas de meme version.
As tu vérifier que gcc est de la bonne version également ? les paquets deb sarge sont compilés avec la 3.4 et souvent on a tendance à installer la 4 pour compiler des dev plus récents…

si uname -r te sort bien 2.6.8-12-em64t-p4-smp (il me semble que tu dis ca dans un de tes messages), il te faut absolument ces sources en passage de paramètres au script nvidia, et pas juste kernel-headers-2.6.8-12.

du coup, le link que tu dois faire c’est

et pas

Ok, je vais essayer tout ca.

Par contre, comment verifier la version de gcc et en quel version faut il qu’il soit ?
Par contre sur le net, on trouve des versions en sarge4 et en sarge5. Comment savoir a coup sur la version que j’ai installé ? Le uname -r ne precise pas.

Edit : d’ailleurs je me melange un peu entre les pinceaux entre les headers, les sources et les images… C’est quoi qu’il faut exactement pour la recomplication ? Les header (c’est ca qu’on link dans /usr/src/) les sources ? les deux ?
Et c’est quoi le paquet image dans le lot ? c’est les sources ?

Je sais que mes questions sont basiques, mais j’ai besoin de clarifier les choses.

Merci !

Qqs defs :
Les headers te permettent (entre autre) de compiler un module supplémentaire à ajouter à l’image du kernel courant, (ce que tu vas faire au final). Comme en prog standard, les headers sont les bibliothèques de fonctions utilisées dans le code source d’une appli.

Les sources sont… les codes sources (!) qui contiennent tout le code du noyau, utilisée pour tout recompiler…

L’image est le résultat de ta compilation (le célèbre ./configure; make; make install;)

Pour ce qui est de notre cas, tu n’as besoin que des headers parce que le code source est celui de nvidia. La compilation va donc générer un module, à partir des headers de ton kernel actuel.

Version de gcc :

Pour connaitre ta version courante de gcc, tu fais juste

Si tu as une sarge (stable), tu devrais avoir un blabla de configuration puis :

Pour savoir quelle version de gcc a été utilisée pour la compil de ton kernel actuel (et donc celle à utiliser pour la compilo + install du module) :

Si c’est 2 versions différentes, tu installes la version qui a servi dans pour le kernel, puis tu fais un export pour switcher vers le bon executable de gcc…

En résumé

il te faut donc les headers associés à ton kernel (ceux qui sont donc liés à la réponse de uname -r)
il te faut la bonne version de gcc
Tu récupères ces headers
Tu linkes vers /usr/src/linux
Tu lances le script nvidia avec passage du rep

et ca devrait aller

Sinon, n’hésite pas à détailler ce que tu fais, et le résultat…