debian の nvidia-graphics-drivers が古いまま(470.57.02 )でなかなか更新されないので,自力で 470.63.01 に更新しました.
470.57.02 はLinux-5.14をサポートしていませんが(モジュールがビルドできない), 470.63.01 ならLinux-5.14もサポートしています.
更新の手順(その1:ソースのダウンロードと展開)
まずapt-getでパッケージのソースを入手します
$ apt-get source nvidia-graphics-drivers
2021年9月16日の時点で nvidia-graphics-drivers のバージョンは 470.57.02 でした.
ソースのディレクトリに移動します
$ cd nvidia-graphics-drivers-470.63.01
uscanを使ってnvidiaが公開している最新版ドライバのバージョンを確認します
$ uscan --report
最新版は 470.63.01 でした
nvidiaのサイトから470.63.01のソースをダウンロードします
$ ./debian/rules get-orig-source
これで
nvidia-graphics-drivers_470.63.01.orig-amd64.tar.gz
nvidia-graphics-drivers_470.63.01.orig-arm64.tar.gz
が生成されます
生成されたファイルから *.run をとりだして,nvidia-graphics-drivers-470.63.01直下にあるamd64ディレクトリと arm64ディレクトリに runファイルをコピーします
このように配置されればOKです
$ ls a*64/ amd64/NVIDIA-Linux-x86-470.63.01.run arm64/NVIDIA-Linux-aarch64-470.63.01.run
更新の手順(その2:changelogの修正)
$ debchange --distribution local --newversion 470.63.01-1
- "distribution" は利用している環境に合わせます.
- "newversion"は "ドライバのバージョン番号"-"リリース番号"の形式になります
更新の手順(その3: ビルド)
$ dpkg-buildpackage -us -uc -rfakeroot
更新の手順(その4:パッケージの修正)
ビルドするとエラーが出ます.理由は, 470.63.01 で新たに導入されたライブラリlibnvidia-vulkan-producer.so.470.63.01 に対する設定が debian/* 以下に存在しないためです.
とりあえず libnvidia-vulkan-producer.so.470.63.01 は無視することにして,debian/not-installed.in に libnvidia-vulkan-producer.so.470.63.01を追記します.
これで libnvidia-vulkan-producer.so.470.63.01はインストールされなくなります*1.
更新の手順(その5: 再ビルド)
$ dpkg-buildpackage -us -uc -rfakeroot
今度はビルドが通りました
動作確認
生成された *.deb を通常通りにインストールするだけです
注意事項
上記の手順で問題なくXorgは起動し、opengl のプログラムも正常に動作しています.
ただし libnvidia-vulkan-producer.so.470.63.01 をインストールしていないので,何かのきっかけでエラーが出る可能性があります.不具合がある場合はdebian/not-installed.in を使わずに適切に libnvidia-vulkan-producer.so.470.63.01 をインストールするか,正式なパッケージが公開されるまで待ちましょう.
*1:豪快な方法ですがこれでも動作するので今回はこれで良しとしています