カーネル 5.15 を搭載した Ubuntu 20.04 - NVidia ドライバーをインストールするにはどうすればいいですか?

カーネル 5.15 を搭載した Ubuntu 20.04 - NVidia ドライバーをインストールするにはどうすればいいですか?

Ubuntu 20.04で更新されたカーネルを使用してNVidiaドライバーをインストールする推奨方法は何ですか?apt経由でのインストールは機能しません。インストールの最後に次のエラーが表示されます。

# 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.
...

私のハードウェアに関する情報は次のとおりです (私の知る限り、ラップトップは Lenovo P15S Gen1 です)

# 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

現在、私は Intel GPU を使用していますが、これは問題ありません。しかし、専用の NVidia GPU を常に持ち歩いて使用しないのは避けたいと思っています。

調べてみると/var/lib/dkms/nvidia/495.44/build/make.logファイルの最後にこれがある

/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

古いドライバーでも同じ問題が発生しました。メインライン カーネルでは少なくとも glibc v2.33 が必要のようですが、これは現時点では Ubuntu 21.04 でのみ利用可能です。

答え1

解決策は次のとおりです。私の投稿からわかるように、make.log ファイルには glibc >= 2.33 が必要であると記載されていますが、Ubuntu 20.04 では glibc 2.31 ( ldconfig --version) が使用されています。

のためNmathのコメントを読んで一晩考えた後、1080 Ti GPU を搭載した Ubuntu 20.04 を実行しているワークステーションで、どのカーネルが Nvidia ドライバーで動作しているかを確認しました。私の場合、現時点ではカーネル バージョン です5.11.0-40-generic。このカーネルで起動した後、メインライン アプリケーション経由でインストールしたすべての新しいカーネルを削除しました。次の再起動後、コマンド経由で最新の Nvidia ドライバーをインストールしましたsudo apt install nvidia-driver-495。元のカーネルは glibc 2.31 を使用してビルドされているため、今回はドライバーのインストールは問題なく動作しました。

その後、起動後に黒い画面が表示されました。Ctrl+ Alt+経由でターミナルに切り替えましたF2。ターミナルに入ったら、 経由で xorg.conf ファイルをバックアップしsudo mv /etc/X11/xorg.conf /etc/X11/xorg.conf.bak、 および で nvidia ドライバーがブラックリストに登録されていないことを確認しました/etc/modprobe.d//lib/modprobe.d/最後に、 経由でsudo prime-select intelIntel ドライバーに切り替え、 経由でsudo prime-select nvidianvidia ドライバーに戻しました。もう一度再起動すると、うまくいきました。

答え2

aptリポジトリ経由のインストールは失敗しますが、公式ドライバーページからインストールすることは可能です。

  1. 適切なドライバーを選択してくださいここ
  2. (セキュアブートを使用している場合)インストールの手順に従ってくださいここ
  3. システムを再起動し、ドライバーをMOKに登録するために作成したパスワードを入力します。

関連情報