Carte graphique sur plusieurs noyaux différents

Merci pour ces précisions :slightly_smiling:

Si je suis bien :

  • Tu as le module noyau pour ta carte <------ ce que je compile à partir du .run
  • Le driver nvidia pour xorg <---- heu… là je vois pas
  • Les librairies graphiques spécifiques. <------ glx?

[quote]4) recopiues ton module dans ton arborescence

[code]francois@totoche:/var/tmp/blop/NVIDIA-Linux-x86_64-185.18.36-pkg2/usr/src/nv$ suMot de passe :
totoche:/var/tmp/blop/NVIDIA-Linux-x86_64-185.18.36-pkg2/usr/src/nv# cp nvidia.ko /lib/modules/uname -r/kernel/drivers/video/

depmod -ae

/code]
C’est fini. Il ne te reste qu’à installer les librairies nvidia-glx «and enjoy»[/quote]
–> apt-get install nvidia-glx --> j’ai bon là?
Non parce que apt pas au courant des paquets en place, ça me perturbe un peu à vrai dire…

Le driver nvidia x11 est le fichier nvidia-glx.

Si tu as envie d’avoir la paix, tu installes les paquetrs nvidia. Là le système est au courant que tu as du nvidia et tout et tout.
PUIS

  1. Tu compiles le module et tu l’installes.

Si ça ne marche pas, tu peux éventuellement (mais c’est assez long) remplacer les fichiers des paquets par les fichiers nouvelle version. Ceux ci sont dans l’arborescence de NVIDIA-Linux-x86_64-185.18.36-pkg2
par exemple, le driver nvidia de xorg est le fichier du paquet nvidia-glx:
/usr/lib/xorg/modules/drivers/nvidia_drv.so
il se trouve dans
NVIDIA-Linux-x86_64-185.18.36-pkg2/usr/X11R6/lib/modules/drivers/nvidia_drv.so
en gros les fichiers intéressants sont ci dessous et constituent la part importante de nvidia-setting, nvidia-glx et nvidia-glx-i32.
Avec ces renseignements tu peux mettre ton système à jour tout en ayant les paquets installés. Une dernière méthode est de refaire les paquets. Tu peux trouver les paquets pour amd64/squeeze ici: http://boisson.homeip.net/debian/Nvidia

[quote]./usr/X11R6/lib/modules/ drivers/nvidia_drv.so
./usr/X11R6/lib/modules/ extensions/libglx.so.185.18.36
./usr/X11R6/lib/modules/ libnvidia-wfb.so.185.18.36

vont dans /usr/lib/xorg/

./usr/bin/makeself.sh
./usr/bin/nvidia-xconfig
./usr/bin/nvidia-smi
./usr/bin/tls_test_dso.so
./usr/bin/nvidia-bug-report.sh
./usr/bin/mkprecompiled
./usr/bin/nvidia-settings
./usr/bin/tls_test

vont dans /usr/bin

./usr/lib32/libGLcore.so.185.18.36
./usr/lib32/libvdpau_nvidia.so.185.18.36
./usr/lib32/libvdpau.so.185.18.36
./usr/lib32/libnvidia-tls.so.185.18.36
./usr/lib32/libvdpau_trace.so.185.18.36
./usr/lib32/libGL.la
./usr/lib32/libcuda.so.185.18.36
./usr/lib32/libGL.so.185.18.36
./usr/lib32/tls
./usr/lib32/tls/libnvidia-tls.so.185.18.36

sont des librairies du paquet nvidia-glx-i32 et vont dans ce répertoire

./usr/X11R6/lib/libXvMCNVIDIA.a
./usr/X11R6/lib/libXvMCNVIDIA.so.185.18.36
./usr/lib/libGLcore.so.185.18.36
./usr/lib/libvdpau_nvidia.so.185.18.36
./usr/lib/libnvidia-cfg.so.185.18.36
./usr/lib/libvdpau.so.185.18.36
./usr/lib/libnvidia-tls.so.185.18.36
./usr/lib/libvdpau_trace.so.185.18.36
./usr/lib/libGL.la
./usr/lib/libcuda.so.185.18.36
./usr/lib/libGL.so.185.18.36
./usr/lib/tls
./usr/lib/tls/libnvidia-tls.so.185.18.36

vont dans /usr/lib et /usr/lib/tls[/quote]

Merci beaucoup du temps que tu m’accordes.
J’ai un peu l’impression d’être un gros boulet là … :blush:

Je suis sur intel mais bon, la démarche doit être la même.
J’aimerais juste vraiment comprendre ce qui se passe.

… C’est “propre” ça?
Ce que je ne saisis pas, c’est qu’il y ait autant de méthodes pour installer une carte graphique (bon, on parle d’un noyau perso, je l’accorde) et que d’un tuto à l’autre on ne donne pas les mêmes manières de procéder (la tienne, je ne l’avais jamais vue…)
Du coup, c’est difficile, je trouve, de comprendre le fonctionnement et l’articulation des différents éléments (noyau - module - x …)

Mon but n’est pas de trouver une solution toute faite mais de comprendre le fonctionnement (en lançant le .run ça bronche pas…)
Voilà plus de deux semaines que je bataille pour avoir un système propre mais surtout pour comprendre pourquoi il l’est.

Merci en tous cas, je vais tester ça.

[quote]Si tu as envie d’avoir la paix, tu installes les paquetrs nvidia. Là le système est au courant que tu as du nvidia et tout et tout.
PUIS

  1. Tu compiles le module et tu l’installes.[/quote]

C’est réversible? (j’en peux plus de réinstaller Debian tous les jours… :confused: )

Bien sur que c’est réversible, tout ce qui est fait jusqu’à présent à part l’éxécution du .run est réversible…

Bon, là je commence à m’arracher les cheveux.

make module du .run :

[code]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 equivalent nvidia-installer command line option.

Depending on where and how the kernel sources (or the
kernel headers) were installed, you may need to specify
their location with the SYSSRC environment variable or
the equivalent nvidia-installer command line option.

*** Unable to determine the target kernel version. ***

make: *** [select_makefile] Erreur 1
[/code]

et avec module-assistant :

[code]…touch configure-stamp
dh_testdir
dh_testroot
PATCHLEVEL = 6
Kernel compiler version : 4.3.2
Detected compiler version : 4.3.2
Using compiler gcc-4.3 version 4.3.2
touch /usr/src/modules/nvidia-kernel//gcc-check
touch /usr/src/modules/nvidia-kernel//cc-sanity-check

Main Make

IGNORE_CC_MISMATCH=1 CC=“gcc-4.3” /usr/bin/make -C /usr/src/modules/nvidia-kernel/ -f Makefile SYSSRC=/usr/src/linux-headers-2.6.32.3-seb KBUILD_PARAMS="-C /usr/src/linux-headers-2.6.32.3-seb SUBDIRS=/usr/src/modules/nvidia-kernel" module;
make[2]: entrant dans le répertoire « /usr/src/modules/nvidia-kernel »
NVIDIA: calling KBUILD…
make CC=gcc-4.3 -C /usr/src/linux-headers-2.6.32.3-seb SUBDIRS=/usr/src/modules/nvidia-kernel modules
make[3]: entrant dans le répertoire « /usr/src/linux-headers-2.6.32.3-seb »
Building modules, stage 2.
MODPOST 0 modules
make[3]: quittant le répertoire « /usr/src/linux-headers-2.6.32.3-seb »
NVIDIA: left KBUILD.
nvidia.ko failed to build!
make[2]: *** [module] Erreur 1
make[2]: quittant le répertoire « /usr/src/modules/nvidia-kernel »
make[1]: *** [build-stamp] Erreur 2
make[1]: quittant le répertoire « /usr/src/modules/nvidia-kernel »
make: *** [kdist_image] Erreur 2[/code]

kernel-headers est bien installé, je ne comprends plus rien.

avec kpkg :

[code]vouiajour:/usr/src/linux# make-kpkg modules_image
exec debian/rules DEBIAN_REVISION=2.6.32.3-seb-10.00.Custom modules_image
for module in /usr/src/modules/nvidia-kernel ; do
if test -d $module; then
(cd $module;
if ./debian/rules KVERS=“2.6.32.3-seb” KSRC="/usr/src/linux"
KMAINT=“Unknown Kernel Package Maintainer” KEMAIL=“unknown@unconfigured.in.etc.kernel-pkg.conf”
KPKG_DEST_DIR="/usr/src/linux/…"
KPKG_MAINTAINER=“Unknown Kernel Package Maintainer”
KPKG_EXTRAV_ARG=""
ARCH=“i386”
KDREV=“2.6.32.3-seb-10.00.Custom” kdist_image; then
echo “Module $module processed fine”;
else
echo “Module $module failed.”;
if [ “X” != “X” ]; then
echo “Perhaps $module does not understand --rootcmd?”;
echo “If you see messages that indicate that it is not”;
echo "in fact being built as root, please file a bug ";
echo “against $module.”;
fi;
echo “Hit return to Continue”;
read ans;
fi;
);
else
echo “Module $module does not exist”;
echo “Hit return to Continue?”;
fi;
done
make[1]: entrant dans le répertoire « /usr/src/modules/nvidia-kernel »
echo "ROOT_CMD = "
ROOT_CMD =
/usr/bin/make -w -f debian/rules binary_modules
make[2]: entrant dans le répertoire « /usr/src/modules/nvidia-kernel »

select which makefile to use.

rm -f /usr/src/modules/nvidia-kernel/Makefile || true
if [ 6 = 6 ]; then
ln -s Makefile.kbuild Makefile ;
fi
if [ 6 = 4 ]; then
ln -s Makefile.nvidia Makefile ;
fi
if ! gcc-4.3 -v 2> /dev/null ; then
echo “Compiler gcc-4.3 does not exist on the system” ;
exit 1;
fi
if [ -f /usr/src/modules/nvidia-kernel/debian/control.template ]; then
cp /usr/src/modules/nvidia-kernel/debian/control.template /usr/src/modules/nvidia-kernel/debian/control;
fi
if [ “i686” = “x86_64” ]; then
cp /usr/src/modules/nvidia-kernel/nv-kernel.o.x86_64 /usr/src/modules/nvidia-kernel/nv-kernel.o ;
fi
touch configure-stamp
dh_testdir
dh_testroot
PATCHLEVEL = 6
Kernel compiler version : 4.3.2
Detected compiler version : 4.3.2
Using compiler gcc-4.3 version 4.3.2
touch /usr/src/modules/nvidia-kernel//gcc-check
touch /usr/src/modules/nvidia-kernel//cc-sanity-check

Main Make

IGNORE_CC_MISMATCH=1 CC=“gcc-4.3” /usr/bin/make -C /usr/src/modules/nvidia-kernel/ -f Makefile SYSSRC=/usr/src/linux KBUILD_PARAMS="-C /usr/src/linux SUBDIRS=/usr/src/modules/nvidia-kernel" module;
make[3]: entrant dans le répertoire « /usr/src/modules/nvidia-kernel »
NVIDIA: calling KBUILD…
make CC=gcc-4.3 -C /usr/src/linux SUBDIRS=/usr/src/modules/nvidia-kernel modules
make[4]: entrant dans le répertoire « /usr/src/linux-headers-2.6.32.3-seb »
Building modules, stage 2.
MODPOST 0 modules
make[4]: quittant le répertoire « /usr/src/linux-headers-2.6.32.3-seb »
NVIDIA: left KBUILD.
nvidia.ko failed to build!
make[3]: *** [module] Erreur 1
make[3]: quittant le répertoire « /usr/src/modules/nvidia-kernel »
make[2]: *** [build-stamp] Erreur 2
make[2]: quittant le répertoire « /usr/src/modules/nvidia-kernel »
make[1]: *** [kdist_image] Erreur 2
make[1]: quittant le répertoire « /usr/src/modules/nvidia-kernel »
Module /usr/src/modules/nvidia-kernel failed.
Hit return to Continue
[/code]

Au secours!!!

PS : ça vole un portable Asus? :smiling_imp:

Salut,

Alors que notre distribution “s’amuse” à obligatoirement désinstaller sur le noyau précédent avant d’installer sur le suivant, toi tu espères arriver à faire le contraire !
Je te souhaite bonne chance :slightly_smiling:

C’est à dire?
Pas compris…

Je vois bien qu’il y a un soucis entre les deux noyaux…
Mais j’essaie de comprendre et en suivant ce que dit fran.b

[quote]Ne pas confondre:

  • Tu as le module noyau pour ta carte

  • Le driver nvidia pour xorg

  • Les librairies graphiques spécifiques.

  • Ce que apt croit avoir chargé.

  • Tu peux faire fonctionner un module plus récent avec des librairies plus anciennes.

  • apt n’est au courant que de la version du paquet que tu as installé.

  • Tout ce que tu fais hors d’apt (entre autres les manips de .run sont ignorées par apt…[/quote]
    Je ne vois pas où ce que je fais ça coince.
    De plus, ma distrib est propre! Installée, compilation du nouveau noyau dans la foulée, je boot dessus et j’en suis là!
    Je ne comprends donc pas ton dernier message… :frowning:

[quote=“ggoodluck47”]Salut,

Alors que notre distribution “s’amuse” à obligatoirement désinstaller sur le noyau précédent avant d’installer sur le suivant, toi tu espères arriver à faire le contraire !
Je te souhaite bonne chance :slightly_smiling:[/quote]
+1 et la manip que j’expliquais dans mon précédent post montrait comment eviter ça.

NB: sebb13, tu devrais tenter avec le script smxi. pour moi ça a fonctionné à la perfection.

Salut L0u!$ et merci pour ta réponse, mais je n’arrive pas à compiler le module!
Et je ne comprends toujours pas :

Si l’on pouvais m’expliquer une bonne fois pour toute … Je pourrais m’endormir moins bête est arrêter de galérer à cause de quelque chose qui visiblement est évident mais à côté duquel je passe…

S’il vous plait… J’aimerais comprendre…

Pas compris le message de goodluck, il est tout à fait possible d’avoir plusieurs noyaux sur une machine, je ne suis pas sûr que pendant une mise à jour le noyau précédent soit désinstallé, je suis même sûr du contraire:

ii linux-image-2.6-686 2.6.26+17+lenny1 Linux 2.6 image on PPro/Celeron/PII/PIII/P4 ii linux-image-2.6.26-1-686 2.6.26-10 Linux 2.6.26 image on PPro/Celeron/PII/PIII/P4 ii linux-image-2.6.26-2-686 2.6.26-17lenny2 Linux 2.6.26 image on PPro/Celeron/PII
Ce n’est que lorsque les changements sont minimes (pas de changement de mineure) que l’ancien remplace le nouveau (les nouveaux modules sont utilisables avec l’ancien noyau).

Ici le mùdule ne se compile pas sur ton noyau, tu as mis les headers mais c’est incomplet en général. Qu’as tu installé comme paquet header? Il n’y a pas un log produit dans /var/log/?

Salut,

Ce n’est pas plusieurs noyaux mais la présence de Nvidia sur plusieurs noyaux à la fois qui me parait difficile au point que les développeurs de SGFXI se sont donnés le mal d’écrire une routine faisant systématiquement le ménage sur les noyaux présents avant d’installer sur le noyau spécifié :slightly_smiling:

Alors que notre distribution “s’amuse” à obligatoirement désinstaller sur le noyau précédent avant d’installer sur le suivant, toi tu espères arriver à faire le contraire !

Bonjour tout le monde!

Bein j’ai installé le kernel-headers issu de la compilation de mon noyau

Visiblement non

drwxr-xr-x 2 root root 4096 jan 14 18:14 apt -rw-r--r-- 1 root root 32610 jan 14 18:29 aptitude -rw-r----- 1 root adm 28046 jan 16 12:47 auth.log -rw-r----- 1 root adm 31 jan 14 18:13 boot -rw-rw-r-- 1 root utmp 0 jan 14 18:13 btmp drwxr-xr-x 2 root root 4096 jan 15 11:53 cups -rw-r----- 1 root adm 87029 jan 16 10:50 daemon.log -rw-r----- 1 root adm 92897 jan 16 10:50 debug -rw-r----- 1 root adm 41927 jan 16 10:45 dmesg -rw-r----- 1 root adm 41900 jan 15 22:47 dmesg.0 -rw-r----- 1 root adm 11578 jan 15 16:55 dmesg.1.gz -rw-r----- 1 root adm 11814 jan 15 14:25 dmesg.2.gz -rw-r----- 1 root adm 11574 jan 15 13:20 dmesg.3.gz -rw-r----- 1 root adm 11638 jan 15 11:19 dmesg.4.gz -rw-r----- 1 root adm 695728 jan 16 10:55 dpkg.log drwxr-s--- 2 Debian-exim adm 4096 jan 15 11:53 exim4 -rw-r--r-- 1 root root 24024 jan 16 10:55 faillog -rw-r--r-- 1 root root 1414 jan 14 18:40 fontconfig.log drwxr-xr-x 2 root root 4096 jan 14 18:13 fsck drwxr-xr-x 2 root root 4096 jan 16 10:46 gdm drwxr-xr-x 3 root root 4096 jan 14 18:47 installer -rw-r----- 1 root adm 514833 jan 16 11:23 kern.log -rw-rw-r-- 1 root utmp 292292 jan 16 10:55 lastlog -rw-r----- 1 root adm 0 jan 14 18:47 lpr.log -rw-r----- 1 root adm 0 jan 14 18:47 mail.err -rw-r----- 1 root adm 0 jan 14 18:47 mail.info -rw-r----- 1 root adm 0 jan 14 18:47 mail.log -rw-r----- 1 root adm 0 jan 14 18:47 mail.warn -rw-r----- 1 root adm 432476 jan 16 11:23 messages drwxr-xr-x 2 root root 4096 jan 14 18:47 news drwxr-x--- 2 privoxy adm 4096 jan 16 10:55 privoxy -rw-r--r-- 1 root root 0 jan 14 18:30 pycentral.log -rw-r----- 1 root adm 396518 jan 16 12:17 syslog -rw-r----- 1 root adm 222146 jan 15 11:24 syslog.1 drwxr-s--- 2 debian-tor adm 4096 jan 16 10:55 tor drwxr-xr-x 2 root root 4096 jun 14 2008 unattended-upgrades -rw-r----- 1 root adm 8940 jan 16 10:50 user.log -rw-rw-r-- 1 root utmp 100608 jan 16 10:54 wtmp -rw-r--r-- 1 root root 32149 jan 16 12:47 Xorg.0.log -rw-r--r-- 1 root root 32259 jan 16 02:01 Xorg.0.log.old

@ggoodluck47

Je l’ai déjà dis! Je n’ai RIEN installé en nvidia sur le 2.6.26 !!!

Merci pour vos réponses

Re,

[quote]
Carte graphique sur plusieurs noyaux différents[/quote]

Excuse moi je croyais répondre à ce post :smiley: :smiley: :smiley:

Certes, mais visiblement ce n’est pas possible…
Enfin les avis diverges (et 10 verges c’est énorme!) je ne sais plus trop quoi en penser…
Toujours est-il que je n’arriva pas à installer cette à@£%µ& de carte graphique sur mon nouveau noyau :frowning:
… j’aimerais vraiment comprendre pourquoi…

edit : enfin… en lançant le .run, ça marche!
Mais ouvrir un terminal, taper ./leScriptQuiVaBien.run, ça n’apprend pas grand chose… :smt102

Le script .run installe le module et les fichiers dont je t’ai fait la liste.

Ce qu’il y a de surprenant, c’est que les commandes et l’environnement sont identiques. Le .run est fait sous root, quand tu fais le make, es tu root? sin non (ce qui est une bonn e chose), as tu les droits d’écriture dans le répertoire courant et de lecture dans les headers?

Oui, je fais tout ça en root.
J’ai lu (bon pour de la compilation du noyau) qu’il était préférable de créer un utilisateur dans le groupe src pour éviter de faire cela en root.
Ceci dit, je ne vois pas vraiment les risques pour ce type d’opération (d’être en root) et il n’y a qu’un tuto (sur tous ceux que j’ai pu consulter) qui préconisait ça. (je m’égare un peu là)

edit :

Oui, mais je lis partout que c’est crade et quasi irrémédiable (écrase les anciennes librairies) et ma démarche et je le répète didactique. Je veux comprendre ce que je fais, les différentes étapes, pourquoi je fais ça dans cette ordre et pas dans un autre etc…

Bon, tu peux éventuellement ne faire que l’installation du module et c’est tout en faisant:

./NVIDIA-Linux-x86_64-185.18.36-pkg2.run -a -K

(-a accepte la licence, -K ne fait que le module). As tu toujours des erreurs là?

Oui.

Ce qui se tient puisque je n’ai effectivement rien installé.
Petite question tant que j’y suis, les paquets Nvidia comme nvidia-kernel-common, nvidia-kernel-source sont ils nécessaires? Ils sont installé là, mais j’aimerais connaitre leur rapport avec le .run

Pour info, c’est le NVIDIA-Linux-x86-190.53-pkg1.run que j’utilise (du moins que j’essaie d’utiliser…)

Ces paquets avec nvidia-glx constituent ce qu’installe le .run. Le .run a deux inconvénients:

  1. Le système (apt) ne sait pas qu’il y a une carte nvidia.
  2. Des fichiers libGL.so par exemple ont été écrasés par le .run. Si tu mets à jour le paquets mesa, ces fichiers seront de nouveau écrasés et ton accélération 3D ne marchera plus. (Note qu’il suffit dans ce cas de recommencer le .run mais bon, ça pose des soucis). Le paquet nvidia-glx fait des diversions autrement dit apt sait que libGL.so a été renommé en libGL.so.org et remplacé par un libGL.so venant de Nvidia. Si une mise à jour est faite, c’est le fichier libGL.so.org qui sera modifié.
    Voilà le pbm.

Vers quoi pointe /lib/modules/uname -r/build ?

/usr/src/linux-2.6.32.3
Les sources

[quote]Ces paquets avec nvidia-glx constituent ce qu’installe le .run. Le .run a deux inconvénients:

  1. Le système (apt) ne sait pas qu’il y a une carte nvidia.
  2. Des fichiers libGL.so par exemple ont été écrasés par le .run. Si tu mets à jour le paquets mesa, ces fichiers seront de nouveau écrasés et ton accélération 3D ne marchera plus. (Note qu’il suffit dans ce cas de recommencer le .run mais bon, ça pose des soucis). Le paquet nvidia-glx fait des diversions autrement dit apt sait que libGL.so a été renommé en libGL.so.org et remplacé par un libGL.so venant de Nvidia. Si une mise à jour est faite, c’est le fichier libGL.so.org qui sera modifié.
    Voilà le pbm.[/quote]

Merci pour ces explications! :slightly_smiling: