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

Add new attachment

Only authorized users are allowed to upload new attachments.
« This page (revision-2) was last changed on 14-Nov-2006 10:10 by MarkusMonderkamp