lsusb
sort le bus USB et les ports USB auxquels les périphériques sont connectés. dans la sortie, certains concentrateurs USB sont des concentrateurs USB internes auxquels sont également connectés bluetooth et webcam, voir https://unix.stackexchange.com/questions/144029/command-to-determine-ports-of-a-device-like-dev-tty-usb0
Vous devez déterminer sur quel bus USB vos ports externes sont reliés. Pour cela, vérifiez la sortie de lsusb -t
, puis connectez un périphérique USB et vérifiez à nouveau la sortie de lsusb -t
sur mon ordinateur.alors vous savez ce qui Adresses de vos trois ports USB externes ont dans vos périphériques arborescence USB interne:
ports USB internes:
/: Bus 04.Port 1: Dev 1, Class=root_hub, Driver=ohci_hcd/5p, 12M
/: Bus 03.Port 1: Dev 1, Class=root_hub, Driver=ohci_hcd/5p, 12M
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=ehci_hcd/5p, 480M
|__ Port 1: Dev 64, If 0, Class='bInterfaceClass 0x0e not yet handled', Driver=uvcvideo, 480M
|__ Port 1: Dev 64, If 1, Class='bInterfaceClass 0x0e not yet handled', Driver=uvcvideo, 480M
ports USB externes:
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci_hcd/5p, 480M
|__ Port 3: Dev 116, If 0, Class='bInterfaceClass 0xe0 not yet handled', Driver=rndis_host, 480M
|__ Port 3: Dev 116, If 1, Class=data, Driver=rndis_host, 480M
clé USB connecté vers le port externe # 2
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci_hcd/5p, 480M
|__ Port 2: Dev 119, If 0, Class=stor., Driver=usb-storage, 480M
|__ Port 3: Dev 116, If 0, Class='bInterfaceClass 0xe0 not yet handled', Driver=rndis_host, 480M
|__ Port 3: Dev 116, If 1, Class=data, Driver=rndis_host, 480M
après cette procédure, vous les 'adresses' de votre ports USB externes
dans dmesg
un périphérique USB connecté apparaît toujours avec une ligne qui contient le bus USB et le numéro de port:
[186067.360139] usb 1-1: new high-speed USB device number 123 using ehci_hcd
est le port bus 001 001
[186067.360139] usb 1-2: new high-speed USB device number 123 using ehci_hcd
est de port de bus 001 002
[186067.360139] usb 1-3: new high-speed USB device number 123 using ehci_hcd
est le bus 001 port 003
dans votre script vous grep cette ligne en utilisant la commande dmesg | grep "usb 1" | tail -1
(la queue -1 greps la dernière occurence, voir http://www.stackoverflow.com/questions/24014194/how-to-grep-the-last-occurence-of-the-line-pattern)
vous pouvez obtenir le numéro de port en utilisant directement la commande
dmesg | grep -o -P 'usb 1.{0,3}' | tail -1 | head -c 7 | tail -c 1
(si tous vos ports externes sur Bus 001
)
(Grep characters before and after match?, http://www.unix.com/unix-for-dummies-questions-and-answers/28542-how-do-i-get-nth-character-string.html)
donc avec cela, vous obtenez le numéro de port USB à que le dernier périphérique USB (votre appareil) a été joint et cela vous pouvez utiliser dans votre udev
script (if ...
)
vous pouvez également trouver la structure arborescente de bus USB dans le fichier /dev/bus/usb/
sytem dire Bus 01 Port 1 est /dev/bus/usb/001/001
voir http://www.linuxnix.com/find-usb-device-details-in-linuxunix-using-lsusb-command/
Ce Q est ne semble pas être sur la programmation tel que défini pour StackOverflow. Il ** peut être plus approprié sur http://unix.stackexchange.com (Unix et Linux) OU http://superuser.com. Utilisez le lien 'flag' au bas de votre Q et demandez au modérateur de le déplacer. Merci de ne pas poster le même Q sur 2 sites différents. Veuillez lire http://stackoverflow.com/help/how-to-ask http: // stackoverflow.com/help/ne demande pas et http://stackoverflow.com/help/mcve avant de poster plus de Qs ici. Bonne chance. – shellter