🐙

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公式のインストール方法に沿って行いますが、修正が必要な部分があるのでそこを解説していきます。
https://wiki.almalinux.org/series/system/SystemSeriesA03R9.html#🌟-introduction

公式のインストール方法が3つあり、それぞれVariant1,2,3が用意されていますが、Variant1が実行しやすいと思われるのでVariant1の方法で行います。

以下、root環境を想定します。

-> Enable powertools:

Powertoolsとありますが、名称が変更されています。
https://qiita.com/lasxle/items/1bbacec71293eaf5f4a0

- 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で使用できるバージョンを見ることができる。
使用できるバージョンの中に、opendkmsがついているものがあるが、何もついていないものを選択する。

ここまでがAlmalinux公式に記載されている内容です。
しかしこの状態ではSecurebootが有効になっているためまだドライバをインストールできていません

この状態で再起動するとlinuxが何のドライバも認識しないので正常に起動することができません。
この状態になるとレスキューモードでの起動が必要になるので気を付けてください。

セキュアブートを乗り越えてドライバをロードする

こちらの方法を参考にNvidiaドライバをロードします。
https://www.dell.com/support/kbdoc/ja-jp/000225087/セキュアブートを有効にして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と書かれた画面が表示される。
以下に従って進めていく。

  1. Enroll MOKを選択
  2. Continueを選択
  3. Yesを選択して、先ほどmokutil --import NVIDIA2019-public_key.derで設定したパスワードを入力
  4. 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コマンドも使用可能となる。

参照

Almalinux Wiki
DELL Technologies
Red Hat Documentation

Discussion