Debian

Debian Jessie Qemu KVM GPU Passthrough to Windows Virtual Machine guest Virt-Manager error Bus PCI not found

  • October 4, 2016

我遇到了 Virt-Manager 不想啟動 VM 並給出錯誤的問題:

Error starting domain: internal error: process exited while connecting to monitor: char device redirected to /dev/pts/3 (label charserial0)
qemu-system-x86_64: -device ioh3420,bus=pci,addr=1c.0,multifunction=on,port=1,chassis=1,id=root.1: Bus 'pci' not found

如果我點擊詳細資訊,這裡是完整的錯誤:

Traceback (most recent call last):
File "/usr/share/virt-manager/virtManager/asyncjob.py", line 96, in cb_wrapper
callback(asyncjob, *args, **kwargs)
File "/usr/share/virt-manager/virtManager/asyncjob.py", line 117, in tmpcb
callback(*args, **kwargs)
File "/usr/share/virt-manager/virtManager/domain.py", line 1160, in startup
self._backend.create()
File "/usr/lib/python2.7/dist-packages/libvirt.py", line 917, in create
if ret == -1: raise libvirtError ('virDomainCreate() failed', dom=self)
libvirtError: internal error: process exited while connecting to monitor: char device redirected to /dev/pts/3 (label charserial0)

qemu-system-x86_64: -device ioh3420,bus=pci,addr=1c.0,multifunction=on,port=1,chassis=1,id=root.1: 找不到匯流排 ‘pci’

我通過 virsh edit 手動將一些命令行內容添加到 VM 的 xml 配置中,因為 virt-manager 沒有這些選項,即用於 GPU BIOS 文件等。這裡是 qemu 命令行標籤:

<qemu:commandline>
<qemu:arg value='-device'/>
<qemu:arg value='ioh3420,bus=pci,addr=1c.0,multifunction=on,port=1,chassis=1,id=root.1'/>
<qemu:arg value='-device'/>
<qemu:arg value='vfio-pci,host=04:00.0,bus=root.1,addr=00.0,multifunction=on,x-vga=on,romfile=/home/me/Downloads/Sapphire.R9280X.3072.131127_2.rom'/>
<qemu:arg value='-device'/>
<qemu:arg value='vfio-pci,host=04:00.1,bus=root.1'/>
<qemu:arg value='-bios'/>
<qemu:arg value='/usr/share/seabios/bios.bin'/>
<qemu:arg value='-cpu'/>
<qemu:arg value='host,kvm=off'/>
</qemu:commandline>

unname -a

Linux vmserver 3.16.0-customvmkernel #1 SMP Sun Sep 28 00:34:42 PDT 2014 x86_64 GNU/Linux

kvm –版本

QEMU emulator version 2.1.0 (Debian 2.1+dfsg-4), Copyright (c) 2003-2008 Fabrice Bellard  

我將 bus=pcie.0 或 bus=pci 更改為 bus=pci.0 顯然它的名稱取決於 xml 文件中使用的體系結構。使用我的而不是更流行的機器 q35 定義,預設為 pcie.0

它現在啟動沒有那個錯誤。

引用自:https://serverfault.com/questions/637644