LINUX.ORG.RU

libvirtd падает при попытке пробросить железо в виртуальную машину

 , ,


0

1

Пробую пробросить usb-контроллер.

IOMMU Group 18 04:00.0 USB controller [0c03]: ASMedia Technology Inc. ASM1042 SuperSpeed USB Host Controller [1b21:1042]
...
Bus 8 --> 0000:04:00.0 (IOMMU group 18)
Bus 008 Device 002: ID 0c45:7603 Microdia 
Bus 008 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Bus 9 --> 0000:04:00.0 (IOMMU group 18)
Bus 009 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
...
IOMMU group 18
[RESET]	04:00.0 USB controller [0c03]: ASMedia Technology Inc. ASM1042 SuperSpeed USB Host Controller [1b21:1042]

в syslog показывает следующее

Dec 11 05:20:08 tarh-work kernel: [ 1315.061761] xhci_hcd 0000:04:00.0: remove, state 4
Dec 11 05:20:08 tarh-work kernel: [ 1315.061766] usb usb9: USB disconnect, device number 1
Dec 11 05:20:08 tarh-work kernel: [ 1315.121229] xhci_hcd 0000:04:00.0: USB bus 9 deregistered
Dec 11 05:20:08 tarh-work kernel: [ 1315.121250] xhci_hcd 0000:04:00.0: remove, state 1
Dec 11 05:20:08 tarh-work kernel: [ 1315.121255] usb usb8: USB disconnect, device number 1
Dec 11 05:20:08 tarh-work kernel: [ 1315.121257] usb 8-1: USB disconnect, device number 2
Dec 11 05:20:08 tarh-work acpid: input device has been disconnected, fd 24
Dec 11 05:20:08 tarh-work acpid: input device has been disconnected, fd 25
Dec 11 05:20:08 tarh-work kernel: [ 1315.316563] xhci_hcd 0000:04:00.0: USB bus 8 deregistered
Dec 11 05:20:08 tarh-work kernel: [ 1315.738487] audit: type=1400 audit(1512958808.664:40): apparmor=«STATUS» operation=«profile_load» profile=«unconfined» name=«libvirt-67712f87-3f0b-4731-8cee-402e8a86250d» pid=7351 comm=«apparmor_parser»
Dec 11 05:20:08 tarh-work kernel: [ 1315.738708] audit: type=1400 audit(1512958808.664:41): apparmor=«STATUS» operation=«profile_load» profile=«unconfined» name=«libvirt-67712f87-3f0b-4731-8cee-402e8a86250d//qemu_bridge_helper» pid=7351 comm=«apparmor_parser»
Dec 11 05:20:08 tarh-work libvirtd[2145]: Unable to read from monitor: Connection reset by peer
Dec 11 05:20:08 tarh-work libvirtd[2145]: *** Error in `/usr/sbin/libvirtd': realloc(): invalid next size: 0x00005610a82527e0 ***
Dec 11 05:20:08 tarh-work libvirtd[2145]: ======= Backtrace: =========
Dec 11 05:20:08 tarh-work libvirtd[2145]: /lib/x86_64-linux-gnu/libc.so.6(+0x777e5)[0x7ff7b09827e5]
Dec 11 05:20:08 tarh-work libvirtd[2145]: /lib/x86_64-linux-gnu/libc.so.6(+0x834aa)[0x7ff7b098e4aa]
Dec 11 05:20:08 tarh-work libvirtd[2145]: /lib/x86_64-linux-gnu/libc.so.6(realloc+0x179)[0x7ff7b098f839]
Dec 11 05:20:08 tarh-work libvirtd[2145]: /usr/lib/x86_64-linux-gnu/libvirt.so.0(virReallocN+0x43)[0x7ff7b136f3b3]
Dec 11 05:20:08 tarh-work libvirtd[2145]: /usr/lib/libvirt/connection-driver/libvirt_driver_qemu.so(+0x7d229)[0x7ff789cf8229]
Dec 11 05:20:08 tarh-work libvirtd[2145]: /usr/lib/libvirt/connection-driver/libvirt_driver_qemu.so(+0x9350c)[0x7ff789d0e50c]
Dec 11 05:20:08 tarh-work libvirtd[2145]: /usr/lib/x86_64-linux-gnu/libvirt.so.0(virEventPollRunOnce+0x7b3)[0x7ff7b138d453]
Dec 11 05:20:08 tarh-work libvirtd[2145]: /usr/lib/x86_64-linux-gnu/libvirt.so.0(virEventRunDefaultImpl+0x41)[0x7ff7b138bcc1]
Dec 11 05:20:08 tarh-work libvirtd[2145]: /usr/lib/x86_64-linux-gnu/libvirt.so.0(virNetDaemonRun+0x14d)[0x7ff7b14d7d6d]
Dec 11 05:20:08 tarh-work libvirtd[2145]: /usr/sbin/libvirtd(+0x14407)[0x5610a666c407]
Dec 11 05:20:08 tarh-work libvirtd[2145]: /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf0)[0x7ff7b092b830]
Dec 11 05:20:08 tarh-work libvirtd[2145]: /usr/sbin/libvirtd(+0x14bd9)[0x5610a666cbd9]
Dec 11 05:20:08 tarh-work libvirtd[2145]: ======= Memory map: ========

МНОГО БУКФ


я так понимаю, что ядро нормально отключает usb-устройство и сыпется именно libvirtd.

Что с этим можно сделать? Как получить результат?

PS. ubuntu 16.04

★★★★★

Последнее исправление: targitaj (всего исправлений: 3)

может мне попробовать запустить машину БЕЗ libvirt?

targitaj ★★★★★
() автор топика

Что с этим можно сделать?

Если хочешь сидеть на LTS, то видимо забить на пробрасыввние USB контроллера. Все равнр libvirt/qemu дает аж несколько способов проброса usb девайсов и особенно девайсов ввода: можно пробросить сами девайсы и подключить их к виртуальному контроллеру, можно перенаправить их с хоста через usb redirection и virt viewer, деввйсы ввода можно перенаправить через evdev еще да и по дефолту ввод через virt-viewer работает нормально. Кроме того есть еще USBIP.

Короче есть целая пачечка костылей для обхода твоей проблемы.

o-
()
Последнее исправление: o- (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.