Alexander (HH): USB Host / Hub ID herausfinden

Beitrag lesen

Moin Moin!

Eine automatische Kopiervorrichtung, die ich gerade bastle, soll je nach USB-Hub, in das ein USB-Stick gesteckt wurde, einen unterschiedlichen Ordner auf den Stick spielen.

Im Moment ist das ganze für Windows XP gedacht, ich bin jedoch gerne bereit, spontan auf Linux umzubauen.

Ich möchte nicht behaupten, dass es unmöglich ist, unter Windows an entsprechende Informationen zu kommen. Aber ich denke, unter Linix ist es wesentlich einfacher.

Das System ist mir noch nicht bekannt, wird aber 7 USB Buchsen haben, an die dann je ein Hub gesteckt werden (also 7 unterschiedliche Hubs = 7 unterschiedliche Ordner).

lsusb -t

Bus#  5
-Dev#   1 Vendor 0x1d6b Product 0x0001 Bus#  4 -Dev#   1 Vendor 0x1d6b Product 0x0001
Bus#  3
-Dev#   1 Vendor 0x1d6b Product 0x0001   -Dev#  71 Vendor 0x04f3 Product 0x0103
Bus#  2
-Dev#   1 Vendor 0x1d6b Product 0x0001 Bus#  1 -Dev#   1 Vendor 0x1d6b Product 0x0002
  `-Dev#   3 Vendor 0x059b Product 0x0277

Damit sind die Geräte schomal gefunden und in einen Baum einsortiert. (Hier: Noname-Tastatur und externe Platte) Hilft noch nicht komplett weiter, aber ein erster Schritt ist getan.

udevd legt beim Einstecken von USB-Devices (und bei vielen anderen Gelegenheiten) die entsprechenden Device-Nodes an, kann aber auch gleich noch ein Programm starten. Einfach eine entsprechende Regel anlegen. Das sieht dann ungefähr so aus:

floppy devices

KERNEL=="fd[0-9]*", NAME="floppy/%n", SYMLINK+="%k", GROUP="floppy", PROGRAM="/lib/udev/floppy-extra-devs.sh %k %b %n"

Mehr Infos in udev(7).

Der hald, zusammen mit dem dbus-daemon, posaunt Informationen über frisch eingesteckte Hardware auch gerne an interessierte Programme, Zugriffsrechte vorausgesetzt. Zu sehen z.B. bei KDE, das (immer wieder Zugriffsrechte vorausgesetzt) USB-Sticks, CDs und ähnliches bei Bedarf mounted und gleich ein konfiguriertes Programm startet. Das dürfte hier aber Overkill sein.

Linux 2.6.xx und ein passendes Script, in udev eingebunden, sollten Dein Problem eigentlich lösen können.

Alexander

--
Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so".