NVIDIA GPU搭載CentOS 7 で正常に画面出力する方法

こんにちは、エス・ワイ・シーの岡本です。

NVIDIAのドライバをCentOSにインストールする際にありがちなのが「画面が真っ暗になる」「ログインループに陥る」といった現象かと思います。

かく言う私も初めてインストールした際はハマりました/(^o^)\

以下の手順でインストールを行なえば、問題なく動作します。

1. 必要なパッケージのインストール
# yum -y install gcc make git pciutils tmux

gcc , make , git , pciutils , tmux のパッケージが必要となりますので、あらかじめインストールしておきます。

2. nouveau(ヌーボー)が動作していることを確認
# lsmod | grep nouveau
nouveau 1527946 0
video 24400 1 nouveau
mxm_wmi 13021 1 nouveau
i2c_algo_bit 13413 1 nouveau
drm_kms_helper 146456 1 nouveau
ttm 93908 1 nouveau
drm 372540 3 ttm,drm_kms_helper,nouveau
i2c_core 40756 5 drm,ipmi_ssif,drm_kms_helper,i2c_algo_bit,nouveau
wmi 19070 2 mxm_wmi,nouveau

nouveauはNVIDIA のビデオカード用のフリーなドライバですが、NVIDIA社のドライバを導入する際には競合が発生しますので、インストールされている場合は、項番3~項番5の手順で無効化する必要があります。
コマンドの実行結果に何も表示されない場合は、既に無効化またはインストールされていないため、手順6に進んでください。

3. 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未使用起動イメージを作成します。

4.nouveauのブラックリスト化
# vi /etc/modprobe.d/modprobe.conf
# vi /etc/modprobe.d/nouveau_blacklist.conf

上記2ファイルにblacklist nouveauと入力します。

入力完了後、OSを再起動します。

5.nouveauの停止確認
# lsmod | grep nouveau

再度上記コマンドを実行し、nouveauが無効化されている事を確認します。
※コマンド結果に何も表示されなければ無効化されています。

6.ランレベル変更
# init 3
7.NVIDIA社ドライバインストール

必要なドライバはあらかじめNVIDIAのホームページからGPUに応じたダウンロードしておきます。

https://www.nvidia.co.jp/Download/index.aspx?lang=jp

# sh NVIDIA-Linux-x86_64-xxx.xx.run --silent --no-opengl-files --no-libglx-indirect

※xxx.xxはダウンロードしたバージョンに応じて書き換えてください。

※オプションについて

–silent
⇒サイレント・モードでインストールします。

–no-libglx-indirect
⇒libGLX_indirect.so.0シンボリックリンクをインストールしません。

–no-opengl-files
⇒OpenGL関連のドライバファイルをインストールしません。

主に3つ目のオプションがないとデスクトップ環境が動作しなくなるなどの現象が発生しますので要注意です!

8. バージョン確認
# cat /proc/driver/nvidia/version
NVRM version: NVIDIA UNIX x86_64 Kernel Module xxx.xx  
GCC version: gcc バージョン 4.8.5 20150623 (Red Hat 4.8.5-36) (GCC)

上記の出力例の通り表示されれば完了です。
※xxx.xxはダウンロードしたバージョンが表示されます。