libvirt LXC 게스트에서 패스스루 USB 장치 권한을 설정하는 방법은 무엇입니까?

libvirt LXC 게스트에서 패스스루 USB 장치 권한을 설정하는 방법은 무엇입니까?

libvirt에 게스트 유형이 있고 lxc다음과 같은 USB 장치를 전달합니다.

<hostdev mode="subsystem" type="usb" managed="yes">
  <source>
    <vendor id="0x10c4"/>
    <product id="0xea60"/>
    <address bus="1" device="10"/>
  </source>
</hostdev>

장치는 다음과 같이 표시됩니다 /dev/bus/usb/001/010.

crwx------ 1 root root 189, 9 Sep  5 23:21 /dev/bus/usb/001/010

이와 같은 udev 규칙을 추가하십시오.

SUBSYSTEM=="usb", ATTRS{idVendor}=="10c4", ATTRS{idProduct}=="ea60", GROUP="hass", MODE="0660"

그런 다음 예를 들어 실행하십시오.

$ udevadm test /devices/pci0000:00/0000:00:07.1/0000:04:00.3/usb1/1-1/1-1.3

필요에 따라 소유자/권한을 변경하세요. 그러나 systemd는 기본적으로 컨테이너에서 udev를 실행하지 않기 때문에 재부팅 후 권한이 재설정됩니다.

systemd[1]: Rule-based Manager for Device Events and Files was skipped because of a failed condition check (ConditionPathIsReadWrite=/sys).

LXC 자체는 분명히 lxc.cgroup.devices.allow이 문제를 해결하는 것과 같은 지침을 지원합니다. libvirt LXC 게스트 장치 권한을 변경하는 가장 좋은 방법은 무엇입니까?

게스트와 uid/gid를 동기화해야 하므로 libivrt 호스트에서 udev 규칙을 통해 권한을 설정하는 것을 피하고 싶습니다.

게스트는 Arch이고 호스트는 Debian입니다.

관련 정보