IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Administration système Discussion :

Comment récupérer le ttyACMx associé à un périphérique USB ?


Sujet :

Administration système

  1. #1
    Expert confirmé

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2007
    Messages
    1 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 895
    Points : 4 551
    Points
    4 551
    Par défaut Comment récupérer le ttyACMx associé à un périphérique USB ?
    Le sujet lui même porte la question, maintenant, voici les limitations :

    * je connais le numéro de bus et le numéro de fichier du périphérique USB (ex: 004/081)
    * il faut que je puisse le faire automatiquement, par du code ou par un script shell quelconque
    * idéalement, l'information bus/file <---> device ttyACMx existe déjà quelque part, peut être dans /sys ou /proc
    * cette information doit être accessible à root, dans l'espace user (cad pas dans l'espace kernel ; je n'ai pas le droit de toucher au kernel...)

    Lorsque je plug le device (qui s'identifie comme un device CDC, même si ce n'est pas un modem USB), celui-ci est pris automatiquement en charge par le module kernel cdc_acm (jusque là, tout est normal). Ce driver crée un device /dev/ttyACMx (ou x = 0, 1, ... en fonction du nombre de devices déjà chargés). Le problème est que je ne sais pas associer mon device à ce terrible 'x', et qu'il peut y avoir plusieurs ttyACM existant (par exemple, un véritable modem USB + deux périphériques que je suis sensé gérer).

    Bref, si quelqu'un a des infos, je suis preneur. Si vous avez des questions, ou si vous trouvez que je ne suis pas très clair, n'hésitez pas à m'interpeller.

    A bientôt !
    [FAQ des forums][FAQ Développement 2D, 3D et Jeux][Si vous ne savez pas ou vous en êtes...]
    Essayez d'écrire clairement (c'est à dire avec des mots français complets). SMS est votre ennemi.
    Evitez les arguments inutiles - DirectMachin vs. OpenTruc ou G++ vs. Café. C'est dépassé tout ça.
    Et si vous êtes sages, vous aurez peut être vous aussi la chance de passer à la télé. Ou pas.

    Ce site contient un forum d'entraide gratuit. Il ne s'use que si l'on ne s'en sert pas.

  2. #2
    Rédacteur
    Avatar de CedrX
    Inscrit en
    Avril 2007
    Messages
    1 111
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 1 111
    Points : 1 525
    Points
    1 525
    Par défaut
    Le problème est que je ne sais pas associer mon device à ce terrible 'x', et qu'il peut y avoir plusieurs ttyACM existant (par exemple, un véritable modem USB + deux périphériques que je suis sensé gérer).
    Ton /dev/ttyACMx va bien avoir une date de création.
    Il suffit donc de trouver le /dev/ttyACMx le plus récent.
    L'option -t de ls t'y aidera je pense.

  3. #3
    Expert confirmé

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2007
    Messages
    1 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 895
    Points : 4 551
    Points
    4 551
    Par défaut
    Citation Envoyé par CedrX Voir le message
    Ton /dev/ttyACMx va bien avoir une date de création.
    Il suffit donc de trouver le /dev/ttyACMx le plus récent.
    L'option -t de ls t'y aidera je pense.
    L'idée m'avait traversé l'esprit, mais elle est impraticable pour plusieurs raisons - la principale étant que mon programme peut être lancé bien après la création des devices. Merci quand même pour la réponse.

    Fort heureusement, la lib HAL est venue à mon secours. Je parcours les UDI, et si un périphérique que je gère (vid et pid ok, usb bus + usb file ok) a un fils serial_unknown_0, alors je peux récupérer le path vers le device ttyACMx qui correspond.

    Le code est un peu sauvage pour être posté ici, mais ça fonctionne, ce qui est plutôt bien.
    [FAQ des forums][FAQ Développement 2D, 3D et Jeux][Si vous ne savez pas ou vous en êtes...]
    Essayez d'écrire clairement (c'est à dire avec des mots français complets). SMS est votre ennemi.
    Evitez les arguments inutiles - DirectMachin vs. OpenTruc ou G++ vs. Café. C'est dépassé tout ça.
    Et si vous êtes sages, vous aurez peut être vous aussi la chance de passer à la télé. Ou pas.

    Ce site contient un forum d'entraide gratuit. Il ne s'use que si l'on ne s'en sert pas.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 30/07/2012, 16h08
  2. [SP-2010] WorkflowStarted : comment récupérer le SPListItem associé
    Par thegritch dans le forum SharePoint
    Réponses: 6
    Dernier message: 14/10/2011, 16h34
  3. Réponses: 1
    Dernier message: 10/11/2008, 17h09
  4. [JSTL] [Map] comment récupérer la valeur associée à une clé
    Par jamal_id dans le forum Taglibs
    Réponses: 8
    Dernier message: 02/08/2007, 15h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo