Das hier beschriebene Problem dürfte in der Weile ( ab Kernel 2.4.x ) und
''hotplug'' grundsätzlich behoben sein. -KaiEhlers-


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

In der Weile (heute ist der 23.1.2004) habe ich weitere negativ wie
positiv Erlebnisse mit dem USB-Stick gehabt. Mit der
Kernel-Version, die ich zuerst hatte wurde auch ein '''hub.c'''
beim Starten ausgeführt. Dieses Programm/Modul? scheint für USB
einige wichtige Dinge zu machen. In einem zweiten Kernel wurde
'''hub.c''' nicht ausgeführt und den Stick konnte ich nicht mehr
lesen. Beim Aufruf von '''dump_usbdev''' bekam ich die tolle
Fehlermeldung, dass der usb nicht gemountet sei. In der Datei
''mtab'' war ein solches mounten aber angegeben. Ich habe dann
irgend wann ''hotplug'' installiert. Laut ''apt'' wird dabei der
''usbmanager'' wieder deinstalliert( ich habe ihn aber trotzdem
noch wiedergefunden????????). Das führte zum vollen Erfolg. Ich
habe dann nichts weiter getan als ihn einzubinden und konnt den
Stick auslesen und beschreiben. -- KaiEhlers --