CentOS-7CentOS6.xの頃に比べてさまざまなコンポーネントが変更された結果,NVIDIAドライバのインストール方法も大きく変更になりましたので,ここにメモしておきます.ここでは,CentOS7のインストール時の基本パッケージとしてデスクトップ,もしくはワークステーションを選択し,通常起動状態でGUIが有効になっていることを想定してます.

作業を始める前に,NVIDIAのサイトから自分のGPUにあったドライバをダウンロードして,/tmpなど適当な場所にコピーしておいてください.作業の中でデフォルトのGPUドライバを無効にしますので,作業の途中でブラウザを立ち上げることが出来ませんのでご注意下さい.


1. ランレベルを下げて起動する
まず以下のコマンドで現在のランレベルをチェックします.
># systemctl get-default
graphical.target

すると"graphical.target"と表示されるはずです.
次のコマンドによって"multi-user.target"(いわゆるランレベル3)に変更します.
># systemctl set-default multi-user.target

再度,現在の状態を確認して
># systemctl get-default
multi-user.target

と表示されればOKです.
このあとシステムを再起動して,CUIモードでユーザーログインを済ませます.


2. nouveau ドライバーを無効にする
まず以下のコマンドでnouveauドライバが読み込まれていることを確認します.
>$ lsmod | grep nouveau

いくつかのnouveau関連のモジュールが読み込まれていると思います.以前はgrub.confを編集したりしていましたが,現在はあるイメージファイルで管理されていますので,nouveauをロードしない起動イメージファイルを作成します.

まず,デフォルトのイメージファイルをバックアップとして残しておきます.
># mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r)-nouveau.img

次のコマンドでnouveauドライバをロードしない起動イメージファイルを作成します.
>#dracut --omit-drivers nouveau /boot/initramfs-$(uname -r).img $(uname -r)


このまま再起動しても,ほかのモジュールとの依存関係によってnouveauがロードされてしまいます.nouveauのロードを一切禁止するために,nouveauをブラックリストとして登録します.そのために次の2つのファイルを作成します.すでにファイルがある場合は追記してください.

># vi /etc/modprobe.d/modprobe.conf

#
# /etc/modprobe.d/modprobe.conf (to omit nouveau driver)
#
blacklist nouveau


># vi /etc/modprobe.d/nouveau_blacklist.conf

blacklist nouveau

2つ目のファイルは,上記1行だけの記述でOKです.
以上を終えたら,システムを再起動します.おそらく,これ以前はCUIモードでもnouveauドライバが読み込まれていたので,ディスプレイにあった解像度でコマンドラインが表示されていたと思いますが,nouveauを無効にして再起動したところから,やけに大きな文字でコマンドラインが表示されるようになると思います.

再起動後,以下のコマンドで今度はnouveauドライバが読み込まれていないことを確認します.
>$ lsmod | grep nouveau


3. NVIDIAドライバのインストール
すでに,NVIDIA-Linux-x86_64-xxx.xx.runといったドライバファイルをダウンロードしてあるはずです.このファイルをroot権限で実行し,メッセージに従って進めればNVIDIAドライバのインストールは完了します.

インストールにあたってkernelの再構築を行うため,gcc,make, kernel-sourceなどを必要とします.適宜,yum等でインストールしておいてください.

最後にランレベルをGUIモードに戻して再起動します.
># systemctl get-default
multi-user.target

># systemctl set-default graphical.target

># systemctl get-default
graphical.target

># reboot


これで,NVIDIAドライバのインストールは終了です.
お疲れ様でした.


ここで参考したページは下記のものです.
http://www.server-world.info/query?os=CentOS_7&p=runlevel
https://wiki.fysik.dtu.dk/niflheim/Compilers#installation-and-configuration-of-nvidia-cuda
https://bbs.archlinux.org/viewtopic.php?id=123421