libvirt 和带有 virt-manager 的热插拔单个 USB 端口 - 快完成了吗?

libvirt 和带有 virt-manager 的热插拔单个 USB 端口 - 快完成了吗?

描述

Debian 客户机上看不到 USB。我无法从日志中看到任何明显的问题,但由于我没有太多的虚拟化经验,我想我错过了配置中的某个步骤,对于更有经验的人来说,这可能是一件非常小而明显的事。

软件

QEMU 模拟器版本 5.0.0(Debian 1:5.0-5ubuntu6~ppa00)

主机:Ubuntu 20.04

访客:Debian 11

热插拔

重现步骤

  • 添加ppa:jacob/虚拟化对于 qemu-kvm,因为 Ubuntu 的 20.04 repo 只有 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
  • 配置.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

在我将前 4 行与 hotplugger readme 中建议的 qemu 参数合并形成以下形式之前,我收到了未找到 xhci 的错误:

<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

debian.xml.txt

  • 根据自述文件编辑 qemu.conf 来解决 apparmor 问题。

  • 完成故障排除步骤:删除 hotplugger/tmp、重新启动系统、重新启动 udev 以及查看 udev 的日志文件。

  • 启动 Debian,登录后将 USB 密钥连接到端口,然后观察主机是否正常,但 Debian 上没有任何迹象。再次执行此操作以证明初始 udev 错误只是由重新启动引起的。

在我描述的设置或附加的日志中是否有任何明显的内容可以表明问题是什么,以及我如何解决它?

热插拔日志 udev 日志 libvirt_debian.log

相关内容