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

技术预览提供了以下新的模块化流:
latest-open-gpu
<driver_version>-open-gpu
安装最新的流,选择使用经过签名的预编译软件包:
$ sudo dnf module install nvidia-driver:latest-open-gpu
重启并尽情享受吧!

技术预览库的重要注意事项
旧版预编译驱动也列在模块化流中:
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 。