确认宿主机显卡状态已准备好直通
打开pve宿主机的shell,执行`lspci -nn | grep -i nvidia` (默认N卡,其他的请自行更换匹配关键词),根据显示的pci编号执行`lspci -nnk -s 83:00.0`,如果Kernel driver in use后显示**不**是vfio-pci,则需要编辑vfio.conf文件。
编辑vfio.conf文件
编辑配置文件: `nano /etc/modprobe.d/vfio.conf` 写入 ID(将你的 ID 替换进去,注意包含显卡核心和音频部分的 ID):`options vfio-pci ids=10de:xxxx,10de:yyyy` 更新 initramfs 并重启:`update-initramfs -u && reboot` ------------虚拟机配置中BIOS选择OVMF,机型选择Q35,取消勾选预注册密钥,CPU类型选择host,直通PCI设备选择对应显卡,勾选所有功能、ROM-Bar、PCI-Express
一、在ubuntu虚拟机上进行以下操作:
-
卸载现有驱动:
sudo apt --purge remove nvidia* sudo apt autoremove -
通过
ubuntu-drivers autoinstall自动安装或从官网下载对应版本驱动 -
安装NVIDIA容器工具包,以实现Docker对GPU的调用
#添加仓库 distribution=$(. /etc/os-release;echo $ID$VERSION_ID) curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add - curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list #安装工具包,以实现Docker对GPU的调用 sudo apt-get update sudo apt-get install -y nvidia-container-toolkit sudo systemctl restart docker -
编辑/etc/docker/daemon.json文件
{ "default-runtime": "nvidia", "runtimes": { "nvidia": { "path": "/usr/bin/nvidia-container-runtime", "runtimeArgs": [] } } } -
执行sudo systemctl restart docker重启服务
-
安装完成后验证:nvidia-smi
二、在Rocky虚拟机上进行以下操作:
-
首先启用 EPEL 仓库并安装必要的开发工具和内核头文件:
#安装 EPEL 仓库 sudo dnf install epel-release -y sudo dnf upgrade -y #安装开发工具和内核头文件(编译驱动必需) sudo dnf groupinstall "Development Tools" -y sudo dnf install kernel-devel-$(uname -r) kernel-headers-$(uname -r) dkms -y -
禁用开源的 Nouveau 驱动,因为Nouveau 会与 NVIDIA 的闭源驱动发生冲突
#将 nouveau 加入黑名单 echo "blacklist nouveau" | sudo tee /etc/modprobe.d/blacklist-nouveau.conf echo "options nouveau modeset=0" | sudo tee -a /etc/modprobe.d/blacklist-nouveau.conf #重新生成 initramfs 并重启系统 sudo dracut --force sudo reboot #验证,没有输出才说明金庸成功。 lsmod | grep nouveau -
添加 NVIDIA 官方仓库并安装驱动
#添加 NVIDIA 官方仓库(针对 RHEL9/Rocky9) sudo dnf config-manager --add-repo http://developer.download.nvidia.com/compute/cuda/repos/rhel9/$(uname -i)/cuda-rhel9.repo #安装最新的 NVIDIA 驱动模块 sudo dnf module install nvidia-driver:open-dkms -y #重启系统 sudo reboot #验证安装 nvidia-smi

