Ubuntu

Ubuntu 18.04 升級後 QEMU USB 直通中斷

  • March 3, 2021

在過去的 2 年裡,我一直在執行一個通過 USB 設備傳遞到的 Windows VM。設備在 VM 執行時連接,使用virsh attach-device vm_name config_file.xmlconfig_file.xml例如:

<!-- Logitech Internet Navigator -->
<hostdev mode='subsystem' type='usb' managed='yes'>
 <source>
   <vendor id='0x046d'/>
   <product id='0xc308'/>
 </source>
</hostdev>

這一切都很好,直到我昨天決定是時候將我的 Ubuntu 16.04 升級到 18.04。現在將 USB 設備連接到 VM 不再起作用。

這是我看到的輸出:

$ virsh attach-device windows-gaming-uefi config/keyboard-white.xml 
error: Failed to attach device from config/keyboard-white.xml
error: internal error: unable to execute QEMU command 'device_add': failed to open host usb device 1:3

該設備肯定存在,這裡有一些lsusb輸出:

Bus 001 Device 003: ID 046d:c308 Logitech, Inc. Internet Navigator Keyboard

我查看了kern.logAppArmor 是否與它有關,但似乎並非如此。只是為了確保它不會干擾任何東西,我現在完全禁用了 AppArmor。

有沒有人知道如何解決這個問題?

編輯chmod -R go+rw /dev/bus/usb在嘗試連接 USB 設備之前做一個也無濟於事。

我設法通過首先從原始碼重新安裝 QEMU 來解決我的問題(請參閱https://askubuntu.com/questions/1067722/how-do-i-install-qemu-3-0-on-ubuntu-18-04):

sudo apt-get purge "qemu*"
sudo apt-get autoremove
sudo apt-get build-dep qemu

wget https://download.qemu.org/qemu-3.1.0.tar.xz
tar -xf qemu-3.1.0.tar.xz
rm qemu-3.1.0.tar.xz
cd qemu-3.1.0
./configure
make

sudo apt-get install checkinstall
sudo checkinstall make install

然後確保 QEMU 以 root 身份執行,將以下內容添加到/etc/libvirt/qemu.conf

user = "root"
group = "root"

最後重新載入 KVM 模組:

sudo rmmod kvm_intel
sudo rmmod kvm
sudo modprobe kvm
sudo modprobe kvm_intel
sudo systemctl restart libvirtd.service

在我看來,以 root 身份執行 QEMU 並不是絕對必要的,但我只是想讓它工作。

引用自:https://unix.stackexchange.com/questions/498451