#はじめに
Nvidia-DockerとかCUDAとかを使うときには、NVIDIAのドライバが必要ですね。
しかしデフォルトでインストールされているのはnouveau(ヌーボー)という別のドライバなので、自分でインストールし直す必要があります。
こないだCentOS7にそれをインストールしたので、せっかくだからやり方をメモ。
#手順
###1. 必要なパッケージのインストール
$ sudo yum -y update
$ sudo yum -y install kernel-devel kernel-headers gcc make git pciutils tmux
###2. nouveauの無効化
#nouveauがロードされているかを確認 (以下のような表示が出ればOK)
$ lsmod | grep nouveau
nouveau 1403757 0
video 24400 1 nouveau
mxm_wmi 13021 1 nouveau
i2c_algo_bit 13413 1 nouveau
drm_kms_helper 125008 1 nouveau
ttm 93441 1 nouveau
drm 349210 3 ttm,drm_kms_helper,nouveau
i2c_core 40582 5
drm,i2c_i801,drm_kms_helper,i2c_algo_bit,nouveau
wmi 19070 2 mxm_wmi,nouveau
# rootユーザに切り替え
$ sudo su
# nouveauなしの起動イメージを生成
$ mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r)-nouveau.img
$ dracut --omit-drivers nouveau /boot/initramfs-$(uname -r).img $(uname -r)
# nouveauがロードされないように封印
$ echo 'blacklist nouveau' >> /etc/modprobe.d/modprobe.conf
$ echo 'blacklist nouveau' >> /etc/modprobe.d/nouveau_blacklist.conf
# 再起動
$ reboot
# nouveauがロードされていないことを確認 (何も表示されなければOK)
$ lsmod | grep nouveau
###3. GPUの型番を確認 ([ ]の中がGPUの型番に該当)
$ lspci | grep VGA
01:00.0 VGA compatible controller: NVIDIA Corporation GF119 [NVS 310] (rev a1)
###4. GPUに合ったドライバのインストーラをダウンロード
NVIDIAドライバダウンロードサイト(http://www.nvidia.co.jp/Download/index.aspx?lang=jp) から、3.で見つけたGPUの型番に合うドライバのインストーラ (NVIDIA-XXX.run) をダウンロードし、それを/tmp/に置きます。
###5. ドライバのインストール
# ディレクトリ移動
$ cd /tmp/
# ランレベルを変更
$ sudo init 3
# nvidia-dockerを停止 (動かしていた場合)
$ sudo systemctl stop nvidia-docker
# インストーラを実行 (実行後は指示に従っていけばOK)
$ sudo bash NVIDIA-XXX.run
# 再起動
$ reboot
再起動した結果いつも通りデスクトップが立ち上がったのなら、ドライバのインストールは成功です。
#ドライバの再インストール
yumのアップデートでカーネルのバージョンが上がった場合は、ドライバが正常に動作しなくなり、Xのサーバが起動しなくなります。それに伴って、デスクトップが表示されなくなってしまいます。(CUIやSSHは問題なく使えます)
これを直すには、ドライバを再インストールする必要がありますが、これも上と同じ手順でOKです。
(インストーラの実行中に「古いドライバをアンインストールして新しいドライバをインストールするか」を聞かれるので、そこでyesを選んでください)
#おわりに
順番通りにやれば問題なくできる…はず。
インストーラの選び間違いにだけは注意です。(間違ってたらインストールできません)
当たり前な話ですが一応言っておくと、NVIDIAのドライバはNVIDIAのGPUを積んでるマシンにしか使えませんよ。例えばGPUがIntel製だった場合には使えません。