nvidia関連のドライバーが依存の問題でアップデートできない時の解決法

2023年11月9日に普通にアップデートしたら以下の問題が発生しました。
環境はUbuntu 22.04です。

$ sudo apt update
---(中略)---
これらを直すためには 'apt --fix-broken install' を実行する必要があるかもしれません。
以下のパッケージには満たせない依存関係があります:
 nvidia-dkms-535 : 依存: nvidia-kernel-common-535 (= 535.129.03-0ubuntu1) しかし、535.129.03-0ubuntu0.22.04.1 はインストールされています
 nvidia-driver-535 : 依存: nvidia-compute-utils-535 (= 535.129.03-0ubuntu1) しかし、535.129.03-0ubuntu0.22.04.1 はインストールされています
                     推奨: libnvidia-gl-535:i386 (= 535.129.03-0ubuntu1)
E: 未解決の依存関係です。'apt --fix-broken install' を実行してみてください (または解法を明示してください)。

nvidia-dkms-535 が nvidia-kernel-common-535 に依存しているとあります。
よくみると、
nvidia-kernel-common-535は
535.129.03-0ubuntu1 が必要なようですが、 535.129.03-0ubuntu0.22.04.1がインストールされていると言われています。

バージョンの小さな違いがエラーを引き起こしているようです。

まずは、メッセージに従ってsudo apt –fix-broken install を実行しました。

$ sudo apt --fix-broken install
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています... 完了        
状態情報を読み取っています... 完了        
依存関係を解決しています ... 完了
以下の追加パッケージがインストールされます:
  nvidia-compute-utils-535 nvidia-kernel-common-535
以下のパッケージはアップグレードされます:
  nvidia-compute-utils-535 nvidia-kernel-common-535
アップグレード: 2 個、新規インストール: 0 個、削除: 0 個、保留: 4 個。
3 個のパッケージが完全にインストールまたは削除されていません。
38.6 MB 中 0 B のアーカイブを取得する必要があります。
この操作後に追加で 61.8 MB のディスク容量が消費されます。
続行しますか? [Y/n] 
(データベースを読み込んでいます ... 現在 382086 個のファイルとディレクトリがイン
ストールされています。)
.../nvidia-kernel-common-535_535.129.03-0ubuntu1_amd64.deb を展開する準備をして
います ...
nvidia-kernel-common-535 (535.129.03-0ubuntu1) で (535.129.03-0ubuntu0.22.04.1 
に) 上書き展開しています ...
dpkg: アーカイブ /var/cache/apt/archives/nvidia-kernel-common-535_535.129.03-0ub
untu1_amd64.deb の処理中にエラーが発生しました (--unpack):
 '/lib/firmware/nvidia/535.129.03/gsp_ga10x.bin' を上書きしようとしています。こ
れはパッケージ nvidia-firmware-535-535.129.03 535.129.03-0ubuntu0.22.04.1 にも存
在します
dpkg-deb: エラー: ペースト subprocess was killed by signal (Broken pipe)
.../nvidia-compute-utils-535_535.129.03-0ubuntu1_amd64.deb を展開する準備をして
います ...
nvidia-compute-utils-535 (535.129.03-0ubuntu1) で (535.129.03-0ubuntu0.22.04.1 
に) 上書き展開しています ...
dpkg: アーカイブ /var/cache/apt/archives/nvidia-compute-utils-535_535.129.03-0ub
untu1_amd64.deb の処理中にエラーが発生しました (--unpack):
 '/usr/bin/nvidia-powerd' を上書きしようとしています。これはパッケージ nvidia-ke
rnel-common-535 535.129.03-0ubuntu0.22.04.1 にも存在します
dpkg-deb: エラー: ペースト subprocess was killed by signal (Broken pipe)
処理中にエラーが発生しました:
 /var/cache/apt/archives/nvidia-kernel-common-535_535.129.03-0ubuntu1_amd64.deb
 /var/cache/apt/archives/nvidia-compute-utils-535_535.129.03-0ubuntu1_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

となってうまくいきません。

どうしたらいいか調べていたら、この記事を見つけました。

sudo dpkg -i --force-overwrite /var/cache/apt/archives/nvidia-kernel-common-535_535.129.03-0ubuntu1_amd64.deb

をした後に sudo apt –fix-broken install をすればいいと書いてあります。

ただ、私の環境では、これを見つける前にsudo apt clean をしていたためか、該当するdebファイルがありませんでした。

このdebファイルは、nvidiaのウェブサイトから入手できます。
以下、特定のバージョンのファイルへのリンクは貼らないことにします。その時その時でバージョンが違う可能性があるからです。エラーメッセージからバージョンをよく確認したうえで、該当するものをダウンロードしてください。

問題を起こした私の環境はUbuntu 22.04だったので、

https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/

にいって、
nvidia-kernel-common-535_535.129.03-0ubuntu1_amd64.deb

をホームディレクトリの下のDownloadsにダウンロードしました。

Ubuntu 20.04 の方の場合は、nvidiaのリンクは以下になります。

https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/

ここから、
nvidia-kernel-common-535_535.129.03-0ubuntu1_amd64.deb もしくは、ご自身のエラーメッセージに該当するファイルをダウンロードしてください。

そのうえで以下を実行しました。

$ cd ~/Downloads
$ sudo dpkg -i --force-overwrite ./nvidia-kernel-common-535_535.129.03-0ubuntu1_amd64.deb
(データベースを読み込んでいます ... 現在 382086 個のファイルとディレクトリがインストールされています。)
.../nvidia-kernel-common-535_535.129.03-0ubuntu1_amd64.deb を展開する準備をしています ...
nvidia-kernel-common-535 (535.129.03-0ubuntu1) で (535.129.03-0ubuntu0.22.04.1 に) 上書き展開しています ...
dpkg: 警告: --force が有効なので、問題を無視します:
dpkg: 警告: '/lib/firmware/nvidia/535.129.03/gsp_ga10x.bin' を上書きしようとしています。これはパッケージ nvidia-firmware-535-535.129.03 535.129.03-0ubuntu0.22.04.1 にも存在します
dpkg: 警告: --force が有効なので、問題を無視します:
dpkg: 警告: '/lib/firmware/nvidia/535.129.03/gsp_tu10x.bin' を上書きしようとしています。これはパッケージ nvidia-firmware-535-535.129.03 535.129.03-0ubuntu0.22.04.1 にも存在します
nvidia-kernel-common-535 (535.129.03-0ubuntu1) を設定しています ...
update-initramfs: deferring update (trigger activated)
initramfs-tools (0.140ubuntu13.4) のトリガを処理しています ...
update-initramfs: Generating /boot/initrd.img-6.2.0-36-generic

お、上書きされたようです。

そのうえで、再度、sudo apt –fix-broken install を実行します。

$ sudo apt --fix-broken install
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています... 完了        
状態情報を読み取っています... 完了        
依存関係を解決しています ... 完了
以下の追加パッケージがインストールされます:
  nvidia-compute-utils-535
以下のパッケージはアップグレードされます:
  nvidia-compute-utils-535
アップグレード: 1 個、新規インストール: 0 個、削除: 0 個、保留: 4 個。
3 個のパッケージが完全にインストールまたは削除されていません。
286 kB のアーカイブを取得する必要があります。
この操作後に追加で 614 kB のディスク容量が消費されます。
続行しますか? [Y/n] 
(中略)
libnvidia-extra-535:amd64 (535.129.03-0ubuntu1) を設定しています ...
nvidia-driver-535 (535.129.03-0ubuntu1) を設定しています ...
man-db (2.10.2-1) のトリガを処理しています ...
dbus (1.12.20-2ubuntu4.1) のトリガを処理しています ...
libc-bin (2.35-0ubuntu3.4) のトリガを処理しています ...
initramfs-tools (0.140ubuntu13.4) のトリガを処理しています ...
update-initramfs: Generating /boot/initrd.img-6.2.0-36-generic

これで問題が解決しました。

nvidia-kernelのバージョン違いが問題を引き起こしていたようです。dpkg -i –force-overwrite を使うことで解決できました。

結構これで困っている方は多いと思うので、共有しておきます。

グラフィックカードの出力が全くうつらなくなった時にはDisplay Portを疑うのもひとつ

現在、GPUでの機械学習ができる環境を構築しています。
様々な試行錯誤があるので、これはこれで別の記事になるのですが、
非常に困ったことが起こりました。

NVIDIAのGeForce RTX2070というグラフィックボードを入手したのですが、

Linux (Lin4Neuro based on Ubuntu 18.04)のインストールまでは全く問題ないのですが、NVIDIAのドライバーをインストールすると、再起動後、画面が全くうつらなくなるのです。
そして、Ctrl+Alt+Deleteも受け付けなくなり、ハードリセットしか方法がなくなります。

折角よい性能のグラフィックボードを入手したのにどうしてうつらなくなってしまうんだろうとネットの情報を探しまくりましたがなかなか情報が見つかりませんでした。
1ヶ月、問題が解決しませんでした…。

そのような中、ふと「ソフトがダメならハードか?」と思いました。

Display Portを使って画面を出力していましたが、HDMIに変えてみたらどうだろうと思い、変えてみたところ、あっさりうつりました…。

“NVIDIA” “Display Port” “Black screen”で調べると情報がちらほら出てきました。
やらなきゃいけないことがたくさんあるので、これ以上の調査はしないでおきますが、

今日の結論は、「画像の出力がおかしかったらDisplay PortをHDMIに切り替えてみよう」ということでした。

How to install official NVIDIA drivers on Xubuntu 14.04

(I wrote this post originally in Japanese, but this post may be helpful universally, so re-write in English.)

I got a new PC with NVIDIA GeForce GTX 750 Ti in December 2014.

At that time nvidia-current did not support GTX750Ti, so I needed to install drivers from nvidia website. However, some tweaks were needed to get things done, so I drop a note how to install NVIDIA drivers without much pain.

続きを読む

Xubuntu 14.04にNVIDIAの最新ドライバーをインストールする方法(Xubuntuをテキストモードで起動させる方法)

先日、新しいデスクトップマシンが職場に到着しました。
早速、Lin4Neuro-14.04をインストールしたところ、画面解像度が1280×1024までしかでなく、悲しいことに…。

グラフィックボードはNVIDIA GeForce GTX 750 Tiが搭載されています。

Ubuntuのnvidia-currentではまだ未対応であることから、本家のサイトからドライバーをインストールすることとしましたが、ひと手間だったので、その経過をまとめます。

続きを読む