Salut,
J’ai actuellement zigbee2mqtt qui tourne sur une VM classique, ça marche très bien depuis pas mal de temps.
J’avais commencé à monter des éléments sous Docker dans un LXC Proxmox mais rien qui nécessitait de piloter du matériel et je me retrouve comme beaucoup avec un problème, probablement liée (même pas certain) à l’USB passthrough.
J’ai mis à jour Proxmox en 8.2.8 car j’ai vu qu’ils avait introduit l’USB passthough dans la partie Resources.
Depuis l’hôte Proxmox :
root@pve2yp:~# ls -l /dev/serial/by-id
total 0
lrwxrwxrwx 1 root root 13 Nov 16 19:39 usb-1a86_USB_Serial-if00-port0 -> ../../ttyUSB0
La configuration du Device sur le LXC Docker :
Dans le conteneur Docker, je retrouve bien ma clef POP :
root@docker:~# ls -l /dev/serial/by-id/usb-1a86_USB_Serial-if00-port0
crw-rw---- 1 root root 188, 0 Nov 16 18:41 /dev/serial/by-id/usb-1a86_USB_Serial-if00-port0
Mais en essayant de déployer un Stacks (Docker Compose) ou directement à partir de la ligne de commande Docker j’ai une erreur :
docker: Error response from daemon: failed to create task for container: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: error during container init: error creating device nodes: mount /dev/ttyUSB0:/var/lib/docker/overlay2/57907ebd0d70e18055abb8b88420afde7dcd73cbcc0c4c8c933e26e392a3324e/merged/dev/ttyUSB0 (via /proc/self/fd/6), flags: 0x1000: no such file or directory: unknown.
ERRO[0000] error waiting for container:
La ligne de commande est celle pris sur le site de zigbee2mqtt et légèrement modifiée :
docker run \
--name zigbee2mqtt \
--restart=unless-stopped \
--device=/dev/serial/by-id/usb-1a86_USB_Serial-if00-port0:/dev/ttyUSB0 \
-p 8080:8080 \
-v /srv/docker/zigbee2mqtt/data:/app/data \
-v /run/udev:/run/udev:ro \
-e TZ=Europe/Paris \
koenkk/zigbee2mqtt
Dans la conf du LXC j’ai unprivileged: 1
Est-ce que ça parle à quelqu’un cette erreur durant le mount ?
J’ai tenté avec les anciennes méthodes que j’ai trouvé en indiquant des infos dans la conf du LXC mais sans plus de succès
lxc.cgroup2.devices.allow
lxc.mount.entry