Driver nvidia debian

Fermé
toto - 26 janv. 2005 à 00:03
 kmf - 29 janv. 2005 à 11:05
Bonjour,

J'essai désespérement d'installer le driver nvidia pour ma carte graphique est NVIDIA Corporation NV18 [GeForce4 MX 440 AGP 8x].

J'ai téléchargé le dernier driver sur le site de nvidia, ai quitté X, suis passé root et j'ai lancé le .run

Voici le log d'erreur :

Using: nvidia-installer ncurses user interface
-> License accepted.
-> No precompiled kernel interface was found to match your kernel; would you li
ke the installer to attempt to download a kernel interface for your kernel f
rom the NVIDIA ftp site (ftp://download.nvidia.com)? (Answer: Yes)
-> No matching precompiled kernel interface was found on the NVIDIA ftp site;
this means that the installer will need to compile a kernel interface for
your kernel.
-> Kernel source path: '/usr/src/linux'
-> Performing CC test with CC="cc".
ERROR: If you are using a Linux 2.4 kernel, please make sure
you either have configured kernel sources matching your
kernel or the correct set of kernel headers installed
on your system.

If you are using a Linux 2.6 kernel, please make sure
you have configured kernel sources matching your kernel
installed on your system. If you specified a separate
output directory using either the "KBUILD_OUTPUT" or
the "O" KBUILD parameter, make sure to specify this
directory with the SYSOUT environment variable or with
the appropriate nvidia-installer command line option.

J'ai un noyau 2.6.8-1-k7 et les sources sont dans /usr/src/linux.
Quelqu'un a une idée de ce que je dois faire ??

Merci d'avance.
A voir également:

21 réponses

Pour la 2nde fois:
------------------------
Tu dois faire attention a la version exacte !! Si chez toi "uname -r" donne: 2.6.8-1-k7 et si tes sources sont 2.6.8 c'est considere comme de versions differentes, donc rejete par l'installation de NVIDIA !
C'est tout le baratin avec de patch et de blabla specifique a debian etc. qui compte pour la version!!
Comment tu as installe les sources ? A partir d'un paquet debian ou d'un tar obtenu de kernel.org ? Il faut trouver les sources avec la meme version exacte de ton noyau!! Normalement il y a de paquets debian pour ca, il faut les installer. Si pour ton noyau 2.6.8-1-k7 les sources n'existent pas ou plus en paquet debian ca implique qu'il y a eu une mise a jour de securite et il faut changer les deux: noyau compile et sources. Je crois le probleme est peut-etre que le machin "-k7" indique une configuration speciale pour ton processeur (AMD ?) mais ce n'est pas un vrai changement de version. Dans ce cas il faut avoir 2.6.8-1 en source de Debian et en theorie dans le paquet de Debian il doit y avoir un script traffique (dans les sources) qui fait un truc complique pour satisfaire le NVIDIA. En fait je crois tous les distributeurs comme Redhat/Fedora, Mandrake et Debian ont de paquets de sources ou ils ont traffiques certains scripts pour gerer differents pseudo-versions (comme -smp, -k7, ...) . En principe c'est super degueulasse si ca ne fonctionne pas avec la compilation d'un module externe. Avec les noyaux officiel c'est plus facile pour ca.

Si rien ne fonctionne tu prends a ftp://ftp.fr.kernel.org/pub/linux/kernel/v2.6/
la derniere version 2.6.10 et tu le compiles toi meme (si on compile il ne faut pas hesiter de prendre la derniere version). Le mieux c'est de deballer le fichier tar.bz2 dans un beau sous-repertoire dans ton home utilisateur
(pas besoin de mettre en /usr/src/linux !) et compiler en tant qu'utilisateur et seulement apres on fait l'installation comme root. Apres l'installation des modules dans /lib/modules/2.6.10/ il y aura un lien
/lib/modules/2.6.10/build -> /repertoire_ou_on_a_compile
et c'est ce lien qui est le plus important et qui est cherche en 1er par le script d'installation de NVIDIA. Donc tant on ne bouge plus le repertoire initial de compilation ca marchera automatiquement pour NVIDIA et pour tous les autres modules noyaux que tu souhaites ajouter.
Pour la compilation noyau il y a par exemple la doc de Mandrake qui est tres bien et tres universelle:
http://doc.mandrakelinux.com/MandrakeLinux/100/fr/Command-Line.html/compiling-kernel-chapter.html

Le truc /usr/src/linux c'est uniquement un truc sale de secours, normalement ce n'est pas necessaire si le lien:
/lib/modules/<version_noyau>/build

pointe vers le bon repertoire source!
1
" or the correct set of kernel headers installed
on your system. "

apt-get install kernel-headers-2.6.8-2-k7

(est tu sur de tes sources? : apt-get install kernel-headers-2.6.8-1-k7 n'existe pas (ou plus ?))

enfin, bref, il te manque les entetes

Phiphi
0
effectivement on dirait que les sources n'existent plus...
pourtant:

uname -r
2.6.8-1-k7

C'est pas grave si je mets les entetes de 2.6.8.2.k7 ?!? qui ne correspondent pas exatement à ma version ?
0
En ce concerne la compilation de modules noyau il faut que la version des sources corresponde exactement a la version du noyau qui tourne. Donc c'est grave!

Apart ca j'ai l'impression qu'il y a confusion entre kernel-source et kernel-headers. En theorie le petit paquet de kernel-headers qui ne contient que quelque fichiers include devrait suffrir, mais moi personnellement je ne me fierais pas de ca! Je veillerais toujour de remplacer le paquet kernel-header par le grand paquet kernel-source (celui qui bouffe plus de 250 Mb de disque) ! En fait je crois pour le noyau 2.6 le driver de Nvidia n'a pas seulement besoin de fichiers include mais aussi de la structure "Kbuild" et "Makefiles" et ca, ca ne se trouve pas dans les kernel-headers seulement dans le kernel-source !
Donc, le mieux c'est de recuperer et installer les derniers paquets "kernel" (version compile du noyau) et "kernel-source" (version source) du dernier noyau de Debian et rebooter apres! Eventuellement il faut d'abord desinstaller "kernel-headers" car c'est en conflit avec "kernel-source". Apres reboot tu reessaies l'installation de NVIDIA.
0

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

Posez votre question
Merci pour ta réponse kmf

Donc, je n'ai de tte facon jamais installé les kernel-headers (et ne le ferait pas etant donné qu'il ne sont plus sur apt-get install). Par contre j'ai bien le kernel-source d'intaller. Plus précisement, dans le répertoire /usr/src/, j'ai un répertoire /kernel-source-2.6.8 (je viens de voir si il y avait des sources plus précise avec apt-get, mais je ne trouve rien de plus précis.
J'ai ensuite fais un lien symbolique ln -s /usr/src/kernel-sources-2.8.6 /usr/src/linux afin que les sources se retrouvent dans le répertoire linux
puis j'ai suivi la procédure de mon premier message, et ca bloque...

Aurais-tu une idée ?
0
Merci pour ta longue explication.
Je vais essayer demain de compiler moi meme le noyau (soyons fou, c'est comme ca qu'on apprend !)
Une ou deux questions :

- Est-ce qu'il sera pris en compte directement par GRUB au démarrage ?
- Est-ce qu'en cas de probleme, je peux facilement revenir a ma version précédente du noyau ?
- Est-ce que les logiciels que j'ai installé sous l'ancien noyau sont a réinstaller ? (si oui, comment savoir lesquels justement, ne seront pas supporter ?)
0
J'ai répondu à ma premiere question et ma deuxieme question grace a ton lien...

Malheureusement, ce meme lien fait naitre une question: comment je sais quels modules je dois installer ?

Désolé pour ces questions, mais ca a un coté assez impressionnant de se lancer dans la compilation d'un noyau...
0
- Est-ce qu'il sera pris en compte directement par GRUB au démarrage ?
Non, mais c'est facile. Il faut ajouter les 2-3 lignes necessaire pour le nouveau dans le fichier /boot/grub/menu.lst.

- Est-ce qu'en cas de probleme, je peux facilement revenir a ma version précédente du noyau ?
Oui, en fait il ne faut pas toucher a l'ancien noyau. Il suffit de copier le nouveau noyau sur un autre fichier dans /boot/, par exemple: vmlinuz-2.6.10 au lieu de vmlinuz. Apres on prepare le grub pour pouvoir demarrer les deux. C'est comme le double boot. Tu peux avoir 20 noyaux
different dans la liste de grub, il n'y a aucun probleme pour ca (sauf la place dans la partition /boot).

- Est-ce que les logiciels que j'ai installé sous l'ancien noyau sont a réinstaller ?
Pour les logiciels normaux ("userland progams") il n'y aucun probleme surtout quand le changement et mimine entre 2.6.8 et 2.6.10. C'est autre chose entre 2.2 et 2.6 mais parce que tout noyau necessite certaines versions minimales de certaines applications cles utilisants les interfaces avec le noyau (les truc dans /proc) comme par exemple: "ps", "top", etc. Tres probablement ca ne pose pas de probleme comme tu es deja avec 2.6.8.
Je suppose Debian Sarge doit etre a jour pour ca (c'est tres different pour Woody et 2.6 !!). Sinon on peut faire quelques petites mises a jour (qui marcheront aussi avec l'ancien noyaux!).
Regardes dans le repertoire source de 2.6.10 (apres deballages du tar) le fichier: "Documentation/Changes", qui contient une liste de versions minimales pour certaines applications. Je doute fortement que tu trouves un pb!

Par contre il faut faire un peu attention si tu as de drivers speciaux sous formes de modules noyau (en dehors du noyau officiel) comme NVIDIA, certains drivers tres recents pour wireless, modem ADSL, comme eagle-usb, ou winmodems. Ce genre de driver doit etre recompile pour chaque nouveau noyau qu'on installe, normalement tres facile si on l'a deja fait une fois.
Si tu n'as jamais fais ca, ca ne devrait pas poser de probleme.

Dans le noyau Mandrake il n'y a pas mal de drivers comme ca ajoute par Mandrake et ca peut arriver qu'on s'en sert sans se rendre compte que ces drivers ne figurent pas dans le noyau officiel et c'est au moment quand le noveau noyau est pret qu'on voit qu'il manque encore de drivers. Cependant je ne crois pas que Debian fasse parreil ? Meme si ca arrive, chercher le paquet source du driver sur internet et l'installer apres. Tu as wireless 55 Mb/s, ou un modem ADSL en USB comme le sagem ?
0
Chez 9 telecom en ethernet. Pour la connexion, j'avais installé le package ppp (il me semble) et tout marche tout seul.

Je me suis fait aidé pour l'installation de la Debian, donc je ne me souviens pas exactement de tout ce qui a été fait. Je sais juste qu'on a mis un noyau précompiler. (Apres, je trouve ca facile, l'outil apt-get est tres fort. Pas eu besoin de compiler un seul programme depuis que je l'ai - un peu plus d'un mois, et oui, je suis un novice).
D'ailleurs, il n'y aura plus de "k7" dans le noyau noyau. Quel paquet devrais-je choisir à l'avenir ? les 386 ? 586 ? 686 ? ou ca n'a aucune importance ?
Est-ce que l'apt-get de Debian reconnaitra bien les dépendances etc... avec le nouveau noyau qui ne sera a priori plus "sauce debian" ?
Ces questions sont surement débiles, c'est juste que je ne comprends pas bien comment tout ca fonctionne, et ce qui est vraiment lié à la version du noyau dans l'utilisation globale de linux.

Mais, c'est en soit une bonne expérience de compiler le noyau ! c'est comme ça qu'on apprend, surtout que si j'arrive a installer le driver NVIDIA (l'objectif étant de pouvoir regarder des films sur la TV), je ne vois plus à quoi me servira windows... :-)
0
Avec un modem ethernet et ppp tout est standard! Ca marchera tres bien avec le nouveau noyaux. Pour le processeur tu pourra mettre ce que tu veux en fonction de ce que tu as mais ca ne changera pas la "version affichee": 2.6.10 (comme debian le fait de facon artificielle!) .
Il faut seulement que tu demarres avec la config de ton ancien noyau (modifie par de petite choses: comme le bon processeur et mettre le file-systeme "ext3" en direct dans le noyau au lieu de le mettre en modules)
pour etre sur que tu as tous le modules necessaires. Regardes d'abord en detail la doc de Mandrake comment faire! C'est tres bien explique. Il y a aussi de nombreux lien ici:
http://www.commentcamarche.net/forum/affich-1138938-Installer-le-noyau-2-6-9-help
http://www.commentcamarche.net/forum/affich-1114334-tuto-compiler-noyeau-mandrake
0
Salut,

J'ai un panic kernel (plus précisement :

vfs: Cannot open root device "hda3" or unkwon-block(0,0)
please append a correct "boot=" boot option
kernel panic: VFS: Unable to mount root fs on unknown-bloock(0,0)

Pourtant, les parametres de mon grub sont correctes (puisque le nouveau noyau est sur la meme partition "hda3" qu'avant). Seul différence, c'est que le noyaux précompilé déja installé (le fameux 1.6.8-1-k7) a une ligne suppélentaire dans le menu.lst de grub, qui correspond a initrd /initrd.img-2.6.8-1-k7.
Je n'ai pas généré de nouveau initrd, ayant lu que ce n'était pas necessaire (et surtout ne sachant pas fair !!)

- J'ai du mettre en module des trucs qui ne devraient pas. Pourtant comme tu me l'as conseillé, j'ai mis en dur ce qui contenait du ext3.
Que dois-je absolument mettre en dur pour que ca marche ?

- Sinon, au pire, comme faire pour régénéré sous debian un fichier initrd qui fonctionne ?

Merci d'avance
0
Salut,

pour la compilation du noyau : un tuto bien foutu :

http://www.trustonme.net/didactels/285.html

Phiphi
0
Tu as bien copie l'ancien fichier config (du noyau debian, probablement: /boot/config-2.6.8-1-k7) vers ".config" dans le sources avant de faire "make xconfig" ?? Sinon tu as une configuration completement differente de celle d'avant. Si c'est ca refaire!
Soit il manque de choses importantes (comme file-systemes), soit il y a une erreur dans le fichier grub (tu as mis quoi exactement ?) ou soit tu as un disque scsi ou sata necessitant un initrd.

La creation d'un initrd n'est pas tres complique non-plus:
Selon ce sujet
http://www.commentcamarche.net/forum/affich-1223275-Comment-faire-un-initrd-img#1
il suffit de taper:
mkinitrd -o /boot/initrd-2.6.10 /lib/modules/2.6.10

et apres tu ajouteras la bonne ligne dans grub pour ca mais fais attention de bien mettre "initrd-2.6.10" et pas "initrd" tout court (qui est pour l'ancien noyau!).
Cependendant au moment ou ext3 est mis directement dans le noyau et sauf cas de disque sata/scsi ca doit marcher sans initrd.
0
Bonsoir,

Ca marche !

Pour les personnes ayant le meme probleme que moi, la solution est donc:

1. Recompiler le noyau
2. mkinitrd -o /boot/initrd-2.6.10 /lib/modules/2.6.10
3. Editer /boot/grub/menu.lst et ajouter adaptant les périphériques (moi c'est sur hda3 que mon noyau est installé)

title Debian GNU/Linux, kernel 2.6.10
root (hd0,4)
kernel /vmlinuz-2.6.10 root=/dev/hda3 ro
initrd /initrd-2.6.10
savedefault
boot

4. quitter X (alt+ctrl+F1, se connecter en root et taper /etc/init.d/gdm stop si vous avez gdm)

5. sh NVIDIA-Linux-x86-1.0-6629-pkg1.run
(répondre aux questions)

6. Editer /etc/X11/XF86Config-4, dans la section "module", virer
Load "GLcore"
Load "dri"
et dans la section "device" remplacer "nv" par
Driver "nvidia"

7. relancer X : /etc/init.d/gdm start

Et ca marche ! (on peut tester avec en tapant glxgears dans un terminal).

Merci à vous tous pour votre patience (payante !)
0
Erata : entre 3/ et 4/ il faut évidement booter sur le nouveau noyau :)
0
salut toto

Tu m'avais déjà écris un message je crois. Bref maintenant tout baigne, l'installation de debian sarge a ete successfull et l'internet fonctionne.

Et maintenant, je crois que j'ai le même problème que toi, mais pour être sur: j'ai une carte nVidia geforce4 mx 440. Je veux installer le driver propriétaire. Lors de son installation voila ce qu'il me dit:

Unable to find the kernel source tree for the currently running kernel. Please make sure you have installed the kernet source files for your kernel. ... If you know the correct kernel source files are installed, you may specify the kernel name path with the --kernel -source-path commandline option

Était-ce bien cette erreur que tu recevais?

ed
0
Ma carte est référencé GeForce4 MX 440 AGP 8x mais je pense que c'est pareil au niveau du driver.

J'ai eu ce message aussi au debut je crois (j'avais essayé de l'installer le premier jour ou j'ai installé debian). C'est d'ailleurs pour ca que j'avais décompilé les sources (qui n'était pas bonne ! cf. les messages précédents et les explications de kmf).

Juste deux remarques:

- les drivers nvidia sont superbes avec cette carte sous linux (je ne regrette pas ce labeur !) La sortie TV est mieux que sous windows (du moins on doit pouvoir faire l'équivalent avec windows, mais je ne sais pas comment). J'ai trouvé plusieurs facon de configurer le driver, et celle sur laquelle je me suis arrêté utilise l'option TwinView. En gros, le résultat est le suivant: l'écran du pc est libre on peut, on peut faire ce qu'on veut, et si on veut passer un truc sur la tv, on déplace la fenetre correspondante en la "faisant sortir" a droite de l'écran. Elle apparait alors sur la TV. Il est possible par exemple de regarder un dvd, tout en étant sur le pc. Plus besoin de passer par "clone etc..." dans "apparence>propriété> etc..." de windows. Et pas de "tremblement de l'ecran pendant qu'on est sur la tv", il gere parfaitement les deux frequences. Je suis impressionné !!

- je me suis amusé à compiler un noyau à la méthode "debian" (on a une debian, profitons des outils).
je te donne la démarche:

1. On télécharge les sources (j'ai fais un test avec un noyau patché par debian, un 6.2.8. Mais apparement, on peut le faire avec n'importe quelle source récupérée).
Je l'ai fais avec apt-get install kernel-source-2.6.8

2. Il met le fichier compressé dans /usr/scr. Suivant les conseils de kmf, je les ai décompilé dans mon home utilisateur, avec tar jxvf kernel -source-2.6.8.bz2 (ou qq chose du genre).

3. make menuconfig (j'ai presque tout laissé par défaut car je ne sais pas à quoi ca correspondait exactement. J'ai mis en dur les fs ext3, mais je doute que ce soit nécéssaire, puisque j'ai quand meme eu besoin de initrd).

4. make-kpkg kernel-image (ca prend quelques minutes, il construit un .deb avec le noyau dedans).

5. dpkg -i xxx.deb (qui se trouve dans le répertoire des sources).

6. Tout se fait tout seul. Tu peux essayer de rebooter, peut-etre tu n'auras pas de panic kernel si tes options de compilation initiale sont distinctes des miennes. Grub est mis a jour automatiquement.
Pour que ca marche chez moi, il fallait encore faire le mkinitrd -o /boot/initrd-2.6.8 /lib/modules/2.6.8 et rajouter dans grub initrd /initrd-2.6.8.

J'espere que ca t'aidera et que ca marchera a peu pres de la meme facon pour toi.
0
Merci pour la reponse

si je comprend bien, toute cette demarche, c,est dans le but que l'installation du driver proprio de nvidia puisse "find the kernel source tree for the currently running kernel".

Voici mon noyau:
~$ uname -r
2.4.27-1-386

J'ai essaye d'installer, mais je me retrouve avec:
/usr/src/kernel-headers-2.4.27-2

Y a-t-il une difference entre 2.4.27-1-386 et 2.4.27-2 pour les kernel headers?

J'ai aussi installe le package kernel-source-2.4.27 et kernel-tree-2.4.27, mais dans la section "version installee" de synaptic c'est ecrit 2.4.27-8 pour les deux packages que je viens de mentionner.

De toute facon, l'installation du driver me redonne encore et toujours la meme erreur!

en tout cas
a+
ed
0
"Y a-t-il une difference entre 2.4.27-1-386 et 2.4.27-2 pour les kernel headers? "

chhuuuuuuuuut !
relis vite toute la conversation juste au dessus avant que kmf s'enerve ;-)

Phiphi
0
Bonsoir

eh bien ca commence a rentrer dans ma tete.Desole pour la remarque de tantot. Je dois parfois lire et relire...

A la 14e etape de cette discussion, toto dit que :

4. quitter X (alt+ctrl+F1, se connecter en root et taper /etc/init.d/gdm stop si vous avez gdm) .

j'ai eu beau chercher, comment faire pour quitter kde?
quel serait l'equivalent de /etc/init.d/gdm stop?

kdeinit_shutdown, ca fait quoi au juste
>man kdeinit_shutdown
=>kdeinit_shutdown shuts down kdeinit
je ne suis pas plus avance!!

merci

ed
0
Tu peux peut-etre essayer

/etc/init.d/kdm stop ou alors /etc/init.d/xdm stop

Je ne sais pas comment quitter X sinon.

Bonne chance
0
Bounjour
J'ai exactement le même problème.
Est ce qu'il n'y aurai pas un moyen de tout simplement récupérer les "kernel-headers-2.6.8-1-k7" parceque que j'ai un mauvais souvenir de ma dernière tentative de compilation du kernel.
0