Ubuntu
Ubuntu 18.04 升級後 QEMU USB 直通中斷
在過去的 2 年裡,我一直在執行一個通過 USB 設備傳遞到的 Windows VM。設備在 VM 執行時連接,使用
virsh attach-device vm_name config_file.xml
,config_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.log
AppArmor 是否與它有關,但似乎並非如此。只是為了確保它不會干擾任何東西,我現在完全禁用了 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 並不是絕對必要的,但我只是想讓它工作。