Назад | Перейти на главную страницу

QEMU USB passthrough не работает

Я застрял в том, чтобы заставить USB-переход работать с гостевой ОС Windows 8.1 на Ubuntu Server 14.04. Я начал с установки qemu, используя документацию Ubuntu (https://help.ubuntu.com/community/KVM). USB-устройство (Datev mIdentity) было распознано гостем, но мне не удалось получить к нему доступ. Это та же ошибка, о которой сообщалось ранее (https://bugs.launchpad.net/qemu/+bug/1033727)

Вывод lsusb на хосте:

# lssub
[239775.341958] usb 3-4: hub failed to enable device, error -22
[239775.508845] usb 3-4: reset full-speed USB device number 11 using xhci_hcd
[239775.508893] xhci_hcd 0000:00:14.0: Setup ERROR: setup context command for slot 10.
[239775.509931] usb 3-4: hub failed to enable device, error -22
[239775.676980] usb 3-4: reset full-speed USB device number 11 using xhci_hcd
[239775.695110] xhci_hcd 0000:00:14.0: xHCI xhci_drop_endpoint called with disabled ep ffff8800cee83100
[239775.695114] xhci_hcd 0000:00:14.0: xHCI xhci_drop_endpoint called with disabled ep ffff8800cee83148
[239775.695115] xhci_hcd 0000:00:14.0: xHCI xhci_drop_endpoint called with disabled ep ffff8800cee83190
[239775.695517] usb 3-4: usbfs: process 23897 (pcscd) did not claim interface 0 before use
[239786.195869] usb 3-4: usbfs: interface 0 claimed by usbfs while 'qemu-system-x86' sets config #1

В /var/log/libvirt/qemu/VM.log я нашел следующую строку:

libusb_set_configuration: -6 [BUSY]

После долгого чтения я установил правило udev для предоставления доступа к libvirt-group, определил устройство в определении xml vm и проверил, блокирует ли appamor. Все выглядит хорошо, но все та же ошибка.

Затем я собираю qemu из исходного кода с установленным флагом --enable-libusb. Все та же ошибка.

Версия QEMU:

# /usr/bin/qemu-system-x86_64 -version
QEMU emulator version 2.0.0 (Debian 2.0.0+dfsg-2ubuntu1.13), Copyright (c) 2003-2008 Fabrice Bellard

Версия libsub:

# dpkg -l | grep libusb
ii  libgusb2:amd64                      0.1.6-5                               amd64        GLib wrapper around libusb1
ii  libusb-0.1-4:amd64                  2:0.1.12-23.3ubuntu1                  amd64        userspace USB programming library
ii  libusb-1.0-0:amd64                  2:1.0.17-1ubuntu2                     amd64        userspace USB programming library
ii  libusb-dev                          2:0.1.12-23.3ubuntu1                  amd64        userspace USB programming library development files
ii  libusbredirparser1:amd64            0.6-2ubuntu1                          amd64        Parser for the usbredir protocol (runtime)

Версия libvirt:

# dpkg -l | grep libvirt
ii  libvirt-bin                         1.2.2-0ubuntu13.1.10                  amd64        programs for the libvirt library
ii  libvirt0                            1.2.2-0ubuntu13.1.10                  amd64        library for interfacing with different virtualization systems
ii  python-libvirt                      1.2.2-0ubuntu2                        amd64        libvirt Python bindings

На данный момент я понятия не имею, что происходит. Я ценю любую помощь. Большое спасибо!