다음 위치에 정의된 USB 장치가 있습니다 virt/usb-serial.xml
.
<serial type="dev">
<source path="/dev/serial/by-id/usb-dresden_elektronik_ingenieurtechnik_GmbH_ConBee_II_DE2403534-if00"/>
<target type="usb-serial" port="1">
<model name="usb-serial"/>
</target>
<address type="usb" bus="0" port="5"/>
</serial>
아래와 같이 성공적으로 연결했습니다.
virsh # detach-device hass4 virt/usb-serial.xml --persistent
Device detached successfully
VM은 USB 장치에 완벽하게 액세스할 수 있습니다. 그러나 호스트 장치를 다시 시작한 후 다음 USB 직렬 장치로 인해 가상 머신이 시작되지 않습니다.
virsh # start hass4
error: Failed to start domain 'hass4'
error: internal error: process exited while connecting to monitor: 2023-06-01T20:28:52.153257Z qemu-system-x86_64: -chardev serial,id=charserial1,path=/dev/serial/by-id/usb-dresden_elektronik_ingenieurtechnik_GmbH_ConBee_II_DE2403534-if00: Could not open '/dev/serial/by-id/usb-dresden_elektronik_ingenieurtechnik_GmbH_ConBee_II_DE2403534-if00': Permission denied
장치를 분리하면 VM이 정상적으로 부팅되지만 이상하게도 부팅 후에 장치를 다시 성공적으로 연결할 수 있습니다.
virsh # detach-device hass4 virt/usb-serial.xml --persistent
Device detached successfully
virsh # start hass4
Domain 'hass4' started
virsh # attach-device hass4 virt/usb-serial.xml
Device attached successfully
처음 시작할 때 왜 실패합니까? 권한 문제를 해결하는 방법은 무엇입니까? 맥락에 따라 다음과 같이 정의했습니다 /lib/udev/rules.d/51-qemu-usb-passthrough.rules
.
SUBSYSTEM=="usb", ATTRS{idVendor}=="1cf1" ATTRS{idProduct}=="0030" GROUP="libvirt"
이 장치에 해당하는 공급업체 및 제품 ID는 다음과 같습니다.
$ lsusb -d 1cf1:0030
Bus 003 Device 010: ID 1cf1:0030 Dresden Elektronik ZigBee gateway [ConBee II]
/etc/libvirt/qemu.conf
내가 설정한 것 :
user = "henrik"
group = "libvirt"
henrik
사용자 로서 나는 다음 명령을 실행합니다.