
Rocky Linux 9.5安装NVIDIA A10驱动,无论是开源驱动和闭源驱动都安装完成后都提示找不到显卡,经排查存在以下现象。
- dmesg中未发现NVIDIA驱动加载日记。
- NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver.
- 安装过程无任何报错,如果将开源驱动和闭源驱动不停的删了装装了删,突然就好了。
这种情况是因为系统内核版本与NVIDIA发布时的版本不一致时,dkms不会默认编译内核扩展组件,部分软件包安装时会强制编译dkms组件,所以存在莫名其妙恢复正常的情况,这种情况可以使用以下方法解决。
首先,需要重启目标服务器,使内存中内核的版本和磁盘里内核版本一致;接着安装内核编译头和NVIDIA驱动。
dnf install kernel-headers kernel-devel tar bzip2 make automake gcc gcc-c++ pciutils elfutils-libelf-devel libglvnd-opengl libglvnd-glx libglvnd-devel acpid pkgconf dkms -y
dnf config-manager --add-repo http://developer.download.nvidia.com/compute/cuda/repos/rhel9/$(uname -i)/cuda-rhel9.repo
dnf groupinstall "Development Tools" -y
# NVIDIA驱动必须为dkms结尾
dnf module install nvidia-driver:535-dkms
接着查询所安装的具体dkms包名
dkms status
复制完整的包名,如nvidia/535.216.03,编译安装,此过程需要一些时间
dkms install nvidia/535.216.03
一切就绪,无需重启,现在可以使用nvidia-smi查看显卡情况了。

在完成NVIDIA驱动安装后,无需手动部署nvidia-container-tookit,直接在Kubernetes安装nvidia-operator,该工具会自动完成剩余所有操作。部署完成后,对于启用了SELinux的服务器,若发现创建支持GPU的容器时一切正常,但是容器内无法找到显卡,这是因为默认情况下,SELinux禁止容器访问宿主机设备,需通过以下配置项开启。
setsebool -P container_use_devices on
setsebool -P container_use_xserver_devices on
完成操作后需重新创建Pod,然后容器内就能检测到显卡了。
文章评论