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です。

関連情報