nvidia-smiでcommunicate with the NVIDIA driverなどtroubleshooting

# ドライバの入れ直しでトラブル

https://qiita.com/Manyan3/items/a202b01389a2f84fc2f7

- 上記記事でドライバを更新、画面表示はできるようになったのですが、以下のような状態になってしまいました。

```Ubuntu:terminal

7C94:~$ 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.


```

- でもnvcc -V は表示されるという・・・ 

```Ubuntu:terminal

C94:~$ nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2019 NVIDIA Corporation
Built on Sun_Jul_28_19:07:16_PDT_2019
Cuda compilation tools, release 10.1, V10.1.243

```

# 参考資料

:::note info
インフォメーション
有用な解決策を探して、早く仕事をさせたい
:::

https://forums.developer.nvidia.com/t/ubuntu-cuda-11-8-package-wrong-dependency-on-cuda-drivers/238891/7


:::note info
インフォメーション
もとはといえば、Ubuntu20.04にCUDA11.8適用で起こったトラブルなので
:::


- ドライバ再インストールの前段として状態をみてみる
- 特段異常はなさそう
- 結局こちらのフォーラム内のやり取り流用では解決に至らず

```Ubuntu:terminal
uname -m && cat /etc/*release
gcc --version
sudo apt-get install linux-headers-$(uname -r) --verbose-versions

```

https://qiita.com/cinchan/items/9718e1f26146dc5e3eaa

:::note info
インフォメーション
こちらの記事はかなり役に立ちました
:::

- この段階で隠れているゴミを削除できました。
- でも、結局こちらの手順では解決に至らず


https://forums.developer.nvidia.com/t/ubuntu-20-04-ubuntu-drivers-unable-to-correct-problems-you-have-held-broken-packages-complaining-about-nvidia-driver-515/227587

:::note info
インフォメーション
上げてだめなら、バージョン下げてみようということで遭遇した類似現象で参照
:::

```Ubuntu:terminal

sudo apt-get install aptitude


```
- aptitude でドライバがインストールに失敗するのは避けられることは判明
- でも、結局こちらの手順では解決に至らず
- CUDA12.3が〜〜と言われていることにようやく気づく

## 謎のCUDAのリポジトリの悪さを止める

```Ubuntu:terminal

apt-cache search "cuda" | grep "12.3"

```
### 結果的にリポジトリの設定が邪魔していると判明 

```Ubuntu:terminal
cat /etc/apt/sources.list
ls /etc/apt/sources.list.d/
cat /etc/apt/sources.list.d/[ファイル名]
```


- CUDAバージョンはお使いの状況に応じて適宜変更してください
- sources.listに未使用のリポジトリがあったので、コメントアウト（削除でいいかも）


## nvidia-smiの表示トラブル直らず、再度修復作業

https://blog.hysakhr.com/2019/11/12/%E3%82%A8%E3%83%A9%E3%83%BC%E3%83%A1%E3%83%83%E3%82%BB%E3%83%BC%E3%82%B8%E3%80%8Cnvidia-smi-has-failed-because-it-couldnt-communicate-with-the-nvidia-driver-make-sure-that-the-latest-nvidia-driver/

### Failed to initialize NVML: Driver/library version mismatchも発生していました

**参考にした記事**

https://ryo-iijima.com/nvidia-smi-version-mismatch/

https://zenn.dev/190ikp/articles/update-cuda-driver-without-rebooting



:::note info
インフォメーション
究極的にはZennの190ikpさんの記事のコマンドラインなのですが・・
- drm使用中のため解決できず
:::

https://qiita.com/ell/items/be3d3527b723f70f888d

- 加えて@ell(e)　さんの記事を参考にさせていただきました。

```Ubuntu:terminal

sudo modprobe -f nvidia_drm

```
- -rをfにして強制的に止めます。
- 次のコマンドラインは通常通りに参考記事の通りにエラーに応じてコマンドを売っていきます。
- 結局gdm等のGUIは止めるので使用中の方はコマンドをメモします。
- 2台使いでもいいかもしれません。


# 無事nvidia-smi動作・まとめ
- 今回はエラーのもとが複数存在していたため、合わせ技で解決
1. 余計なリポジトリを削除
1. CUDA/ドライバの再インストール
1. Nouveauモードで立ち上げておく
1. CUIモードで回復コマンド実行
1. 2番めで成功しなかったらここでドライバインストール（下の絵のメニュー）

この3(5)つが必要でした。ケースｂｙケースですね


<details><summary>En summary</summary>

# Trouble symptom
- communicate with the NVIDIA driver on nvidia-smi
-  Failed to initialize NVML: Driver/library version mismatch on nvidia-smi

```Ubuntu terminal

# in my case, extra repository setting avoid to re-install driver properly.
apt-cache search "cuda" | grep "12.3"



#kill nvidia / cuda CLI mode 
sudo modprobe -r nvidia_drm
sudo modprobe -r nvidia_uvm
sudo rmmod nvidia_modeset
sudo rmmod nvidia

```
</details>