1.查看显卡
lspci | grep VGA
2.修改grub
2.1备份grub
cp /etc/default/grub /etc/default/grub.bak
2.2修改grub
vi /etc/default/grub
如果是Intel的CPU
GRUB_CMDLINE_LINUX_DEFAULT=“quiet intel_iommu=on”
如果是AMD的CPU:
GRUB_CMDLINE_LINUX_DEFAULT=“quiet amd_iommu=on”
2.3执行更新
update-grub
3.添加所需的系统模块(驱动)
vi /etc/modules
添加
vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd
4.修改内核
4.1添加模块(驱动)黑名单
即让GPU设备在下次系统启动之后不使用这些驱动,把设备腾出来给vfio驱动用:
echo “blacklist nouveau” >> /etc/modprobe.d/pve-blacklist.conf
echo “blacklist radeon” >> /etc/modprobe.d/pve-blacklist.conf
echo “blacklist nvidia” >> /etc/modprobe.d/pve-blacklist.conf
echo “options vfio_iommu_type1 allow_unsafe_interrupts=1” > /etc/modprobe.d/iommu_unsafe_interrupts.conf
echo “options kvm ignore_msrs=1” > /etc/modprobe.d/kvm.conf
4.2更新内核
update-initramfs -u
5.重启服务器
6.检查模块是否正常加载
lsmod | grep vfio
可见:
vfio_pci 57344 1
vfio_virqfd 16384 1 vfio_pci
irqbypass 16384 11 vfio_pci,kvm
vfio_iommu_type1 36864 1
vfio 36864 5 vfio_iommu_type1,vfio_pci
7.查看显卡
lspci -nn | grep NV
可见(如下为两块RTX3090显卡,每块一个显卡一个声卡):
3d:00.0 VGA compatible controller [0300]: NVIDIA Corporation GA102[GeForce RTX3090] [10de:2204] (rev a1)
3d:00.1 Audio device [0300]: NVIDIA Corporation GA102 High Definition Audio Controller [10de:1aef] (rev a1)
41:00.0 VGA compatible controller [0300]: NVIDIA Corporation GA102[GeForce RTX3090] [10de:2204] (rev a1)
41:00.1 Audio device [0300]: NVIDIA Corporation GA102 High Definition Audio Controller [10de:1aef] (rev a1)
lspci -n -s 3d:00
可见:
3d:00.0 0300:10de:2204 (rev a1)
3d:00.1 0403:10de:1aef (rev a1)
lspci -n -s 41:00
可见:
41:00.0 0300:__10de:2204 __(rev a1)
41:00.1 0403:__10de:1aef __(rev a1)
echo “options vfio-pci ids=10de:2204,10de:1aef” > /etc/modprobe.d/vfio.conf
重启服务器
8.给虚拟机配置显卡
进入proxmox web 页面,先关闭虚拟机,选择虚拟机,硬件->添加->PCI设备,选择供应商NIVIDA的显卡,勾选所有功能,
不勾选主GPU,点击添加
9.启动虚拟机
Ubuntu18.04通过lspci | grep NV 和 ubuntu-drivers devices查看显卡
Centos7 通过 lshw查看显卡