LINUX.ORG.RU

QEMU не работает проброс usb

 , , , ,


0

2

Пытаюсь прокинуть USB флешку в виртуальную машину. В конфиге машины Virsh пишу:

<hostdev mode="subsystem" type="usb">
    <source>
        <vendor id="0x0951"></vendor>
        <product id="0x1666"></product>
    </source>
</hostdev>

В результате в dmesg хоста и виртуалки имею сообщения «reset high-speed USB device number 5 using xhci_hcd», что либо сделать с ней, понятное дело, не получается.

Меняю флешку на 3G модем, меняю vendor и product id. В результате на хосте этот модем сбрасывается через 22 секунды 1 раз, а в виртуалке ничего кроме сообщений о подключении нет, но на команды модем не отвечает. Это в случае, если прописывать модем в конфиге виртуалки.

Если же модем пытаться подключить с помощью attach-device, он после сброса опять же через 22 секунды со стороны хоста исчезает из виртуалки и появляется на хосте. При этом Virsh при попытке повторного проброса пишет, что модем уже занят этой виртуалкой. Его нужно предварительно деаттачить.

Дальше меняю Virsh на чистый QEMU: qemu-system-x86_64 -accel kvm -hda /opt/qemu/test.qcow2 -m 8192 -nographic -smp 2 -device piix3-usb-uhci,id=usb,bus=pci.0,addr=0x4 --device usb-host,vendorid=0x0951,productid=0x1666. Ситуация абсолютно идентичная что с флешкой, что с модемом.

Итого, как я понял: QEMU цепляет девайс, он остаётся на хосте, и, когда девайс дёргает виртуалка, хост его сбрасывает. В случае с флешкой они сбрасывают её поочерёдно раз в полсекунды до бесконечности, а модем хост сбрасывает через 22 секунды.

Люди добрые, ну или злые, дайте плизки напутствия, куда копать дальше, я вот думаю уже 2 день, да вообще ничего придумать не могу(

Хост - Debian 12.5, виртуалка аналогично



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

на чистый QEMU

Не знаю, что там не так у тебя, но скину ссылку на арчвики. Там описаны три подхода к пробросу usb, в разделах 14.4, 14.5, 14.5.1.

я вот думаю уже 2 день, да вообще ничего придумать не могу

Хотя возможно ты уже все перепробовал. )

krasnh ★★★★
()
Последнее исправление: krasnh (всего исправлений: 1)

Предположу, что модем пробрасывается в виртуалку, в виртуалке срабатывает какой-то usb-modeswitch который заставляет модем перезапуститься, что «выкидывает его из VM».

Может выполнить usb-modeswitch на хосте и потом уже пробрасывать в VM?

P.S. Наличие строки usb устройства в конфигурации VM не будет повторно его пробрасывать при появлении на хосте, надо каждый раз делать attach-device, не уверен на счёт detach-device.

Flotsky ★★
()