Je lis les données de plusieurs adaptateurs de série USB identiques sous Ubuntu 10.1. P>
À l'occasion, le chemin de leur / dev / tty change (par exemple, si d'autres périphériques USB sont connectés au démarrage). P>
J'ai besoin d'un moyen de faire référence à plusieurs reprises à la même adaptateur à travers de tels changements. P>
Les appareils ont tous les mêmes numéros de série, selon Udevadm. P>
Je pense que l'option la plus probable est d'identifier un adaptateur par lequel le port qu'il est connecté (ils ne sont pas déplacés). P>
Je peux trouver toutes sortes de chemins intéressants / dev qui pourrait fonctionner, mais malgré toutes les discussions sur Udev Online, je ne peux pas localiser une déclaration définitive sur le point de savoir si certaines de ces chemins sont statiques si l'appareil est branché dans une statique. Port. P>
7 Réponses :
Les appareils ont tous les mêmes numéros de série [..] p> blockQuote>
L'USB-PARSE-DevPath.PM s'adresse à cela en utilisant l'ID de bus et de port de l'adaptateur. P>
Il y a une solution. Il vaut mieux tard alors jamais;)
Utilisez la règle suivante voici mon et le Comme vous pouvez le constater. Nous pour créer des liens nommés vers Pro exemple, la commande suivante me donne les suivantes: p> donc, le Cordialement. P> p> udev code> à mapper
/ dev / ttyusb {?} Code> dans les ports
/ dev / usb /% bus_id-% port_id code> lien. p>
/etc/udev/rules.d/usb-parse-devpath.rules: code> p> p>
USB-PARS-DevPath.pm code> script: p>
/ dev / ttyusb {?} code> et placez-les au
/ dev / usb-ports CODE> dans le format suivant:
BUS_ID-PORT_ID < /code >.
bus_id code> est < Code> 3 code> et
port_id code> est
1 code> et j'ai maintenant suivi dans mes ports
/ dev / usb code>: p>
J'ai trouvé que changer les éléments d'impression $ [$ I + 1] pour imprimer $ éléments [$ i + 2] est plus utile ici; Étant donné que les deux ports USB sur le devant de mon ordinateur semblaient mapper de «1-1» sous le premier!
@JamesMuscat: Merci pour votre réponse.
Parlez de l'ingénierie! action == "Ajouter", Kernel == "TTYUSB [0-9] *", Symlink + = "USB-Ports / TTY-% S {../ BUSNUM} -% s {../ devpath}" code> fait la même chose.
Compte tenu de la réponse d'Ilya Matvejchikov, une bonne solution consiste à ajouter des règles UDev pour faire ce que vous voulez avec l'appareil. Comme vous, j'avais un problème similaire. J'ai eu une hausse sur un adaptateur USB à plusieurs séries et que le système passe parfois autour des numéros / dev / tty.
Ma solution consistait à créer une règle pour correspondre au type de périphérique par pilote et port, puis Créez un lien symbolique sur le port vers lequel mon onduleur était attaché. J'ai utilisé l'écrou pour surveiller l'onduleur, qui a toujours été branché dans le même port physique. P> maintenant je configure l'écrou pour toujours utiliser une constante / dev / noise-ups00, comme Le port série et la règle s'occupe de la mappage correctement lorsque le périphérique série USB est reconnu. P> Vous pouvez utiliser la commande LSUSB pour déterminer le nom du périphérique réel à utiliser dans la règle lorsqu'il est branché. p> p>
look avec créer une règle UDev: p> et déclencher udev p> $ udevadm info -n / dev / ttyusb0 -a code> quel port votre périphérique USB est branché. Les noyaux variables de l'un des périphériques parents doivent être quelque chose comme les noyaux == "1 -1.2: 1.0 ".
Les périphériques USB peuvent vous obtenir le numéro de port et le bus / développement. P>
J'ai aussi cherché à ce sujet pour trouver un moyen de trouver quel périphérique USB physique a été attribué / connecté à un nom de périphérique logique / dev. Donc, après quelques essais et erreurs, c'est ce qui a fonctionné le mieux pour moi:
Voir quels périphériques TTYUSBX logiques (où X est 0, 1, 2 ...): P>
$ usb-devices
J'ai beaucoup d'USB à des appareils série avec chaque em> de nombreux ports et des solutions
mentionné ci-dessus ne l'a pas tout à fait fait pour moi. Le "noyau" USB n'était pas suffisant dans mon cas, mais j'ai trouvé le numéro de port. P> Je suis conscient que ce que je propose maintenant peut être considéré comme un piratage insensé,
Mais ça marche pour moi .. Je serais vraiment ravi de voir une suggestion plus élégante
Cela accomplit quelque chose de similaire .. p> SO ... Basé sur le formulaire de réponse précédent Ilya Matveychikov P> fichier: /etc/uev/roules.d/usb-parrse-devpath.sh p> et fichier: /etc/udev/rules.d/99-usb-serial.rules
pour l'instant .. p> # ls -l /dev/TTYUSBs
lrwxrwxrwx. 1 root root 11 Jan 5 18:46 ttyUSB_Edgeport416_435100 -> ../ttyUSB20
lrwxrwxrwx. 1 root root 11 Jan 5 18:46 ttyUSB_Edgeport416_435101 -> ../ttyUSB21
lrwxrwxrwx. 1 root root 11 Jan 5 18:46 ttyUSB_Edgeport416_435102 -> ../ttyUSB22
lrwxrwxrwx. 1 root root 11 Jan 5 18:46 ttyUSB_Edgeport416_435103 -> ../ttyUSB23
lrwxrwxrwx. 1 root root 11 Jan 5 18:46 ttyUSB_Edgeport416_435104 -> ../ttyUSB24
lrwxrwxrwx. 1 root root 11 Jan 5 18:46 ttyUSB_Edgeport416_435105 -> ../ttyUSB25
lrwxrwxrwx. 1 root root 11 Jan 5 18:46 ttyUSB_Edgeport416_435106 -> ../ttyUSB26
lrwxrwxrwx. 1 root root 11 Jan 5 18:46 ttyUSB_Edgeport416_435107 -> ../ttyUSB27
lrwxrwxrwx. 1 root root 11 Jan 5 18:46 ttyUSB_Edgeport416_436100 -> ../ttyUSB28
lrwxrwxrwx. 1 root root 11 Jan 5 18:46 ttyUSB_Edgeport416_436101 -> ../ttyUSB29
lrwxrwxrwx. 1 root root 11 Jan 5 18:46 ttyUSB_Edgeport416_436102 -> ../ttyUSB30
lrwxrwxrwx. 1 root root 11 Jan 5 18:46 ttyUSB_Edgeport416_436103 -> ../ttyUSB31
lrwxrwxrwx. 1 root root 11 Jan 5 18:46 ttyUSB_Edgeport416_436104 -> ../ttyUSB32
lrwxrwxrwx. 1 root root 11 Jan 5 18:46 ttyUSB_Edgeport416_436105 -> ../ttyUSB33
lrwxrwxrwx. 1 root root 11 Jan 5 18:46 ttyUSB_Edgeport416_436106 -> ../ttyUSB34
lrwxrwxrwx. 1 root root 11 Jan 5 18:46 ttyUSB_Edgeport416_436107 -> ../ttyUSB35
lrwxrwxrwx. 1 root root 11 Jan 5 18:46 ttyUSB_Edgeport4_4341100 -> ../ttyUSB38
lrwxrwxrwx. 1 root root 11 Jan 5 18:46 ttyUSB_Edgeport4_4341101 -> ../ttyUSB39
lrwxrwxrwx. 1 root root 11 Jan 5 18:46 ttyUSB_Edgeport4_4342100 -> ../ttyUSB36
lrwxrwxrwx. 1 root root 11 Jan 5 18:46 ttyUSB_Edgeport4_4342101 -> ../ttyUSB37
lrwxrwxrwx. 1 root root 10 Jan 5 18:46 ttyUSB_Edgeport8_421100 -> ../ttyUSB2
lrwxrwxrwx. 1 root root 10 Jan 5 18:46 ttyUSB_Edgeport8_421101 -> ../ttyUSB3
lrwxrwxrwx. 1 root root 10 Jan 5 18:46 ttyUSB_Edgeport8_422100 -> ../ttyUSB4
lrwxrwxrwx. 1 root root 10 Jan 5 18:46 ttyUSB_Edgeport8_422101 -> ../ttyUSB5
lrwxrwxrwx. 1 root root 11 Jan 5 18:46 ttyUSB_Edgeport8_423100 -> ../ttyUSB18
lrwxrwxrwx. 1 root root 11 Jan 5 18:46 ttyUSB_Edgeport8_423101 -> ../ttyUSB19
lrwxrwxrwx. 1 root root 10 Jan 5 18:46 ttyUSB_Edgeport8_424100 -> ../ttyUSB0
lrwxrwxrwx. 1 root root 10 Jan 5 18:46 ttyUSB_Edgeport8_424101 -> ../ttyUSB1
lrwxrwxrwx. 1 root root 10 Jan 5 18:46 ttyUSB_Keyspan_USA-49WG_431100 -> ../ttyUSB6
lrwxrwxrwx. 1 root root 10 Jan 5 18:46 ttyUSB_Keyspan_USA-49WG_431101 -> ../ttyUSB7
lrwxrwxrwx. 1 root root 10 Jan 5 18:46 ttyUSB_Keyspan_USA-49WG_431102 -> ../ttyUSB8
lrwxrwxrwx. 1 root root 10 Jan 5 18:46 ttyUSB_Keyspan_USA-49WG_431103 -> ../ttyUSB9
lrwxrwxrwx. 1 root root 11 Jan 5 18:46 ttyUSB_Keyspan_USA-49WG_432100 -> ../ttyUSB10
lrwxrwxrwx. 1 root root 11 Jan 5 18:46 ttyUSB_Keyspan_USA-49WG_432101 -> ../ttyUSB11
lrwxrwxrwx. 1 root root 11 Jan 5 18:46 ttyUSB_Keyspan_USA-49WG_432102 -> ../ttyUSB12
lrwxrwxrwx. 1 root root 11 Jan 5 18:46 ttyUSB_Keyspan_USA-49WG_432103 -> ../ttyUSB13
lrwxrwxrwx. 1 root root 11 Jan 5 18:46 ttyUSB_Keyspan_USA-49WG_433100 -> ../ttyUSB14
lrwxrwxrwx. 1 root root 11 Jan 5 18:46 ttyUSB_Keyspan_USA-49WG_433101 -> ../ttyUSB15
lrwxrwxrwx. 1 root root 11 Jan 5 18:46 ttyUSB_Keyspan_USA-49WG_433102 -> ../ttyUSB16
lrwxrwxrwx. 1 root root 11 Jan 5 18:46 ttyUSB_Keyspan_USA-49WG_433103 -> ../ttyUSB17
résultat ressemble à quelque chose comme ceci: p>
J'ai trouvé cette réponse superutilisateur très utile: SuperUserSer.com/a/536648/27510