web-dev-qa-db-fra.com

Ubuntu 20.04 avec noyau 5.15 - Comment installer le pilote NVIDIA?

Quelle est la manière recommandée d'installer NVIDIA Pilotes avec un noyau mis à jour sur Ubuntu 20.04? L'installation via APT ne fonctionne pas. Je reçois une erreur suivante à la fin de l'installation

# Sudo apt install nvidia-driver-495 -y
...
...
Building for 5.15.1-051501-generic
Building for architecture x86_64
Building initial module for 5.15.1-051501-generic
ERROR (dkms apport): kernel package linux-headers-5.15.1-051501-generic is not supported
Error! Bad return status for module build on kernel: 5.15.1-051501-generic (x86_64)
Consult /var/lib/dkms/nvidia/495.44/build/make.log for more information.
dpkg: error processing package nvidia-dkms-495 (--configure):
 installed nvidia-dkms-495 package post-installation script subprocess returned error exit status 10
dpkg: dependency problems prevent configuration of nvidia-driver-495:
 nvidia-driver-495 depends on nvidia-dkms-495 (<= 495.44-1); however:
  Package nvidia-dkms-495 is not configured yet.
 nvidia-driver-495 depends on nvidia-dkms-495 (>= 495.44); however:
  Package nvidia-dkms-495 is not configured yet.

dpkg: error processing package nvidia-driver-495 (--configure):
 dependency problems - leaving unconfigured
No apport report written because the error message indicates its a followup error from a previous failure.
...

Voici quelques informations sur mon matériel (ordinateur portable est un Lenovo P15S Gen1 Afaik)

# uname -r
5.15.1-051501-generic

# lspci | grep -E "VGA|3D"
00:02.0 VGA compatible controller: Intel Corporation UHD Graphics (rev 02)
2d:00.0 3D controller: NVIDIA Corporation GP108GLM [Quadro P520] (rev a1)

# lscpu | grep -i model
Model name:                      Intel(R) Core(TM) i7-10510U CPU @ 1.80GHz
Model:                           142

Actuellement, je suis en cours d'exécution avec l'Intel GPU qui va bien, mais j'aimerais vraiment ne pas constamment transporter autour d'un GPU dédié NVIDIA sans l'utiliser.

Recherche dans /var/lib/dkms/nvidia/495.44/build/make.logJ'ai ceci à la fin du fichier

/var/lib/dkms/nvidia/495.44/build/nvidia/nv-dma.c:976: warning: "IMPORT_SGT_STUBS_NEEDED" redefined
  976 | #define IMPORT_SGT_STUBS_NEEDED 0
      | 
/var/lib/dkms/nvidia/495.44/build/nvidia/nv-dma.c:970: note: this is the location of the previous definition
  970 | #define IMPORT_SGT_STUBS_NEEDED 1
      | 
/var/lib/dkms/nvidia/495.44/build/nvidia/nv-mmap.c: In function ‘nv_encode_caching’:
/var/lib/dkms/nvidia/495.44/build/nvidia/nv-mmap.c:334:16: warning: this statement may fall through [-Wimplicit-fallthrough=]
  334 |             if (NV_ALLOW_CACHING(memory_type))
      |                ^
/var/lib/dkms/nvidia/495.44/build/nvidia/nv-mmap.c:337:9: note: here
  337 |         default:
      |         ^~~~~~~
scripts/basic/fixdep: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.33' not found (required by scripts/basic/fixdep)
scripts/basic/fixdep: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by scripts/basic/fixdep)
make[2]: *** [scripts/Makefile.build:277: /var/lib/dkms/nvidia/495.44/build/nvidia/nv-cray.o] Error 1
make[2]: *** Deleting file '/var/lib/dkms/nvidia/495.44/build/nvidia/nv-cray.o'
make[2]: *** Waiting for unfinished jobs....
scripts/basic/fixdep: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.33' not found (required by scripts/basic/fixdep)
scripts/basic/fixdep: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by scripts/basic/fixdep)
make[2]: *** [scripts/Makefile.build:277: /var/lib/dkms/nvidia/495.44/build/nvidia/nv-i2c.o] Error 1
make[2]: *** Deleting file '/var/lib/dkms/nvidia/495.44/build/nvidia/nv-i2c.o'
scripts/basic/fixdep: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.33' not found (required by scripts/basic/fixdep)
scripts/basic/fixdep: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by scripts/basic/fixdep)
make[2]: *** [scripts/Makefile.build:277: /var/lib/dkms/nvidia/495.44/build/nvidia/nv-p2p.o] Error 1
make[2]: *** Deleting file '/var/lib/dkms/nvidia/495.44/build/nvidia/nv-p2p.o'
scripts/basic/fixdep: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.33' not found (required by scripts/basic/fixdep)
scripts/basic/fixdep: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by scripts/basic/fixdep)
make[2]: *** [scripts/Makefile.build:277: /var/lib/dkms/nvidia/495.44/build/nvidia/nv-mmap.o] Error 1
make[2]: *** Deleting file '/var/lib/dkms/nvidia/495.44/build/nvidia/nv-mmap.o'
scripts/basic/fixdep: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.33' not found (required by scripts/basic/fixdep)
scripts/basic/fixdep: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by scripts/basic/fixdep)
make[2]: *** [scripts/Makefile.build:277: /var/lib/dkms/nvidia/495.44/build/nvidia/nv-pci.o] Error 1
make[2]: *** Deleting file '/var/lib/dkms/nvidia/495.44/build/nvidia/nv-pci.o'
scripts/basic/fixdep: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.33' not found (required by scripts/basic/fixdep)
scripts/basic/fixdep: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by scripts/basic/fixdep)
make[2]: *** [scripts/Makefile.build:277: /var/lib/dkms/nvidia/495.44/build/nvidia/nv-dma.o] Error 1
make[2]: *** Deleting file '/var/lib/dkms/nvidia/495.44/build/nvidia/nv-dma.o'
scripts/basic/fixdep: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.33' not found (required by scripts/basic/fixdep)
scripts/basic/fixdep: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by scripts/basic/fixdep)
make[2]: *** [scripts/Makefile.build:277: /var/lib/dkms/nvidia/495.44/build/nvidia/nv-acpi.o] Error 1
make[2]: *** Deleting file '/var/lib/dkms/nvidia/495.44/build/nvidia/nv-acpi.o'
scripts/basic/fixdep: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.33' not found (required by scripts/basic/fixdep)
scripts/basic/fixdep: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by scripts/basic/fixdep)
make[2]: *** [scripts/Makefile.build:277: /var/lib/dkms/nvidia/495.44/build/nvidia/nv.o] Error 1
make[2]: *** Deleting file '/var/lib/dkms/nvidia/495.44/build/nvidia/nv.o'
make[1]: *** [Makefile:1874: /var/lib/dkms/nvidia/495.44/build] Error 2
make[1]: Leaving directory '/usr/src/linux-headers-5.15.1-051501-generic'
make: *** [Makefile:80: modules] Error 2

J'ai eu le même problème avec les conducteurs plus âgés. Il semble que le noyau de la ligne principale nécessite que Glibc soit au moins v2.33 qui n'est disponible que dans Ubuntu 21.04 à partir de maintenant.

2
Alex_M

Voici la solution. Comme on peut le voir de mon message, le fichier make.log indique que glibc> = 2.33 est requis mais Ubuntu 20.04 utilise GLIBC 2.31 (ldconfig --version).

À cause de NMATH'S Commentaire et après avoir dormi une nuit dessus, j'ai vérifié sur mon poste de travail, qui exécute également Ubuntu 20.04 avec un GPU de 1080 Ti, quel noyau travaille avec le pilote Nvidia. Dans mon cas, c'est maintenant la version du noyau 5.11.0-40-generic. Après avoir démarré dans ce noyau, j'ai enlevé tous les nouveaux noyaux que j'avais installés via une application principale. Après le prochain redémarrage, j'ai installé le dernier pilote Nvidia via Sudo apt install nvidia-driver-495 commande. L'installation du pilote a fonctionné cette fois-ci sans problème car le noyau d'origine a été construit à l'aide de GLIBC 2.31.

Après cela, j'ai eu un écran noir après le démarrage. Je suis passé à un terminal via CtrlAltF2. Une fois dans le terminal, j'ai sauvegardé mon fichier xorg.conf via Sudo mv /etc/X11/xorg.conf /etc/X11/xorg.conf.bak et assurez-vous que les pilotes NVIDIA n'étaient pas sur la liste noire dans /etc/modprobe.d/ et /lib/modprobe.d/. Et enfin je suis passé via Sudo prime-select intel au pilote Intel et via Sudo prime-select nvidia Retour au pilote Nvidia. Après un autre redémarrage, cela a fonctionné.

0
Alex_M