添加转储 rom 时的 GPU 直通问题

Lem*_*111 1 permissions kvm virtualization virt-manager

我正在尝试在 Lubuntu 17.10上qemu-kvm使用gpu passthroughvirsh

我安装了 Windows 7 (UEFI),它运行正常,但设备驱动程序没有安装说

资源不足(错误 12)。

所以我丢弃了 gpu rom 并添加了

<rom bar='on' file='/home/gpu.dump'/>
Run Code Online (Sandbox Code Playgroud)

<hostdev>gpu pci 中。

我做了

chmod 777 /home 
Run Code Online (Sandbox Code Playgroud)

gpu.dump, user = "root" group = "root" 
Run Code Online (Sandbox Code Playgroud)

提前

每当我在 virsh 脚本中添加 rom... 行时,我都会遇到这样的错误消息

############################################################################### "Error starting domain: internal error: process exited while connecting to monitor: 2017-12-13T09:45:38.629221Z qemu-system-x86_64:
-chardev pty,id=charserial0: char device redirected to /dev/pts/2 (label charserial0) 2017-12-13T09:45:39.146358Z qemu-system-x86_64:
-device vfio-pci,host=03:00.0,id=hostdev0,bus=pci.0,addr=0x7,romfile=/home/gt710.dump: failed to find romfile "/home/gt710.dump"

Traceback (most recent call last):   File "/usr/share/virt-manager/virtManager/asyncjob.py", line 88, in cb_wrapper
    callback(asyncjob, *args, **kwargs)   File "/usr/share/virt-manager/virtManager/asyncjob.py", line 124, in tmpcb
    callback(*args, **kwargs)   File "/usr/share/virt-manager/virtManager/libvirtobject.py", line 83, in newfn
    ret = fn(self, *args, **kwargs)   File "/usr/share/virt-manager/virtManager/domain.py", line 1405, in startup
    self._backend.create()   File "/usr/lib/python2.7/dist-packages/libvirt.py", line 1062, in create
    if ret == -1: raise libvirtError ('virDomainCreate() failed', dom=self) libvirtError: internal error: process exited while connecting to monitor: 2017-12-13T09:45:38.629221Z qemu-system-x86_64:
-chardev pty,id=charserial0: char device redirected to /dev/pts/2 (label charserial0) 2017-12-13T09:45:39.146358Z qemu-system-x86_64:
-device vfio-pci,host=03:00.0,id=hostdev0,bus=pci.0,addr=0x7,romfile=/home/gt710.dump: failed to find romfile "/home/gt710.dump"
###############################################################################
Run Code Online (Sandbox Code Playgroud)

我现在该怎么办?我睡不着大约 30 小时 :-(

小智 8

如果由于 AppArmor 而出现此错误,只需将 ROM 文件移动到/usr/share/vgabios(如果此目录不存在,请制作此目录)。默认情况下,apparmor 配置文件允许从 kvm-qemu 读取此路径。

默认路径允许的其他一些:

  # access to firmware's etc
  /usr/share/kvm/** r,
  /usr/share/qemu/** r,
  /usr/share/qemu-kvm/** r,
  /usr/share/bochs/** r,
  /usr/share/openbios/** r,
  /usr/share/openhackware/** r,
  /usr/share/proll/** r,
  /usr/share/vgabios/** r,
  /usr/share/seabios/** r,
  /usr/share/misc/sgabios.bin r,
  /usr/share/ovmf/** r,
  /usr/share/OVMF/** r,
  /usr/share/AAVMF/** r,
  /usr/share/qemu-efi/** r,
  /usr/share/slof/** r,
Run Code Online (Sandbox Code Playgroud)