Xen в DomU (PV) не передает USB-устройство
Minusqwe 12 марта, 2013 - 17:04
Установлен xen-4.2.0. dom0 и domU оба работают на gentoo-sources-3.7.10.
Конструкция в конфиге
usb = 1 usbdevice = "host:046d:09a4"
работает только для HVM.
Вопрос в том, возможно ли с этим ядром проброс usb в PV домен по одному, без того чтобы выделять весь pci одной из виртуалок.
На сервере запущен еще один PV домен с Debian Wheezy. У него аналогичная проблема. На всякий случай уточню: устройства пытаюсь отдать поочередно то одной машине, то другой.
Действую по инструкции отсюда.
dom0# xm usb-list-assignable-devices
1-1.1 : ID 04b8:0007 EPSON USB2.0 Printer (Hi-speed)
1-1.2 : ID 046d:09a4 Logitech, Inc. QuickCam E 3500
2-1.2 : ID 0bda:0156 Generic USB2.0-CRW
2-1.5 : ID 8564:1000 JetFlash Mass Storage Device
При попытке передать usb в PV домен вываливает ошибку
dom0# xm usb-hc-create gentoo 2 2 dom0# xm usb-list gentoo Idx BE state usb-ver BE-path 0 0 1 USB2.0 /local/domain/0/backend/vusb/8/0 port 1: port 2: dom0# xm usb-attach gentoo 0 1 1-1.2 Unexpected error: <class 'xen.util.vusb_util.UsbDeviceParseError'> Please report to Traceback (most recent call last): File "/usr/sbin/xm", line 7, in <module> main.main(sys.argv) File "/usr/lib64/python2.7/site-packages/xen/xm/main.py", line 3983, in main _, rc = _run_cmd(cmd, cmd_name, args) File "/usr/lib64/python2.7/site-packages/xen/xm/main.py", line 4007, in _run_cmd return True, cmd(args) File "/usr/lib64/python2.7/site-packages/xen/xm/main.py", line 3046, in xm_usb_attach if vusb_util.bus_is_assigned(bus): File "/usr/lib64/python2.7/site-packages/xen/util/vusb_util.py", line 275, in bus_is_assigned raise UsbDeviceParseError("Can't get assignment status: (%s)." % bus) xen.util.vusb_util.UsbDeviceParseError: vusb: Error parsing USB device info: Can't get assignment status: (1-1.2).
domU# lsusb
unable to initialize libusb: -99
При этом в гостевой системе нет директории /dev/bus/. Драйвера для usb при загрузке domU подгружаются, что следует из dmesg.
Версия и USE-флаги xen:
app-emulation/xen-4.2.0-r1 (python_single_target_python2_7 python_targets_python2_7 -custom-cflags -debug -flask -pae -python_single_target_python2_6 -python_targets_python2_6 -xsm) xen-tools-4.2.0-r3 (hvm pygrub python_single_target_python2_7 python_targets_python2_7 qemu screen xend -api -custom-cflags -debug -doc -flask -ocaml -python_single_target_python2_6 -python_targets_python2_6 -static-libs)
Настройки ядра у dom0:
dom0# grep -R XEN .config CONFIG_XEN=y CONFIG_XEN_DOM0=y CONFIG_XEN_PRIVILEGED_GUEST=y CONFIG_XEN_PVHVM=y CONFIG_XEN_MAX_DOMAIN_MEMORY=500 CONFIG_XEN_SAVE_RESTORE=y # CONFIG_XEN_DEBUG_FS is not set CONFIG_PCI_XEN=y CONFIG_XEN_PCIDEV_FRONTEND is not set # CONFIG_XEN_BLKDEV_FRONTEND is not set CONFIG_XEN_BLKDEV_BACKEND=m # CONFIG_XEN_NETDEV_FRONTEND is not set CONFIG_XEN_NETDEV_BACKEND=m CONFIG_INPUT_XEN_KBDDEV_FRONTEND=y CONFIG_HVC_XEN=y CONFIG_HVC_XEN_FRONTEND=y # CONFIG_XEN_WDT is not set CONFIG_XEN_FBDEV_FRONTEND=y CONFIG_XEN_BALLOON=y CONFIG_XEN_SCRUB_PAGES=y CONFIG_XEN_DEV_EVTCHN=y CONFIG_XEN_BACKEND=y CONFIG_XENFS=y CONFIG_XEN_COMPAT_XENFS=y CONFIG_XEN_SYS_HYPERVISOR=y CONFIG_XEN_XENBUS_FRONTEND=y CONFIG_XEN_GNTDEV=y # CONFIG_XEN_GRANT_DEV_ALLOC is not set CONFIG_SWIOTLB_XEN=y CONFIG_XEN_PCIDEV_BACKEND=y CONFIG_XEN_PRIVCMD=y CONFIG_XEN_ACPI_PROCESSOR=m # CONFIG_XEN_MCE_LOG is not set dom0# grep -R USB .config | grep -v "is not set" CONFIG_USB_HID=y CONFIG_USB_HIDDEV=y CONFIG_USB_ARCH_HAS_OHCI=y CONFIG_USB_ARCH_HAS_EHCI=y CONFIG_USB_ARCH_HAS_XHCI=y CONFIG_USB_SUPPORT=y CONFIG_USB_COMMON=y CONFIG_USB_ARCH_HAS_HCD=y CONFIG_USB=y CONFIG_USB_DEBUG=y CONFIG_USB_ANNOUNCE_NEW_DEVICES=y CONFIG_USB_MON=y CONFIG_USB_EHCI_HCD=y CONFIG_USB_OHCI_HCD=y CONFIG_USB_OHCI_LITTLE_ENDIAN=y CONFIG_USB_UHCI_HCD=y CONFIG_USB_PRINTER=y CONFIG_USB_STORAGE=y
Ядро domU:
domU# grep -R XEN .config CONFIG_XEN=y CONFIG_XEN_DOM0=y CONFIG_XEN_PRIVILEGED_GUEST=y CONFIG_XEN_PVHVM=y CONFIG_XEN_MAX_DOMAIN_MEMORY=500 CONFIG_XEN_SAVE_RESTORE=y # CONFIG_XEN_DEBUG_FS is not set CONFIG_PCI_XEN=y CONFIG_XEN_PCIDEV_FRONTEND=y CONFIG_XEN_BLKDEV_FRONTEND=y CONFIG_XEN_BLKDEV_BACKEND=y CONFIG_XEN_NETDEV_FRONTEND=y # CONFIG_XEN_NETDEV_BACKEND is not set CONFIG_INPUT_XEN_KBDDEV_FRONTEND=y CONFIG_HVC_XEN=y CONFIG_HVC_XEN_FRONTEND=y # CONFIG_XEN_WDT is not set CONFIG_XEN_FBDEV_FRONTEND=y CONFIG_XEN_BALLOON=y CONFIG_XEN_SCRUB_PAGES=y # CONFIG_XEN_DEV_EVTCHN is not set CONFIG_XEN_BACKEND=y CONFIG_XENFS=m CONFIG_XEN_COMPAT_XENFS=y CONFIG_XEN_SYS_HYPERVISOR=y CONFIG_XEN_XENBUS_FRONTEND=y # CONFIG_XEN_GNTDEV is not set CONFIG_XEN_GRANT_DEV_ALLOC=m CONFIG_SWIOTLB_XEN=y # CONFIG_XEN_PCIDEV_BACKEND is not set CONFIG_XEN_PRIVCMD=m CONFIG_XEN_ACPI_PROCESSOR=y # CONFIG_XEN_MCE_LOG is not set domU# grep -R USB .config | grep -v "is not set" CONFIG_USB_HID=y CONFIG_USB_HIDDEV=y CONFIG_USB_ARCH_HAS_OHCI=y CONFIG_USB_ARCH_HAS_EHCI=y CONFIG_USB_ARCH_HAS_XHCI=y CONFIG_USB_SUPPORT=y CONFIG_USB_COMMON=y CONFIG_USB_ARCH_HAS_HCD=y CONFIG_USB=y CONFIG_USB_DEBUG=y CONFIG_USB_ANNOUNCE_NEW_DEVICES=y CONFIG_USB_MON=y CONFIG_USB_EHCI_HCD=m CONFIG_USB_OHCI_HCD=m CONFIG_USB_OHCI_LITTLE_ENDIAN=y CONFIG_USB_UHCI_HCD=m CONFIG_USB_PRINTER=y CONFIG_USB_STORAGE=y CONFIG_USB_SERIAL=y
»
- Для комментирования войдите или зарегистрируйтесь
Цитата: dom0# xm usb-attach
Разобрал это исключение, которое выбрасывает /usr/lib64/python2.7/site-packages/xen/util/vusb_util.py и обнаружил, что ошибка вызвана отсутствием файла /sys/bus/usb/drivers/usbback/port_ids. Таким образом мне все-таки нужен модуль ядра usbback, а в текущей версии gentoo-sources (3.7.10) он не обнаружен.
Остается вариант с расшариванием usb с помощью usbip. Хотя и его запустить не удается. По этому вопросу нужно заводить отдельную тему на форуме.
http://new-wiki.xen.org/old-w
Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)
Ох не зря многие валят с хена
Ох не зря многие валят с хена квм/опенвз - кака еще та ( определенно академическая )
Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)
http://wiki.xen.org/xenwiki/XenUSBPassthrough
Судя по версиям ядер, в которых есть поддержка Xen USB Passthrough, счастье нам наступит не скоро.
google:// virt-v2v , emerge
google:// virt-v2v , emerge llibguestfs; wget virt-v2v, virt-v2v Xen->KVM ;)
Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)