GPU 直通 KVM 不显示在来宾上

问题描述

我主要关注这个https://medium.com/@calerogers/gpu-virtualization-with-kvm-qemu-63ca98a6a172

还有这个https://www.server-world.info/en/note?os=Ubuntu_18.04&p=kvm&f=11

我当前的 /etc/default/grub 有:

GRUB_CMDLINE_LINUX_DEFAULT="intel_iommu=on iommu=pt rd.driver.pre=vfio-pci video=efifb:off vfio_pci.ids=10de:1f91 vfio_iommu_type1.allow_unsafe_interrupts=1 vfio_pci.disable_vga=1"

现在不需要 vfio_pci 的 /etc/modprobe.d/local.conf,因为 vfio 已经内置到内核中,所以在上面我将模块选项添加到内核行。验证实际加载的内核参数:

yyy@yyy-XPS-15-7590:~$ cat /proc/cmdline 
BOOT_IMAGE=/boot/vmlinuz-5.4.0-80-generic root=UUID=7f2b41ba-1b28-4f36-9db8-063d5a643dfb ro intel_iommu=on iommu=pt rd.driver.pre=vfio-pci video=efifb:off vfio_pci.ids=10de:1f91 vfio_iommu_type1.allow_unsafe_interrupts=1 vfio_pci.disable_vga=1

我的笔记本电脑(戴尔 XPS 15 5790)有一个 nvidia 卡,插槽 01:00.0: ,但实际的 VGA 卡是 intel

$ lspci -nnk |grep -i nvidia
01:00.0 3D controller [0302]: NVIDIA Corporation Device [10de:1f91] (rev a1)
    Kernel modules: nvidiafb,nouveau,nvidia_drm,nvidia
$ lspci -nnk |grep VGA
00:02.0 VGA compatible controller [0300]: Intel Corporation Device [8086:3e9b]

然后我按照上面第一篇参考文献末尾的说明将主机开发添加到现有的虚拟机中:

virsh edit my_existing_vm

# add the followng
<hostdev mode='subsystem' type='pci' managed='yes'>
  <source>
    <address domain='0x0000' bus='0x01' slot='0x00' function='0x0'/>  </source>
    <address type='pci' domain='0x0000' bus='0x00' slot='0x09' function='0x0'/>
</hostdev>

然后重启vm,但是在vm里面,它仍然使用模拟的VGA卡,而不是暴露的VGA,它显示VGA卡是Redhat的“qxl”。

在主机端,我可以看到VGA卡由“vfio”驱动程序管理,而不是像以前一样由“nvidia”管理。

那么我怎样才能让猜测者访问 NVidia 卡?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)