Debian10 (Buster) を入れ直す (Nvidia-driver>=450, cuda=11)


debian 10を綺麗サッパリ入れ直す

HDDの拡張ついでに,今入ってるLinux(Debian 10)を綺麗さっぱり消して入れ直す
Nvidiaのドライバ/cuda11までは入れるが、
その他コマンドラインツールやAppは今回は設定しない

環境

  • OS Debian GNU/Linux 10(buster)
  • メモリ 16GB
  • プロセッサ Intel©Core i7-9700K CPU @ 3.60GHz × 8
  • グラフィック RTX 2070/PCle/SSE2
  • GNOME 3.30.2
  • USB 1GB (インストール用)

(他にもHDD,ssdごとにwindows10 pro, ArchLinuxが乗っております)

準備

データのバックアップ

まず現在の設定・ファイルのバックアップを取る
.configや.zshrc等を忘れないようにしつつ適宜別のHDDに退避
今回はシステム等は最新のものにしてしまいたいため、個人の設定系・データファイルだけ残した

イメージのダウンロード/インストーラUSBの作成

今回はネットワークがつながった状態で再インストールを行うため、CDサイズの小さいイメージを使用する
debian公式よりダウンロードしてくる

インスーラデバイス(USB)のマウント名を確認

root@ debian % fdisk -l | tail
Disk /dev/sdd: 984 MiB, 1031798784 bytes, 2015232 sectors
Disk model: USB DRIVE       
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x8213b0c3

Device     Boot Start     End Sectors  Size Id Type
/dev/sdd1  *       32 2015231 2015200  984M  e W95 FAT16 (LBA)

ddコマンドを使用して書き込み

root@ debian % sudo dd if=debian-10.5.0-amd64-netinst.iso of=/dev/sdd bs=1MB
365+1 レコード入力
365+1 レコード出力
365953024 bytes (366 MB, 349 MiB) copied, 0.39875 s, 918 MB/s

一瞬で終わった!!
前やったときはDVD-イメージを使用したため非常に時間がかかった
USBサイズも1GBでできたのはありがたい

インストールしたいSSDの確認

一応今インストールされているSSDの名前も確認しておく
間違えると全部消えるので、一応ね。一応

root@debian:~$ fdisk -l
:
Disk /dev/sdb: 232.89 GiB, 250059350016 bytes, 488397168 sectors
Disk model: CT250MX500SSD1  
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: B42BC10F-E017-4E2C-AE87-18B725931B0D

Device         Start       End   Sectors   Size Type
/dev/sdb1       2048   1050623   1048576   512M EFI System
/dev/sdb2    1050624 454975487 453924864 216.4G Linux filesystem
/dev/sdb3  454975488 488396799  33421312  15.9G Linux swap
:

debianのインストール/nvidiaのインストール

指示に従ってインストール

usbを挿したまま再起動するだけ
あとはGraphic-Installerを選択して指示に従う

途中のパーティション選択だけ注意する
ここで間違えると他のSSDのデータが消えることに、、、
さっき確認したデバイス名を間違えないよう選択する

usbを抜いて再起動

nvidiaドライバを入れる

usbを抜いて再起動してもおそらくGUIモードはうまく立ち上がらない
いわゆる画面が真っ暗の状態になる
nvidiaのドライバが入っていなく、nouveauと言われるLinuxの互換ドライバが働いているため

CUIモードに入って設定を治す
Ctrl+Alt+F1(もしくはF2とか)

準備する

root@debian:~# export LANG=C
root@debian:~# apt update
root@debian:~# apt upgrade -y

apt リポジトリの追加

今回は最新の nvidia-driver=450 を使用したいためexperimentalまで入れる
実際に使用するときはDocker経由でになるが、NGCなど最新の環境を要求するものもあるため最新にしておく
もちろん安定性等の保証はないためくれぐれも自己責任で

root@debian:~# vi /etc/apt/sources.list
/etc/apt/sources.list
:
deb http://deb.debian.org/debian/ buster main non-free contrib
deb http://deb.debian.org/debian/ buster-backports main non-free contrib
deb http://deb.debian.org/debian/ testing main non-free contrib
deb http://deb.debian.org/debian/ experimental main non-free contrib
:

もう一度リストの更新/必須ツールズのインストール

root@debian:~# apt update
root@debian:~# apt install -t experimental build-essential -y

nvidia-driverのインストール

root@debian:~# apt install -t experimental nvidia-detect -y
root@debian:~# nvidia-detect
Detected NVIDIA GPUs:
01:00.0 VGA compatible controller [0300]: NVIDIA Corporation TU106 [GeForce RTX 2070] [10de:1f02] (rev a1)

Checking card:  NVIDIA Corporation TU106 [GeForce RTX 2070] (rev a1)
Your card is supported by the default drivers.
Your card is also supported by the Tesla 450 drivers series.
Your card is also supported by the Tesla 440 drivers series.
Your card is also supported by the Tesla 418 drivers series.
It is recommended to install the
    nvidia-driver
package.

# experimentalリポジトリを使用している時点で、nvidia-detectに信頼性があるのかは不明

root@debian:~# apt install -t experimental nvidia-driver nvidia-smi nvidia-xconfig nvidia-settings -y

ここでxconfigの競合,nouveauの競合に関するエラーがおそらく表示される
全部OKと聞き流してくれれば良い

コツはdriversmi,xconfig,settingsを全部一括で指定すること
原因はいまいちよくわからないが依存関係のエラーが起きなくなった

cudaもいれる

表示は10.1だが、後ほどsmiからみると11になっている謎

root@debian:~# apt install -t experimental nvidia-cuda-toolkit -y

競合等を回避する

デバイス認識の確認

root@debian:~# lspci | grep -i nvidia
01:00.0 VGA compatible controller: NVIDIA Corporation TU106 [GeForce RTX 2070] (rev a1)

nouveauの停止・ブラックリスト登録

root@debian:~# vi /etc/modprobe.d/blacklist-nouveau.conf
/etc/modprobe.d/blacklist-nouveau.conf
blacklist nouveau
options nouveau modeset=0

xconfigの更新

root@debian:~# nvidia-xconfig

設定の反映

root@debian:~# update-initramfs -u
root@debian:~# systemctl reboot

できた!!

おそらく再起動後はnvidiaのドライバにより鮮明になったGUIモードで起動しているはず

root@debian:~# lspci | grep -i nvidia
01:00.0 VGA compatible controller: NVIDIA Corporation TU106 [GeForce RTX 2070] (rev a1)
01:00.1 Audio device: NVIDIA Corporation TU106 High Definition Audio Controller (rev a1)
01:00.2 USB controller: NVIDIA Corporation TU106 USB 3.1 Host Controller (rev a1)
01:00.3 Serial bus controller [0c80]: NVIDIA Corporation TU106 USB Type-C UCSI Controller (rev a1)

root@debian:~# nvidia-smi 
Sun Aug  9 03:59:11 2020       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 450.57       Driver Version: 450.57       CUDA Version: 11.0     |
|-------------------------------+----------------------+----------------------+
| 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  GeForce RTX 2070    On   | 00000000:01:00.0  On |                  N/A |
| 29%   40C    P8    17W / 175W |    534MiB /  7979MiB |     32%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|    0   N/A  N/A       770      G   /usr/lib/xorg/Xorg                 43MiB |
|    0   N/A  N/A       957      G   /usr/bin/gnome-shell               23MiB |

cuda10.1を入れたはずなのに11が入っている謎

cuda11を入れるためにnvidia-driver>=450にしたため丁度よい

何回かdebianのインストールからnvidiaドライバのインストールをエラーでやり直した
その結果この方法だと何もエラーが起きなかった(2020/08/09現在)
もちろんexperimentalリポジトリを使用しているため保証はされないので自己責任で
基本は公式(debian,Nvidia)の内容を順に試しただけ

nouveauはこちらの記事[Ubuntu 16 / 18 に GTX 1080Ti / RTX2080 の ドライバとCUDAのインストール - @sasayabaku]を参考にさせていただきました
感謝します!!