Tried USB hotplug directions (https://stgraber.org/2017/03/27/usb-hotplug-with-lxd-containers/#comments). I can see the device within the container but no mount point in /dev is created. The device (Aeon Labs Zstick G2) uses OpenZwave as the interface. I’ve confirmed the HW is working fine using another machine. I also tried creating a unix-char link as well which then allowed the container to use the interface one time, then it was gone. I couldn’t reproduce. I tried using mknod but it will reports operation not permitted. At wits end and I think it’s going to be something really simple… If anyone has ideas, would be glad to hear them!
USB passthrough with LXD is limited to devices compatible with libusb, that is, those which use the /dev/bus/usb/ entries.
I suspect the device you’re dealing with instead has a dedicated kernel driver which creates a /dev/blahX type device for it. Those are better handled with our “unix-char” device type (but don’t benefit from the same hot-plug support as the libusb ones).
Thanks. I tried adding the unix-char link, but no luck. The device creates ttyUSB0 on the host, so I suspected what you suggested. Hot-plug is not important to me. Any pointers as to the unix-char failure or is this strictly in the app space and not LXD?
Did you do:
lxc config device add CONTAINER ttyusb unix-char path=/dev/ttyUSB0
Yup. Exactly (of course with name changes). I can see the new path created, but it still is not accessible.
Just a thought
Sounds like the USB is owned by another container on the host it’s plugged into. Is there another VM in the way?