LINUX.ORG.RU

qemu зависает намертво при отключении usb устройства

 , , , ,


0

1

Пытаюсь пробрасывать в windows 10 usb устройства. Вот qemu скрипт для запуска ВМ:

#!/bin/sh
SPICE_PORT=5924
qemu-system-x86_64 -enable-kvm \
    -cpu host \
    -smp threads=6 \
    -drive file=/home/tui/Virtual/WinVM.img,if=virtio \
    -net nic -net user,hostname=windowsvm \
    -m 6G \
    -vga qxl \
    -spice port=${SPICE_PORT},disable-ticketing \
    -usbdevice tablet \
    -device virtio-serial \
    -chardev spicevmc,id=vdagent,name=vdagent \
    -device usb-ehci,id=ehci \
    -device usb-host,bus=ehci.0,vendorid=0x090c,productid=0x1000,id=fl0,port=2 \
    -device qemu-xhci,id=xhci \
    -device usb-host,bus=xhci.0,vendorid=0x2aab,productid=0x800a,id=flc,port=3 \
    -device usb-host,bus=xhci.0,vendorid=0x0483,productid=0x374b,id=stm,port=4 \
    -device virtserialport,chardev=vdagent,name=com.redhat.spice.0 \
    -monitor stdio \
    "$@"

При извлечении xhci usb-устройства выдаёт ошибку libusb: error [udev_hotplug_event] ignoring udev action bind в qemu monitor и виснет. Да так, что даже после убийства процесса, в эмуляторе терминала, в котором был запущен скрипт, нельзя ничего писать. usb, которое я прокидываю через ehci работает нормально, при его вынимании ничего не виснет, просто qemu monitor немного отругивается:

libusb: error [udev_hotplug_event] ignoring udev action bind
qemu-system-x86_64: libusb_release_interface: -4 [NO_DEVICE]
libusb: error [_open_sysfs_attr] open /sys/bus/usb/devices/1-1/bConfigurationValue failed ret=-1 errno=2

У меня qemu 5-ой версии со следующими флагами aio alsa bzip2 caps curl fdt filecaps jpeg ncurses nls opengl oss pin-upstream-blobs png python sdl seccomp slirp spice usb vhost-net virtfs vnc xattr xkb

Я прокидываю stm32f4 discovery плату и всё бы хорошо, но она самопроизвольно перезапускается. Например, это произошло при обновлении драйверов. Т. е. избежать передподключения нельзя. Кто виноват и что делать?


-smp threads=6

если я правильно понимаю, что это делает, то ты потенциально себе создаёшь проблемы с неизвестнымитными багами. в реальности нет процессоров с одним ядром и 6 потоками

anonymous ()