Ich hatte mir einen (
billigen ) USB-Stick gekauft und wollte ihn nun auch unter Linux
benutzen. Klar, ein Modul zum Betreiben des USB-Anschlusses bedarf
es. Der war vorhanden ( naja, einkompiliert im Kernel ). Mit
'''modprobe usb-storage''' konnte ich auch auf Anhieb den Stick in
Betrieb nehmen. Er wird bei mir als '''/dev/sda1/''' geführt. Man
benötigt also auch das Modul scsi_mod. Das war bei mir wohl auch im
Kernel schon vorhanden. Was nicht funktionieren wollte, war das
automatische Erkennen beim Reinstecken des Sticks im laufenden
Betrieb. Zuständig für so etwas ist der usbmgr. Der hat eine eigen
Konfigurationsdatei, die man unter '''/etc/usbmgr/usbmgr.conf'''
findet. Dort gibt es viele Einträge allermöglichen USB-Geräte. Sie
haben die Form ''vendor 0xZZZZ product 0xZZZZ module
<modulliste>'' oder ''class 0xZ subclass 0xZ module
<modulliste>''.

Man muss sich also die beiden Hexzahlen für den Hersteller und das
Produkt heraussuchen. Dies konnte ich nur in der Datei
'''/var/log/syslog''' finden. Dort kann man die Versuche sehen, den
Stick zu erkennen, und dabei werden einige Angaben zum Stick
gemacht. Die Angaben für den vendor, das product, der class und
subclass sollte man sich gut merken. Die Angabe des protocol('s)
war bei mir nicht wichtig.
Da ich mit Debian arbeite, sollte es eigentlich eine wenigstens
kleine Beschreibung geben. Und siehe da, in
'''/usr/share/doc/usbmgr/''' gibt es die Datei 'README.gz', die
tatsächlich eine Beschreibung enthält. Mit dem Befehl
'''dump_usbdev''' enthält man die genaue Angabe, wie sie in die
Datei 'usbmgr.conf' eingtragen werden soll.


Das Eintragen der Angaben für den 'vendor' und 'product' und/oder
für die 'class' und 'subclass' führten zu keinem Erfolg. Sie wurden
ignoriert - warum siehe weiter unten - . Es gibt in dem Ordner
'''/etc/usbmgr/''' aber einen weiteren Ordner mit dem Namen
'''class'''. Dort folgen weitere Unterordner die als letztes eine
Datei namens 'module' enthalten. Die Ordnerstruktur entspricht den
class-Angaben in der Datei 'usbmgr.conf'. Ich habe dann den Angaben
aus der Syslogdatei entsprechend im Ordner class den Unterordner 08
( class : 08 ),darin den Unterordner 06 ( subclass : 06 ) und darin
den Unterordner 50 ( protocol : 50 ) erzeugt. In diesem letzten
Unterordner habe ich die Datei module mit den Eintrag : usb-storage
erzeugt. Es war ein Versuchsballon, der zum Erfolg führte. Nun wird
mein Stick beim Reinstecken erkannt und das device '''/dev/sda1'''
angelegt und beim Herausziehen auch wieder gelöscht.
Den Ordner für das 'protocol' habe ich dann noch weggelassen und
die Datei 'module' in den Subclass-Ordner getan. Auch das führte
zum Erfolg. Es kommt zwar zuerst immer eine Fehlermeldung über
fehlende Treiber für vendor 0xZZZ und Typ 0xZZZ, dann aber bindet
er den Stick sauber ein. Der usbmgr möchte anscheinend zuerst den
Stick über die vendor-Angabe einbinden, erst dann probiert er die
class-Angabe.

Das Eintragen in die Datei 'usbmgr.conf' ist nicht das Ende der
Konfiguration. Man muss anschließend noch den Befehl
'''update_usbdb usbmgr.conf''' ausführen. Und genau dabei werden
die class-Einträge genauso ausgeführt, wie ich es von Hand gemacht
habe. Obgleich ich nun nach 'Vorschrift' vorgegangen bin fängt er
immer noch mit der Fehlermeldung an, dass die Treiber den vendor
nicht unterstützen, obgleich ich die Angabe in 'usbmgr.conf'
gemacht habe, bevor ich update_usbdev ausgeführt habe.
--KaiEhlers


Übrigens sollte das hier geschriebene im Prinzip für alle
USB-Geräte gelten, die Speichermedien verwalten wie z.B.
Flash-Reader und Digitalkameras. Ich habe vor einiger Zeit mal eine
Seite zu Franz'ens SanDiskImageMate geschrieben, auf der vielleicht
auch noch ein paar Tips stehen, wenn jemand hiermit nicht
weiterkommt. -- ThomasBayen 

Mit meiner Kamera ( Jenoptic ) bin ich nicht weitergekommen. Es
gibt scheints kein Modul, das diese Kamera unterstützt
-- KaiEhlers