le pilote d'option correspondait correctement à l'ID USB et charge le pilote pour ce périphérique. Par exemple
# lsusb
Bus 001 Device 002: ID 19d2:0031 ONDA Communication S.p.A. ZTE MF636
Bus 001 Device 003: ID 12d1:14ac Huawei Technologies Co., Ltd.
Il crée également des périphériques ttyUSBX pour gérer le matériel
crw-rw---- 1 root uucp 188, 0 Jul 4 13:48 /dev/ttyUSB0
crw-rw---- 1 root uucp 188, 1 Jul 4 13:49 /dev/ttyUSB1
crw-rw---- 1 root uucp 188, 2 Jul 4 13:35 /dev/ttyUSB2
crw-rw---- 1 root uucp 188, 3 Jul 4 13:37 /dev/ttyUSB3
crw-rw---- 1 root uucp 188, 4 Jul 4 13:37 /dev/ttyUSB4
crw-rw---- 1 root uucp 188, 5 Jul 4 13:37 /dev/ttyUSB5
crw-rw---- 1 root uucp 188, 6 Jul 4 13:37 /dev/ttyUSB6
crw-rw---- 1 root uucp 188, 7 Jul 4 13:37 /dev/ttyUSB7
Cependant, j'ai plus d'un périphérique série USB et je veux savoir quel ttyUSB est pour quel USBID. Ex. / dev / ttyUSB1 -> 19d2: 0031
Savez-vous à quel moment je peux obtenir ces informations?
Réponses:
Jetez un œil au système de fichiers sysfs. Un exemple pour ma série USB:
Comme vous pouvez le voir,
ttyUSB0
mappe sur067b:2303
sur mon ordinateur. D'autres endroits méritent d'être explorés/sys/class/tty/
. Faites attention aux liens symboliques.la source
cat
leuevent
fichier à partir du résultat defind /sys -name ttyACM0
, par exemple. Remplacez le nom de nœud de votre périphérique série.Vous pouvez essayer de voir si vos appareils sont enregistrés sous / dev / serial / by-id /
Ces noms doivent être cohérents et pointeront (lien symbolique) vers le ttyUSBx correct
la source
ls -l /dev/serial/by-id
ne renvoie qu'un seul adaptateur../../ttyUSB1
, alors qu'ills -l /sys/bus/usb-serial/devices
me montre les deux. Je ne pense donc pas que ce soit une bonne réponse.J'ai eu un problème similaire .
Écrivez ceci à /etc/udev/rules.d/50-usb.rules
jusqu'à la fin. Redémarrez.
Vous pouvez maintenant utiliser
/dev/ONDA
pour accéder à votre appareil ONDA.Si vous souhaitez que les utilisateurs non root puissent les utiliser, ajoutez
à la fin de chaque ligne.
la source
udevadm info --name=/dev/ttyACM0
J'utiliserais udev et j'écrirais quelques règles qui créent des liens symboliques pour les appareils.
Pour obtenir suffisamment d'informations pour distinguer les appareils, essayez quelque chose comme ceci pour tous les appareils:
la source
Les commandes suivantes me donneront la liste des noms de périphériques ttyUSB associés à 19d2: 0016 (qui est l'identifiant de "mode modem" d'une clé ZTE MF831 LTE, le vôtre peut différer.):
Cela va parcourir une liste de fichiers avec le nom de fichier ttyUSB *, y compris les liens symboliques, dans / sys / bus / usb / devices. Dans les résultats, nous rechercherons un fichier nommé modalias et rechercherons une chaîne contenant l'ID de fournisseur "v" "19d2" et l'ID de produit "p" 0016. Si la sortie correspond, nous ferons écho à une chaîne préfixée avec "/ dev / "devant l'USB? Nom. Afaik le premier ou généralement le dernier (numéro le plus élevé) est le port modem pour les appareils ZTE. Vous pouvez répercuter les résultats dans un fichier dans / tmp / et head -n1 ou tail -n1 les lignes en conséquence. Si vous avez des concentrateurs, vous devrez probablement augmenter la profondeur maximale.
Ce n'est pas la manière la plus élégante, mais cela fonctionnera sur presque toutes les variantes de Linux.
la source