Frage zu USB und USBd

Tulkas

Well-Known Member
Hallo,
wie kann ich, wie es in der Man-Page von usbd.conf steht, einen Befehl nach dem einstecken eines Gerätes in den USB-Port ausführen lassen? Ich hab hier einen No-Name-USB-Stick. Da muss ich erst immer ein camcontrol scanbus 0 drüberlaufen lassen, damit ich ihn mounten kann. Nun stand in der Man-Page ein Beispiel zu einem USB-Zip Laufwerk. Dementsprechend hab ich meinen Eintrag in die usbd.conf getätigt:

device "USB Memory Stick"
product 0x6803
vendor 0x0ea0
attach "/usr/local/bin/camcontrol rescan bus 0"

Die Werte für Produkt und Vendor wurden beim Einstecken des Sticks angegeben, also hab ich sie hier eingetragen. Aber es klappt nicht. Wenn ich diesen Eintrag stehen lasse, kann ich den Stick nicht mounten. Erst wenn ich das auskommentiere(und den usbd neu starte), den Stick rausnehme, wieder reinstecke und das camcontrol mit der Hand aufrufe, gehts wieder. Müsste da nicht auch ein "attached" auf der xconsole erscheinen, wenn der Eintrag korrekt wäre ?? Ich wäre sehr dankbar, wenn mir jemand meinen Fehler aufdecken könnte.

Danke und Gruß

Tulkas
 
Natürlich, du hast recht.*sichvordenkopfschlag*
Aber leider klappts mit dem richtigen Pfad auch nicht.

Gruß

Tulkas
 
Ich würde erstmal testen, ob das attach Kommando überhaupt ausgeführt wird. Z.B. indem du das camcontrol Kommando durch ein "date >> /tmp/usbd.test" ersetzt. Dann sollte beim Einstecken zumindest ein Zeitstempel in der Datei erscheinen. Meine Vermutung ist, dass das schon nicht geht. Falls doch, weiss ich nicht weiter :-(
 
Du hast recht, da ist kein usbd.test. Was mache ich falsch??

Ich habs auch mit :
device "USB Memory Stick"
devname "umass[0-9]+"
#product 0x6803
#vendor 0x0ea0
#attach "/sbin/camcontrol rescan all"
attach " date > /tmp/usbd.test"

probiert, geht auch nicht.

Schade!

Gruß

Tulkas
 
In der usbd man page steht:

The values for the fields product, vendor, release, class, subclass and
protocol can be retrieved by killing the usbd daemon and running it with the -d and -v flags.

Kannst Du das mal machen und das Ergebnis (also das was usbd ausgibt) posten?
 
tulkas@home:~# usbd -d -v [13:49:30]
usbd: opened /dev/usb0
usbd: opened /dev/usb1
usbd: reading configuration file /etc/usbd.conf
usbd: opened /dev/usb
usbd: device-attach event at 1054122593.788063000, Solid state disk, USB:
vndr=0x0ea0 prdct=0x6803 rlse=0x0100 clss=0x0000 subclss=0x0000 prtcl=0x0000
device names: umass0
usbd: Found action 'USB device' for Solid state disk, USB at umass0
 
Dein Eintrag passt zumindest zu den Meldungen :-)

Was matcht ist der Standard Eintrag am Ende der usbd.conf. Nach der man page
The first matching entry is used for an event.
müsstet du deinen Eintrag also nur *vor* das abschliessende device "USB device" schreiben, damit es geht (evtl. noch mit einem "release 0x0100")...
 
Wo wir hier gerade beim Thema USB und Memory Sticks sind...

Ich habe auch so ein Teil, und das kann ich auch prima als
SCSI mounten und dann unmounten. Damit ist das Dateisystem
inaktiv, aber der Stick noch nicht so ganz. Wenn ich ihn ins
Notebook unter W2k stecke, dann kann ich den ja nicht mit
"Auswerfen" unmounten (so wie eine CD), aber ich habe ein
Icon zum abmelden.
Wenn ich nun darüber gehe und den Memory-Stick abmelde
(bzw. "anhalten" heisst die Funktion), dann zeigt die LED auf
dem Stick eine Zustandsänderung an.
Stick aktiv: LED blinkt bei Zugriffen und während idle im Takt.
Stick "angehalten": LED wechselt die Farbe und bleibt konstant.

Ist sicher nicht weiter schlimm, aber dieses "anhalten" würde
ich gerne auch unter FreeBSD auslösen können.

Nebenher ist der Stick nämlich noch ein Hub wenn ich ihn nur
als Hub benutzen will (Notebook hat nur eine USB-Dose),
dann wäre es mir lieber, wenn ich den Memory-Stick Teil ganz
abschalten kann.
 
Zurück
Oben