[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [déjà vu ?] nvidia propriétaire et framebuffer



Bonjour,

Nicolas Folin a écrit :
Merci de toutes vos réponses, elles m'ont aidé.

J'ai eu plusieurs cas de figure, et entre autre chose je liste
les résultats "dont je pense pouvoir dire qu'ils sont réguliers et
reproductibles"

1- ma configuration actuelle est un noyau 2.6.20.7 "customisé",
les seuls modules compilés (en dur - bien/mal ?) sont vgafb et vesafb -
désolé
s'ils ne s'appellent pas comme ça. À ce jour, je n'ai plus accès à la
console,
mais je n'ai pas essayé d'autres résolutions que le 800x600x16 (qui
fonctionne,
je l'ai déjà eu devant moi).
Le driver nvidia propriétaire est le 100.14.11
et splashy fonctionne (secondaire)

Dans mon grand ménage des options du noyau, aurais-je enlevé une
option primordiale pour l'affichage de la console ? Y a-t-il un moyen
de changer la résolution du framebuffer depuis un terminal X ?


2- Il apparaît une "incompatibilité" entre les noyaux 2.6.23 et 2.6.23.1
et les
drivers de nvidia 100.14.11 et 1.0.9755 - ces dernier ne compilent pas les
modules du tout (ce n'est pas l'installation mais bien la compilation qui ne
fonctionne pas)
Auriez-vous déjà rencontré ce genre de problème ?

Concernant ce problème, j'ai trouvé un patch à appliquer au driver 100.14.11 je me permet de le joindre à cette réponse.
pour l'appliquer:
sh NVIDIA-Linux-x86_64-100.14.11-pkg2.run --extract-only --target=nvsrc/
cd nvsrc
patch -p1 < chemin/vers/le/patch
nvidia-installer

Chez moi ça a réglé le problème impecablement
Je retourne à TFM en attendant les (éventuelles) réponses...

Amicalement
Nicolas Folin


Nicolas Folin a écrit :
Excusez-moi si la question est commune, mais j'ai un peu de mal à
trouver des infos ET à
les comprendre sur le net.

Avec une debian etch (et propre, pas de backports) et les pilotes nvidia
propriétaires 97.55,
j'ai tout qui fonctionne sans framebuffer.

Je n'en ai jamais eu l'utilité ni le besoin, c'est juste pour pouvoir
dire "je l'ai fait, je l'ai"

Je me suis donc mis à lire des docs là dessus, et:

- j'ai recompilé mon noyau avec l'option "framebuffer pour nvidia" (je
sais plus où, c'est le module nvidiafb).
- Dans /boot/grub/menu.lst j'ai rajouté vga=0x314 (je ne sais plus à
quoi il correspond, mais ça passe)

1- d'abord j'ai juste mis la ligne dans menu.lst et rebooté: l'affichage
est bruité, le passage à X se fait correctement
2- j'ai recompilé mais j'ai du oublié de mettre "nvidiafb". Le démarrage
est noir, le passage à X se fait correctement
Je change ma version de noyau (je passe du 2.6.21 au 2.6.23, c'est pour
avoir le dernier)
3- j'ai recompilé avec l'option "nvidiafb", je viens de la voir. Le
démarrage est en mode graphique, et même
"splashy" fonctionne (l'écran de démarrage avec tux). Par contre, le
passage d'une console à une autre
n'est pas exempt de trucs hasardeux. Pendant une compilation du noyau,
j'ai lancé un divx sur une autre
console. Impossible de quitter mplayer ni de changer de console.
Ensuite, pas de passage à X--> normal, changement de noyau, donc
re-installation du driver. Et là,
il me dit que "nvidiafb entre en conflit avec le pilote nvidia, il faut
recompiler sans le support nvidiafb"
4- je recompile sans nvidiafb, ça n'affiche rien, et comme je n'ai pas
de X, je dois taper les commandes
"dans le noir" pour installer les drivers nvidia.

Bon, ma question est:
Est-il possible d'utiliser le framebuffer ET les driver propriétaires de
nvidia en même temps ?
(Oui, j'ai besoin des drivers propriétaires pour l'accélération 3D)
Dois-je préférer un framebuffer VESA ? et je dois faire comment pour en
imposer un plutôt
qu'un autre alors ?
Est-il possible d'avoir nvidiafb en module et de le charger au démarrage
? (Je passe par un initrd-
j'ai cru comprendre que c'était 'mal', ou qu'il y a mieux, mais c'est la
seule façon qui fonctionne chez moi)


En vous remerciant par avance
Amicalement
Nicolas Folin





Only in extracted-100.14.11/usr/src/nv: .nv.o.d
Only in extracted-100.14.11/usr/src/nv: .tmp_versions
Only in extracted-100.14.11/usr/src/nv: Makefile
diff -c -r original-nvidia-100.14.11/usr/src/nv/nv-linux.h extracted-100.14.11/usr/src/nv/nv-linux.h
*** original-nvidia-100.14.11/usr/src/nv/nv-linux.h	Wed Jun 13 21:59:58 2007
--- extracted-100.14.11/usr/src/nv/nv-linux.h	Sat Jul 21 18:13:10 2007
***************
*** 533,539 ****
  #define NV_KMEM_CACHE_CREATE(kmem_cache, name, type)            \
      {                                                           \
          kmem_cache = kmem_cache_create(name, sizeof(type),      \
!                         0, 0, NULL, NULL);                      \
      } 
  
  #define NV_KMEM_CACHE_DESTROY(kmem_cache)                       \
--- 533,539 ----
  #define NV_KMEM_CACHE_CREATE(kmem_cache, name, type)            \
      {                                                           \
          kmem_cache = kmem_cache_create(name, sizeof(type),      \
!                         0, 0, NULL);                      \
      } 
  
  #define NV_KMEM_CACHE_DESTROY(kmem_cache)                       \
diff -c -r original-nvidia-100.14.11/usr/src/nv/nv.c extracted-100.14.11/usr/src/nv/nv.c
*** original-nvidia-100.14.11/usr/src/nv/nv.c	Wed Jun 13 21:59:58 2007
--- extracted-100.14.11/usr/src/nv/nv.c	Sat Jul 21 18:13:51 2007
***************
*** 1566,1573 ****
          if (apm_nv_dev[i] != NULL) pm_unregister(apm_nv_dev[i]);
  #endif
  
!     if (unregister_chrdev(nv_major, "nvidia") < 0)
!         nv_printf(NV_DBG_ERRORS, "NVRM: unregister nv chrdev failed\n");
  
      for (i = 0; i < num_nv_devices; i++)
      {
--- 1566,1573 ----
          if (apm_nv_dev[i] != NULL) pm_unregister(apm_nv_dev[i]);
  #endif
  
!     unregister_chrdev(nv_major, "nvidia");
!       //        nv_printf(NV_DBG_ERRORS, "NVRM: unregister nv chrdev failed\n");
  
      for (i = 0; i < num_nv_devices; i++)
      {
***************
*** 1598,1605 ****
  
      nv_printf(NV_DBG_INFO, "NVRM: nvidia_exit_module\n");
  
!     if (unregister_chrdev(nv_major, "nvidia") < 0)
!         nv_printf(NV_DBG_ERRORS, "NVRM: unregister nv chrdev failed\n");
  
      for (i = 0; i < num_nv_devices; i++)
      {
--- 1598,1604 ----
  
      nv_printf(NV_DBG_INFO, "NVRM: nvidia_exit_module\n");
  
!     unregister_chrdev(nv_major, "nvidia");
  
      for (i = 0; i < num_nv_devices; i++)
      {
Only in extracted-100.14.11/usr/src/nv: nv.c~
Only in extracted-100.14.11/usr/src/nv: nv_compiler.h

Reply to: