3 月 19 日下午 2 点,锁定 NVIDIA AI 网络中文专场。立即注册观看
数据科学

适用于 RHEL9 的 NVIDIA 开放 GPU 数据中心驱动,由 Red Hat 签署

NVIDIA 和 Red Hat 合作,对 2020 年推出的预编译 NVIDIA Driver 进行持续改进。上个月,NVIDIA 宣布 ,开放的 GPU 驱动模组将成为启用 NVIDIA 图形硬件的默认推荐方式。

今天,NVIDIA 宣布 Red Hat 正在编译并签署 NVIDIA 开放 GPU 内核模块 ,以进一步简化 Red Hat Enterprise Linux 9 操作系统的使用,并为在数据中心使用 NVIDIA 硬件支持 机密计算 提供前进方向。

现在无需任何额外的密钥注册配置即可安装和使用经过签名的开放 GPU 驱动。与当前的旧版预编译软件包一样,在驱动更新时仅支持最新的 RHEL 9 内核。

从 RHEL 9.5 开始,NVIDIA 现在提供技术预览库,可在 2025 年 4 月 30 日之前试用。此库允许使用 模块化流使 用开放式 GPU 驱动程序和旧版驱动程序(附带说明)。

技术预览结束后,已签名的内核模块将在 NVIDIA Compute 软件包存储库中与 CUDA 平台的其他部分一起提供:CUDA-X 加速库、CUDA 优化的应用和框架。

有关 模块化流及其如何与预编译图形驱动程序配合使用的更多信息 ,请参阅 Streamlining NVIDIA Driver Deployment on RHEL 8 with Modularity Streams

激活技术预览 

要使用经过签名的 NVIDIA 开源 GPU 驱动模块,请确保已启用 Red Hat 资源库,包括 RHEL9 AppStream、RHEL9 BaseOS 和 RHEL9 CRB:

$ subscription-manager repos --enable=rhel-9-for-x86_64-appstream-rpms
$ subscription-manager repos --enable=rhel-9-for-x86_64-baseos-rpms
$ subscription-manager repos --enable=codeready-builder-for-rhel-9-x86_64-rpms

添加 CUDA 网络存储库:

$ sudo dnf config-manager --add-repo=https://developer.download.nvidia.com/compute/cuda/preview/repos/rhel9/x86_64/

激活技术预览库后,请查看支持的模块化流:

$ dnf module list nvidia-driver
The screenshot shows the shell prompt executing the sudo dnf module list nvidia-driver command and which driver releases are supported.
图 1、已安装的 NVIDIA 模块化流的技术预览工具中的输出列表示例

技术预览提供了以下新的模块化流:

  • latest-open-gpu
  • <driver_version>-open-gpu

安装最新的流,选择使用经过签名的预编译软件包:

$ sudo dnf module install nvidia-driver:latest-open-gpu

重启并尽情享受吧!

A screenshot shows the shell prompt and execution of the nvidia-smi command, which displays the CUDA driver version and system parameters within the Modularity streams.
图 2、显示 正在运行的 NVIDIA CUDA 驱动程序版本和系统参数的 nvidia-smi 命令输出示例

技术预览库的重要注意事项

旧版预编译驱动也列在模块化流中:

  • nvidia-driver:latest
  • nvidia-driver:latest-<major_version>
  • nvidia-driver:<major_version>

这些驱动已由 NVIDIA 签名,需要签名密钥注册。它们可以正常安装,没有任何警告,但在重启后,NVIDIA 图形驱动程序将不可用:

$ nvidia-smi
NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running.

经过进一步检查,问题变得明显:

# insmod /usr/lib/modules/5.14.0-503.16.1.el9_4.x86_64/extra/drivers/video/nvidia/nvidia.ko

insmod: ERROR: could not insert module /usr/lib/modules/5.14.0-503.16.1.el9_4.x86_64/extra/drivers/video/nvidia/nvidia.ko: Key was rejected by service

发生这种情况的原因是默认情况下启用了 secure boot:

$ sudo mokutil --sb-state 
SecureBoot enabled

本模块由 NVIDIA 使用不在信任链中的密钥进行签名:

$ modinfo /usr/lib/modules/5.14.0-503.16.1.el9_4.x86_64/extra/drivers/video/nvidia/nvidia.ko | grep signer
signer: NVIDIA

有关使用 mokutil 注册 NVIDIA 签名密钥的更多信息,请参阅 GitHub 上的 UEFI Secure Boot。

安装 

在已启用安全启动的主机上安装技术预览库:

$ sudo dnf config-manager --add-repo=https://developer.download.nvidia.com/compute/cuda/preview/repos/rhel9/x86_64/
$ sudo dnf module install nvidia-driver:latest-open-gpu
$ sudo reboot

如果您发现任何打包问题,请向 github.com/NVIDIA/yum-packaging-precompiled-kmod/issues 报告这些问题。

此库的有效期至 2025 年 3 月 31 日。

总结 

现在,借助 NVIDIA 和 Red Hat 的签名软件包,在 RHEL 9 上使用 NVIDIA 进行安全启动会更好。您可以期待此领域的更多开发。

您可在 /NVIDIA/open-gpu-kernel-modules GitHub 仓库中获取驱动源代码。

GitHub 上提供了打包模板和说明,以便您为自定义内核和衍生 Linux 发行版维护自己的预编译内核模块包:

如要提供反馈,请 发送评论 报告驱动错误 。如果您还不是会员,请 加入 NVIDIA Developer Program

 

标签