Gestion de l'USB passthrough dans un conteneur LXC via la WebUI de Proxmox

Bonjour à tous,

Je suis actuellement entrain de faire des tests pour éventuellement migrer ma VM Proxmox (anciennement ESXI…) vers un conteneur LXC non privilégié. L’installation de Jeedom via le script se passe bien, l’accès au réseau est OK, j’attaque maintenant la gestion de mes 3 dongles, le modem Teleinfo, la clef zwave Stick Gen 5, la clef zigbee conbee et je rencontre un petit problème.

Une petite remarque avant de commencer, depuis l’execution du script d’installation de Jeedom dans le conteneur, la commande lsusb dans le conteneur me retourne l’ensemble des périmphériques USB de la machine hôte même si le conteneur n’est pas privilégié. Je trouve cela étrange. J’ai croisé sur d’autres topics des utilisateurs rencontrants le même comportement.

J’essaye d’utiliser l’activation du passthrough via la WebUI : Conteneur LXC → Ressources → Add → Device Passthrough

J’avais au début laissé l’UID et le GID à 0 mais cela ne fonctionnait pas dans jeedom (je pouvais néanmoins faire un cat sur mon modem teleinfo en root qui semblait alors m’afficher un flux de donnée) . Alors j’ai mis l’UID et le GID de l’utilisateur www-data et la ca fonctionne « presque ». En effet, jeedom ne semble pas détecter mes périphérique USB et ne les affiche pas dans les dropdown de sélection des périphériques dans les différents plugins mais quand le plugin me donne la possibilité d’entrer manuellement le chemin vers le périphérique (comme le plugin téléinfo) alors le plugin arrive a utiliser le périphérique.

Comment puis je faire pour que Jeedom détecte mes périphériques en passthrough et les affiche dans drowpdown de sélection?

NB : J’ai vue qu’il existe une méthode de configuration manuelle du passthrough en modifiant le fichier de configuration du conteneur mais je me disais que puisque Proxmox a intégré cette possibilité dans la webui autant utiliser cette possibilité…

Merci d’avance pour votre aide.

Richard

Bonjour,

Sur l’hôte proxmox as-tu essayé

ls -l /dev/serial/by-id

Ca doit donner un truc du genre

lrwxrwxrwx 1 root root 13 Sep 22 18:46 usb-FTDI_FT230X_Basic_UART_D307ORET-if00-port0 -> ../../ttyUSB1

Conteneur LXC → Ressources → Add → Device Passthrough
Entrer le Device Path comme ça :

/dev/serial/by-id/<device id>

Donc avec mon exemple :

/dev/serial/by-id/usb-FTDI_FT230X_Basic_UART_D307ORET-if00-port0

Après ici on voit une autre méthode en éditant

Merci pour ta reponse, c’est exactement ce que javais fais.

Concernant le GID, l’UiD et le mode partage qu’avais tu mis?

Richard

Je me réponds à moi-même. Je n’ai pas réussi a faire apparaître mes ports USB configuré en passthrough dans les dropdown de sélection des plugins mais j’ai trouvé une astuce qui permet de passer n’importe quel argument à un plugin via un dropdown existant et qui résiste à un redémarrage des plugins ou de jeedom.

En fait c’est plûtot simple. Dans votre navigateur web vous faites un clique droit → inspecter sur la dropdown de votre plugin. Cela devrait vous afficher le code source de la page à l’endroit de la drop-down. Vous éditer ensuite le code de la page via l’inspecteur afin de rajouter votre choix dans la drop-down en prenant soins de mettre en « value » le chemin vers votre port USB. Vous sélectionnez alors votre nouvelle option dans la dropdown → Enregistrer → Relancer le demon.

Et hop c’est bon.

Bonne journée à tous,

Bonjour a tous,

Je cherche a faire ca depuis ce matin 11h.

J ai installer debian 12 en LXC

J ai reussi en editant le fichier de conf a faire apparaitte ttyusb0 et ttyacm0 dans la liste de selection du plugin jeezigbee et zwave ui qui correspond bien au different port sur le pve

Mais au moment de lancer le demon ca n accroche pas.

Je vais essayer ta methode pour lier le materiel

Peut etre que ta methode + la modif de la conf mermettrait de ne pas editer le html du dropdown

@ripleyxlr8 tu sait m.expliquer ou trouver le GID, l’UiD de l utilisateur www-data comme toi ? Qui doit correspondre a l utilisateur jeedom non ?

Merci d avance

Edit : commande id www-data dans le shell du lxc

Bonjour

Utiliser la commande id en CLI. id + le nom de l’utilisateur.

root@Jeedom12:~# id www-data
uid=33(www-data) gid=33(www-data) groupes=33(www-data),5(tty),20(dialout),116(bluetooth)
root@Jeedom12:~# 

Cordialement

Merci je venais tour juste de trouver :wink:

je vais tester toute la procedure maintenent

Avec Zwave JS ça marche directement :slight_smile: pas besoin d’éditer le sélecteur de choix

merci pour la méthode, j’ai cherché avec les éditeurs de fichiers conf mais là c’est facile et ça marche

un grand merci

avec JeeZigbee la modif est obligatoire avec inspecteur

Demain je test pour crée le lien dans le fichier de configuration du pve

Pour le reseaux externe avec dns jeedom ca coince aussi

Une idee ?

@ptitdyno Je suppose que tu as trouvé la solution pour avoir le GID ou l’UID d’'un user, tu peux faire un id -u username et id -g username

@ripleyxlr8

Oui ca tourne deja sous lxc merci pour ton partage

J ai un pobleme reseaux externe avec la dns jeedom

Tu n as pas ce probleme ?

@ptitdyno désolé je n’utilise pas le DNS de Jeedom.

c’est bon j’ai trouvé, c’est facile en fait il faut editer le fichier de conf dans le pve :slight_smile: