
Описание
USB не виден на гостевой системе Debian. Я не вижу ничего очевидного в журналах, но поскольку у меня нет большого опыта в виртуализации, я предполагаю, что пропустил какой-то шаг в настройке, возможно, что-то очень маленькое и очевидное для кого-то с большим опытом.
Программное обеспечение
Эмулятор QEMU версии 5.0.0 (Debian 1:5.0-5ubuntu6~ppa00)
Хост: Ubuntu 20.04
Гость: Debian 11
Действия по воспроизведению
Добавлятьppa:jacob/виртуализациядля qemu-kvm, так как в репозитории Ubuntu 20.04 есть только 4.x, а обратные порты вызывают много ошибок.
sudo apt install qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils virt-manager
Если вы столкнулись с ошибкой «необходимо указать путь к хранилищу», обойдите ее, переместив установочный ISO-образ в место, которое вы хотите использовать для хранения, снова выберите его там, после чего вы сможете создать том для хранения.
Установите Debian 11, не внося никаких других изменений в virt manager.
Моймонитор.pyвыход при поочередном подключении и отключении ключей USB 2 и USB 3 был следующим:
DEVPATH=/devices/pci0000:00/0000:00:14.0/usb3/3-2
DEVPATH=/devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:1.0
DEVPATH=/devices/pci0000:00/0000:00:14.0/usb4/4-2
DEVPATH=/devices/pci0000:00/0000:00:14.0/usb4/4-2/4-2:1.0
- config.yaml:
virtual_machines:
debian:
socket: /tmp/my-vm-sock
delay: 1
hubs:
- xhci0.0
- xhci1.0
ports:
- /devices/pci0000:00/0000:00:14.0/usb3/3-2
- /devices/pci0000:00/0000:00:14.0/usb4/4-2
Оставьте USB-накопитель отключенным.
- /etc/udev/rules.d/99-zzz-local.rules:
SUBSYSTEM=="usb", ACTION=="add", RUN+="/bin/bash -c 'python3 /home/anonymousaard/hotplugger/hotplugger.py >> /tmp/hotplugger.log' 2>&1"
SUBSYSTEM=="usb", ACTION=="remove", RUN+="/bin/bash -c 'python3 /home/anonymousaard/hotplugger/hotplugger.py >> /tmp/hotplugger.log' 2>&1"
- Редактировать /etc/libvirt/qemu/debian.xml
Я получал сообщения об ошибках, связанных с тем, что xhci не найден, пока не объединил верхние 4 строки с аргументами qemu, предложенными в readme-файле hotplugger, чтобы сформировать:
<qemu:arg value="-device"/>
<qemu:arg value="nec-usb-xhci,id=xhci0"/>
<qemu:arg value="-device"/>
<qemu:arg value="nec-usb-xhci,id=xhci1"/>
<qemu:arg value="-chardev"/>
<qemu:arg value="socket,id=mon1,server=on,wait=off,path=/tmp/my-vm-sock"/>
<qemu:arg value="-mon"/>
<qemu:arg value="chardev=mon1,mode=control,pretty=on"/>
</qemu:commandline>
</domain>
export EDITOR=nano
sudo virsh edit debian
Отредактируйте qemu.conf согласно файлу readme, чтобы обойти проблему apparmor.
Выполните действия по устранению неполадок, удалив hotplugger/tmp, перезагрузив систему, перезагрузив udev и просмотрев файл журнала udev.
Загрузите Debian и после входа в систему подключите USB-ключ к порту, после чего убедитесь, что хост видит его нормально, но на Debian его нет. Сделайте это во второй раз, чтобы продемонстрировать, что первоначальная ошибка udev возникла только из-за перезагрузки.
Есть ли что-то очевидное в описанной мной настройке или в приложенных журналах, что могло бы подсказать, в чем проблема и как ее можно решить?