気づいたきっかけ
朝起きて、いつものように録画状況を確認しました。
そしたら、録画はできているものの、mp4にエンコードされていませんでいた。
EPGStationがうまく動いていないかもしれないと仮説をたてて、docker-composeをダウンし、再びアップしたら起動しないのです。
状況把握
まずは状況を把握します。
dockerコンテナ起動時のエラーメッセージ
dockerのコンテナを起動しようとすると、以下のエラーメッセージが出力されました。「driver/library version mismatch」とあるので、ドライバーが何らかの原因かもです。
ERROR: for epgstation Cannot start service epgstation: failed to create shim: OCI runtime create failed: runc create failed: unable to start container process: error during container init: error running hook #0: error running hook: exit status 1, stdout: , stderr: Auto-detected mode as 'legacy'
nvidia-container-cli: initialization error: nvml error: driver/library version mismatch: unknown
OSでnvidia-smi
dockerがダメなら、OSからnvidia-smi
したらどうなるかと試しました。上記のメッセージと同じですね。「Driver/library version mismatch」と出力されました。
nvidia-smi
Failed to initialize NVML: Driver/library version mismatch
rebootしたらどうなるか
リブートしたらもとに戻るかもしれないので、sudo reboot
してみます。
リブート後、再びnvidia-smi
してみました。出力されるメッセージが変わりました。「Make sure that the latest NVIDIA driver is installed and running.」とあるので、「最新のNVIDIAドライバーがインストールされてて、動いているか確認しろ!」と言われてます。
nvidia-smi
NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running.
原因の仮説:Ubuntuのパッケージアップデート
上記のメッセージから、「ドライバー」と言われているので、ドライバーの変化があったのではないかと予想しました。
で、振り返るとubuntuのアップデートをしたことを思い出しました。パッケージのアップデートが溜まっているとメッセージが出たいたので、パッケージをアップデートしたのです。これが原因なんじゃないかと考えました。
実際に新しいバージョンのドライバーを入れ直して、復旧したのでこれが原因だったと思います。
対処できるか、試した
以下で対処できるかを試しました。sudo apt upgrade
すると、できません。
sudo apt upgrade
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています... 完了
状態情報を読み取っています... 完了
これらを直すためには 'apt --fix-broken install' を実行する必要があるかもしれません。
‘apt –fix-broken install’ を実行する必要があるかもしれません。とあるので、実際にやってみます。
sudo apt --fix-broken install
ダメでした。
で、もう1回同じドライバーを入れればもとに戻るかもと期待して、sudo apt install nvidia-driver-515
を試しました。そうすると以下のように「以下のパッケージには満たせない依存関係があります:」とメッセージが出力されます。
sudo apt install nvidia-driver-515
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています... 完了
状態情報を読み取っています... 完了
インストールすることができないパッケージがありました。おそらく、あり得
ない状況を要求したか、(不安定版ディストリビューションを使用しているの
であれば) 必要なパッケージがまだ作成されていなかったり Incoming から移
動されていないことが考えられます。
以下の情報がこの問題を解決するために役立つかもしれません:
以下のパッケージには満たせない依存関係があります:
nvidia-driver-515 : 依存: libnvidia-compute-515 (= 515.65.07-0ubuntu1) しかし、515.76-0ubuntu0.22.04.1 はインストールされようとしています
依存: libnvidia-decode-515 (= 515.65.07-0ubuntu1) しかし、インストールされようとしていません
依存: libnvidia-encode-515 (= 515.65.07-0ubuntu1) しかし、インストールされようとしていません
推奨: nvidia-settings しかし、インストールされようとしていません
推奨: nvidia-prime (>= 0.8) しかし、インストールされようとしていません
推奨: libnvidia-compute-515:i386 (= 515.65.07-0ubuntu1)
推奨: libnvidia-decode-515:i386 (= 515.65.07-0ubuntu1)
推奨: libnvidia-encode-515:i386 (= 515.65.07-0ubuntu1)
推奨: libnvidia-fbc1-515:i386 (= 515.65.07-0ubuntu1)
推奨: libnvidia-gl-515:i386 (= 515.65.07-0ubuntu1)
E: 問題を解決することができません。壊れた変更禁止パッケージがあります。
本格対処
ということで、本格対処です。
ビデオカードの型番確認
改めて、ビデオカードの型番(正確にはチップの型番)を確認します。「GeForce GTX 1650」が表示されます。これはちゃんとOSがビデオカードを認識していることの確認です。
lspci | grep -i nvidia
01:00.0 VGA compatible controller: NVIDIA Corporation TU116 [GeForce GTX 1650] (rev a1)
01:00.1 Audio device: NVIDIA Corporation TU116 High Definition Audio Controller (rev a1)
01:00.2 USB controller: NVIDIA Corporation TU116 USB 3.1 Host Controller (rev a1)
01:00.3 Serial bus controller: NVIDIA Corporation TU116 USB Type-C UCSI Controller (rev a1)
インストールするドライバーの確認
次にどのドライバーが適しているかを確認します。そうすると、「nvidia-driver-520-open」がrecommendedとおすすめされます。
ubuntu-drivers devices
== /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0 ==
modalias : pci:v000010DEd00002188sv00001462sd00008D97bc03sc00i00
vendor : NVIDIA Corporation
model : TU116 [GeForce GTX 1650]
driver : nvidia-driver-520-open - third-party non-free recommended
driver : nvidia-driver-450-server - distro non-free
driver : nvidia-driver-515-server - distro non-free
driver : nvidia-driver-510 - third-party non-free
driver : nvidia-driver-515 - third-party non-free
driver : nvidia-driver-470 - distro non-free
driver : nvidia-driver-470-server - distro non-free
driver : nvidia-driver-510-server - distro non-free
driver : nvidia-driver-515-open - distro non-free
driver : nvidia-driver-520 - third-party non-free
driver : xserver-xorg-video-nouveau - distro free builtin
リポジトリのアップデート
リポジトリに上記のドライバーがないかもしれないので、アップデートします。
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt update
ドライバーのインストール
以下のコマンドで新しいドライバーをインストールします。
sudo apt install nvidia-driver-520-open
### OS再起動
インストールできたら、再起動です。
sudo reboot
nvidia-smiが動くかの確認
改めて、nvidia-smi
すると、以下のように表示されました。
nvidia-smi
Fri Oct 21 21:30:58 2022
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 520.61.05 Driver Version: 520.61.05 CUDA Version: 11.8 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|===============================+======================+======================|
| 0 NVIDIA GeForce ... On | 00000000:01:00.0 Off | N/A |
| 30% 27C P8 4W / 75W | 235MiB / 4096MiB | 0% Default |
| | | N/A |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=============================================================================|
| 0 N/A N/A 2602 G /usr/lib/xorg/Xorg 172MiB |
| 0 N/A N/A 3005 C+G ...ome-remote-desktop-daemon 49MiB |
| 0 N/A N/A 3048 G /usr/bin/gnome-shell 8MiB |
+-----------------------------------------------------------------------------+
EPGStationも起動できるようになった
この状態で、EPGStationやMirakurunのdocker-composeを起動することができました。