lsusb
Gibt den USB-Bus und die USB-Ports aus, an denen die Geräte angeschlossen sind. in der Ausgabe sind einige der USB-Root-Hubs sind interne USB-Hubs, dass auch Bluetooth und Webcam und so weiter sind, siehe https://unix.stackexchange.com/questions/144029/command-to-determine-ports-of-a-device-like-dev-tty-usb0
sollten Sie herausfinden, auf welchem USB-Bus Ihre externen Ports verknüpft sind. auf meinem Computer sind alle externen USB-Ports mit Bus 01
verbunden, dies zu tun, überprüfen Sie die Ausgabe von lsusb -t
, dann ein USB-Gerät anschließen und überprüfen Sie die Ausgabe von lsusb -t
wieder.dann wissen Sie, was in Ihrem Gerät internen USB-Strukturbaum 'Adressen' Ihre drei externen USB-Anschlüsse haben:
interne USB-Anschlüsse:
/: 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
externe USB-Anschlüsse:
/: 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
USB-Stick befestigt zum externen Port # 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
nach diesem Vorgang Sie die 'Adressen' Ihrer externer USB-Ports
in dmesg
ein angeschlossenes USB-Gerät erscheint immer mit einer Linie, die die USB-Bus und Port-Nummer enthält:
[186067.360139] usb 1-1: new high-speed USB device number 123 using ehci_hcd
ist Bus 001-Port 001
[186067.360139] usb 1-2: new high-speed USB device number 123 using ehci_hcd
ist Bus 001-Port 002
[186067.360139] usb 1-3: new high-speed USB device number 123 using ehci_hcd
ist Bus 001 Port 003
in Ihrem Skript grep diese Zeile mit dem Befehl dmesg | grep "usb 1" | tail -1
(der Schwanz -1 greps das letzte Vorkommen finden http://www.stackoverflow.com/questions/24014194/how-to-grep-the-last-occurence-of-the-line-pattern)
Sie die Portnummer erhalten können direkt den Befehl
dmesg | grep -o -P 'usb 1.{0,3}' | tail -1 | head -c 7 | tail -c 1
(wenn alle externen Ports auf Bus 001
) sind
(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)
Damit erhalten Sie die USB-Portnummer, an die das neueste USB-Gerät (Ihr Gerät) angeschlossen wurde und das Sie in Ihrem Skript verwenden können (if ...
)
Sie können auch die USB-Bus Baumstruktur in der /dev/bus/usb/
Datei Sytem heißt Bus 01 Anschluss 1 finden, ist /dev/bus/usb/001/001
http://www.linuxnix.com/find-usb-device-details-in-linuxunix-using-lsusb-command/
Dies Q ist offenbar nicht über die Programmierung sein, wie für Stackoverflow definiert. Es ** kann ** auf http://unix.stackexchange.com (Unix & Linux) ODER http://superuser.com besser geeignet sein. Benutze den 'flag'-Link unten in deinem Q und bitte den Moderator, ihn zu verschieben. Bitte poste nicht das gleiche Q auf 2 verschiedenen Seiten. Bitte lesen Sie http://stackoverflow.com/help/how-to-ask http: // stackoverflow.com/help/dont-ask und http://stackoverflow.com/help/mcve, bevor du hier mehr Qs postest. Viel Glück. – shellter