Almalinux9.6にNvidiaドライバをインストールする
GPUサーバーにAlmalinux9.6をインストールしたのですが、CUDAを使用するためのNvidiaドライバがなかなかインストールできなくて苦戦しました。
環境
- ハードウェア:DELL PowerEdge R7425
- OS:Almalinux9.6
- GPU:Nvidia TESLA V100
- CPU:AMD EPYC 7501 32-Core Processor
インストール方法
基本的にAlmalinux公式のインストール方法に沿って行いますが、修正が必要な部分があるのでそこを解説していきます。
公式のインストール方法が3つあり、それぞれVariant1,2,3が用意されていますが、Variant1が実行しやすいと思われるのでVariant1の方法で行います。
以下、root環境を想定します。
-> Enable powertools:
Powertoolsとありますが、名称が変更されています。
- dnf config-manager --set-enabled powertools
+ dnf config-manager --set-enabled crb
dnf makecache
dnf makecache
はdnfパッケージのキャッシュを生成するコマンドです。
-> Add EPEL9:
dnf -y install epel-release
dnf upgrade
-> Add NVIDIA Repository:
dnf config-manager --add-repo https://developer.download.nvidia.com/compute/cuda/repos/rhel9/x86_64/cuda-rhel9.repo
dnf makecache
dnf config-manager --add-repo
を実行することで/etc/yum.repo.d/
パッケージのリポジトリが追加される。
記入するURLをミスった場合はここのディレクトリを消すとよい
-> Install the latest NVIDIA driver:
dnf module install nvidia-driver:latest
dnf upgrade
dnf module list nvidia-driver
で使用できるバージョンを見ることができる。
使用できるバージョンの中に、open
とdkms
がついているものがあるが、何もついていないものを選択する。
ここまでがAlmalinux公式に記載されている内容です。
しかしこの状態ではSecurebootが有効になっているためまだドライバをインストールできていません。
この状態で再起動するとlinuxが何のドライバも認識しないので正常に起動することができません。
この状態になるとレスキューモードでの起動が必要になるので気を付けてください。
セキュアブートを乗り越えてドライバをロードする
こちらの方法を参考にNvidiaドライバをロードします。
ドライバのインストールは既に済んでいるのでNVIDIAがドライバーに署名したことを確認します。
modinfo nvidia
以下のような表示が出ることを確認してください
filename: /lib/modules/*4.18.0-513.5.1.el9_6.x86_64* <nvidiaドライバをインストールしたカーネル>/extra/drivers/video/nvidia/nvidia.ko
alias: char-major-195-*
version: 545.23.08
supported: external
license: NVIDIA
firmware: nvidia/545.23.08/gsp_tu10x.bin
firmware: nvidia/545.23.08/gsp_ga10x.bin
rhelversion: 8.9
srcversion: 427F3AB170CB5FB6F2DFAC8
alias: pci:v000010DEd*sv*sd*bc06sc80i00*
alias: pci:v000010DEd*sv*sd*bc03sc02i00*
alias: pci:v000010DEd*sv*sd*bc03sc00i00*
depends: drm
name: nvidia
vermagic: 4.18.0-513.5.1.el8_9.x86_64 SMP mod_unload modversions
sig_id: PKCS#7
signer: NVIDIA
sig_key: 55:7C:FD:CC:D0:EA:36:2F:0C:09:BA:00:A1:6C:B1:B8:E6:C1:EB:AB
sig_hashalgo: sha256
signature: 95:5E:E3:FC:52:9C:81:47:65:37:CA:06:38:64:32:49:9C:18:F6:FF:
20:41:C6:1B:35:E2:F0:87:5F:74:B9:0A:A9:2D:1D:9A:84:F9:3D:77:
09:63:24:9A:5E:B3:1F:FB:40:9C:40:46:05:09:86:77:E5:79:80:F1:
4F:57:30:EB:31:11:89:3D:70:BE:7A:5D:F6:9A:4A:0C:63:E3:D5:D7:
73:5E:53:2F:56:E9:1C:CE:9B:D1:14:49:77:8C:59:27:9B:76:87:1F:
BD:C8:C2:0A:6C:B5:E9:6E:B4:D2:F3:91:7E:D8:44:BA:EA:2C:0B:1E:
NVIDIA.der証明書をダウンロードし認証する
以下のコマンドを実行して証明書をダウンロード
curl -O https://developer.download.nvidia.com/compute/cuda/repos/rhel9/x86_64/NVIDIA2019-public_key.der
次にサーバーに証明書をインポートする
mokutil --import NVIDIA2019-public_key.der
パスワードを要求されるので入力して、忘れないように保管する。
証明書がインポートされているかの確認
mokutil --list-new | grep Issuer
Issuer: O=Red Hat, Inc., CN=Red Hat Secure Boot CA 5/emailAddress=secalert@redhat.com
この状態でPCを再起動する。
再起動後、ブルースクリーンにPerform MOK managementと書かれた画面が表示される。
以下に従って進めていく。
- Enroll MOKを選択
- Continueを選択
-
Yesを選択して、先ほど
mokutil --import NVIDIA2019-public_key.der
で設定したパスワードを入力 - Rebootを選択
再起動後、以下のようになれば証明書の認証が完了
mokutil --list-enrolled | grep Issuer
Issuer: ~~~ <other Issuer>
Issuer: O=NVIDIA, CN=NVIDIA/emailAddress=sw-cuda-installer@nvidia.com
以下のコマンドを実行して表示が返ってきたら正しくドライバをインストールできている
lsmod | grep nvidia
この状態でnvidia-smi
コマンドも使用可能となる。
Discussion