VOICE Homepage: http://de.os2voice.org |
März 2003
[Inhaltsverzeichnis]
|
Von Mark Dodel © März 2003, Übersetzung: Thomas Klein |
Seit geraumer Zeit habe ich nun schon versprochen, einen Artikel über USB-Compact-Flash-Lesegeräte zu schreiben. Mehrmals habe ich damit begonnen und dann jedesmal wieder aufgegeben. Es lag nicht etwa daran, daß ich vielleicht eine autorentypische Schreibblockierung gehabt hätte - nein, vielmehr kapierte ich einfach nicht, wie die USB-Massenspeicheruntertützung funktioniert (bzw. in meinem Fall... nicht funktioniert). Meine ersten Versuche, ein USB-CF-Lesegerät zu verwenden entstanden mehr oder weniger aus meinem Erfolg, ein externes PCMCIA Travelstar Laufwerk an meinem Toshiba Satellite Laptop zu betreiben. Dadurch mußte ich auf den Einsatz meines PCMCIA-Compact-Flash-Adapters zum Auslesen der Bilder meiner Digitalkamera verzichten, denn zusammen belegten das neue Laufwerk und meine Funknetzwerkkarte nun beide PCMCIA-Steckplätze. Natürlich konnte ich immer noch eine der beiden Karten kurzzeitig herausnehmen, aber das war nicht die Lösung, die mir vorschwebte.
So kam ich also - nach Jahren des sich-Wunderns, wozu jemand bloß ein USB-Gerät einsetzen wollte - auf die Idee, mir auch so etwas zuzulegen, da mein Laptop einen USB-Port besaß. Endlich ein Grund, die Basisunterstützung für USB und die USB-Massenspeicherunterstützung von eComStation und IBMs Software Choice zu installieren. Davon gibt es auch frei erhältliche Versionen bei Hobbes. Eine wirklich sehr gute Informationsquelle für USB unter OS/2 ist die OS/2 World USB-Seite. Dort werden sowohl die verfügbaren Treiber als auch Links zu USB-bezogenen Artikeln und Tips aufgelistet. Außerdem werden viele Geräte aufgeführt, die unter OS/2 betrieben werden können und welche Treiber erfolgreich eingesetzt wurden.
Mein Toshiba Satellite 2545XCDT Laptop ist schon ein bißchen betagter und hat außerdem keinen Intel-Chipsatz. Die originalen OS/2-USB-Treiber bieten keine Unterstützung für den OHCI-kompatiblen USB-Chipsatz dieses Laptops, sondern nur für UHCI. Da neuere Versionen des Treibers jedoch um diese Unterstützung erweitert wurden, probierte ich es einmal aus. Die jüngste Version, USB 2.0, wird übrigens als EHCI bezeichnet. Weitere Informationen zu USB erhalten Sie in den Fragen und Antworten zu USB ("USB FAQ").
Bezüglich USB-Compact-Flash-Lesegeräten und OS/2 habe ich nicht viel herausfinden können - außer, daß wenn es sich um ein "USB Mass Storage Device ("MSD")"-kompatibles Gerät handelt, es mit dem OS/2-USBMSD-Treiber von IBM funktionieren sollte. Ich schaute dann in unserer örtlichen Staples-Filiale nach, was der Büromaterialhändler denn so an USB-Geräten im Angebot hatte. Fast augenblicklich fand ich ein Sandisk ImageMate SDDR-75 USB dual-card Lesegerät für ca. US$ 30, das sowohl Compact-Flash- als auch SmartMedia-Karten lesen kann.
Den Angaben auf der SanDisk Webseite zufolge ist dieses Gerät zu "Mass Storage Class (MSC) kompatibel" also nahm ich an, daß es unter OS/2 funktionieren würde. Der Leser sieht auf den ersten Blick aus wie eine überdimensionierte Maus, mit zwei Steckplätzen an der Front- und einem kurzen USB-Anschlußkabel auf der Rückseite. Beim Anschluß an meinen USB-Port leuchtete die rote LED für die Spannungsversorgung und beim Einstecken einer CF-Karte leuchtete dann auch die grüne LED für Steckplatz 2. Bei Verwendung eines älteren USBMSD-Treibers wurde dem Lesegerät direkt ein Laufwerksbuchstabe zugewiesen, was ich erstaunlich fand. Allerdings mußte ich zunächst noch das Objekt "Wechseldatenträger aktualisieren" im Laufwerksordner verwenden. (Das ist dasselbe wie LVM /RediscoverPRM auf einer Befehlszeile eingegeben.) Leider konnte ich die Dateien auf der CF-Karte nur lesen und nicht ändern oder löschen. Als ich versuchte, neuere Versionen der USBBASIC- und USBMSD-Treiber zu verwenden, wurde dem Leser noch nicht einmal mehr ein Laufwerksbuchstabe zugewiesen.
Dann versuchte ich, das Gerät an meinem Destop einzusetzen - einem Dual Pentium Pro, der einen alten Intel-Chipsatz besitzt und daher den UHCI-USB-Treiber verwendet. Mit dieser Konfiguration wurde dem Leser überhaupt kein Laufwerksbuchstabe zugewiesen. Ich habe verschiedene Versionen der relavaten Treiber ausprobiert, aber alles ohne Erfolg. Dann lud ich mir Chris Wohlgemuths USB-MSD-Treiber von Hobbes herunter, von dem ich gehört hatte, daß er besser funktionieren würde als der IBM'sche, hatte aber immer noch kein Glück.
Danach besorgte ich mir den USB Resource Manager von der Netlabs-Seite. Dies ist ein großartiges Hilfsprogramm, um an das System angeschlossene USB-Geräte aufzulisten und zu ermitteln, was diese an das System melden. Es zeigt alle USB-Geräte an, nicht nur Speichergeräte.
Klicken Sie mit Maustaste 2 auf einen Geräteeintrag und wählen Sie dann View device report ("Gerätemeldungen anzeigen") aus, um die Informationen zu sehen, die vom USB-Gerät an das System gemeldet werden.
Damit erkannte ich, daß das Sandisk-Lesegerät von eComStation erkannt wurde. Im Usenet stellte ich dann die Frage, ob mir irgendwer erklären könne, was da los sei. Eine der informativeren Antworten stammte vom USBGuy, Markus Montkowski, der auch der Autor des USB-Resource-Managers ist. Er erklärte mir, daß diese Mehrfachkartenleser das LUN-Verfahren (Logical Unit Number) verwenden würden, welches ursprünglich aus der SCSI-Welt stamme und es im Prinzip einem einzelnen physikalischen Gerät ermögliche, die IDs (eindeutigen Kennungen) mehrerer Geräte zu belegen. Laut Markus unterstützen die OS/2-USB-Treiber diese Fähigkeit nicht. Die Tatsache, daß der CF-Steckplatz in meinem Sandisk Mehfachleser erkannt wurde, sei purer Zufall und wohl dadurch zustandegekommen, daß dieser Steckplatz die Standardeinheit im Leser sei. Vielleicht wird der OS/2-USB-Treiber um die notwendige Funktionalität erweitert, aber im Moment ist das Sandisk-Mehrfachlesegerät unter OS/2 oder eComStation nicht wirklich von Nutzen und sogar wertlos für jeden, der SmartMedia-Karten damit benutzen möchte.
So schaute ich im Usenet, ob und welche Geräte von anderen erfolgreich unter OS/2 eingesetzt wurden. Dieses mal schaute ich speziell nach Lesern, die ausschließlich für CF-Karten ausgelegt waren. Einige Leute hatten Erfolg mit einem PNY USB CompactFlash Leser. Daraufhin ging ich zurück in den Staples-Laden und fand heraus, daß man dort eines dieser PNY-CompactFlash-Lesegeräte für ungefähr US$ 20 anbot und ein ähnliches USB-SmartMedia-Lesegerät. Der PNY beinhaltete ein 1 Meter langes USB-Kabel.
Zuerst probierte ich das Lesegerät an meinem Toshiba Satellite mit dem OHCI-Treiber, bekam aber keinen Laufwerksbuchstaben zugewiesen. Der USB Resource Manager zeigte das Gerät zwar an, aber es wollte nicht funktionieren, egal welche Treiber ich ausprobierte. Danach probierte ich es an meinem Dual Pentium Pro Rechner und es wurde sofort nach LVM /RediscoverPRM erkannt, ich konnte die Dateien der CF-Karten sowohl lesen, löschen, verändern als auch neue anlegen. Leider benötigte ich den Leser aber unbedingt am Laptop, damit ich unterwegs die Bilder von meiner Nikon CoolPix 950 Kamera übertragen konnte. Diese Kamera hatte ich ein paar Jahre vorher extra gekauft, weil sie auch eine serielle Anschlußmöglichkeit bietet, die allerdings in Vergleich zum direkten Lesen von CF-Karten schmerzlich langsam ist.
Letztendlich hat der Kauf eines neuen Laptops das Problem gelöst. Mein Medion MD7275 verfügt über zwei USB-1.1-UHCI-Ports. Das PNY USB-CompactFlash-Lesegerät funktioniert gut mit den neuesten USB-UHCI-Treibern und dem USB-Mass-Storage-Treiber, die auf der eComStation-Webseite erhältlich sind.
Beim Test dieses CF-Lesers unter Windows XP offenbart sich eine hübsche Eigenschaft, die darin besteht, daß eine CF-Karte beim Einstecken sofort erkannt und ihr ein Laufwerksbuchstabe zugewiesen wird. Und wissen Sie was? Das läßt sich auch mit minimalem Aufwand unter OS/2 erreichen. Auf Hobbes befindet sich ein kleines Hilfsprogramm namens USBMOUNTD. Das habe ich heruntergeladen, entpackt und ein Programmobjekt (mit dem Parameter -s, um es in Symbolgröße zu starten) erstellt und in meinem Systemstartordner abgelegt. Wann immer ich jetzt OS/2 starte, prüft dieses Hilfsprogramm das Vorhandensein von USB.Wechsellaufwerken und aktualisiert in diesem Fall mittels LVM die Laufwerke, so daß sofort ein Laufwerksbuchstabe zugewiesen wird. Da es als Daemon (permanenter Hintergrundprozeß) ausgeführt wird, aktualisiert es LVM immer, sobald ein USB-Speichermedium eingesteckt wird und erfordert daher nicht, daß schon beim Booten eine Karte eingesteckt sein muß. Ich kann nun eine Karte einstecken, sie entfernen (nach "Auswerfen" des Datenträgers) und eine neue Karte einstecken ohne dafür den Rechner neu zu starten. Dieses Hilfsprogramm setzt einen bereits installierten USB Resource Manager (siehe oben) voraus und daß der Treiber usbresmg.sys aus diesem Paket in der Datei CONFIG.SYS geladen wurde.
Was man beim Arbeiten mit USB-Massenspeichern nicht vergessen sollte:
Sie müssen den korrekten USB-Basistreiber für den bei Ihnen verwendeten USB-Controller einsetzen und Sie benötigen einen Treiberaufruf für jeden Controller in Ihrem System. Mein neuer Laptop beispielsweise hat zwei USB-1.1-UHCI-Controller, daher wird der Treiber über DEVICE=USBUHCD.SYS in meiner CONFIG.SYS zweimal geladen.
Wenn Sie mehr als einen Typ von USB-Controller haben, benötigen für jeden einen Treiber. Ich habe zwar keine USB-2.0-Controller, habe aber gelesen, daß diese normalerweise eine Art von USB-1.x-Controller beinhalten, daher müssen Sie in solchen Fällen sicherstellen, daß Sie auch den passenden OHCI- oder UHCI-Treiber geladen haben.
Sofern Sie keine USB-Floppylaufwerke einsetzen, fügen sie den Parameter /FLOPPIES:0 zum Treiberaufruf BASEDEV=USBMSD.ADD in Ihrer CONFIG.SYS hinzu. Dieser Treiber reserviert standardmäßig zwei Laufwerksbuchstaben für USB-Floppies, und zwar ungeachtet dessen, ob Sie USB-Floppylaufwerke einsetzen oder nicht. Das hat mich bei der Installation des USB-MSD-Treibers verwirrt, da ich zunächst annahm, es handele sich bei den beiden Lauswerken um die Steckplätze meines USB-Lesegerätes.
Stellen Sie sicher, daß Sie ein USB-Laufwerk immer erst "auswerfen", bevor Sie es wirklich abstöpseln oder entfernen. Dies erreichen Sie, indem Sie entweder den Befehl eject X: auf einer Befehlszeile eingeben, oder indem Sie den Eintrag Datenträger ausgeben aus dem Kontextmenü eines USB-Laufwerks im Laufwerksordner auswählen. Wenn Sie das nicht tun, könnte es zu Datenverlust führen.
Da es möglich ist, die Medien direkt aus jeder Anwendung oder der WPS zu lesen oder sie zu beschreiben, denken Sie daran, daß solche Zugriffe zur Aktualisierung der erweiterten Attribute (EAs) auf dem Datenträger führen können, der aber als FAT formatiert ist. Ich habe zum Beispiel beim Anlegen von Thumbnails (Minivorschauen) mit PMView festgestellt, daß die Karte danach unter OS/2 nicht mehr lesbar war und das System dazu folgende Meldung ausgab: "SYS0278: The system cannot find the extended attribute ("Die erweiterten Attribute konnten vom System nicht gefunden werden")". Alle Dateien waren in der Kamera und unter Windows noch lesbar, nicht aber unter OS/2. CHKDSK /F hat das Problem dann schließlich gelöst, nachdem ich endlich darauf gekommen war, allerdings war ich vorher schon dazu übergegangen, die Karte in meiner Kamera nochmals neu zu formatieren. Das führte natürlich dazu, daß alle Bilder weg waren.
Abschließend hier noch der Hiweis, daß sich CF-Karten natürlich auch als Datenträger im allgemeinen einsetzen lassen, da man sie sowohl lesen als auch beschreiben kann. Diesen Artikel habe ich auf meinem Laptop verfaßt, und da ich momentan noch kein LAN mit meinem Funknetz-Router konfiguriert habe, mußte ich mir eine andere Methode ausdenken, um den Artikel und die Abbildungen auf meinen Desktop zu übertragen. Ich habe also einfach eine meiner CompactFlash-Karten in das Lesegerät am Laptop eingesteckt, und so sämtliche Dateien in das Newsletter-Verzeichnis meines Desktops übertragen, um dort den fertigen Artikel zu erstellen. CompactFlash-Karten gibt es momentan in verschiedenen Kapazitäten mit bis zu 512MB.
Die drei Typen des USB (Universal Serial Bus):
EHCI - Enhanced Host Controller Interface. Ein vereinheitlichtes Format für USB 2.0, auch Hi-Speed USB genannt. USB 2.0 unterstützt Übertragungsgeschwindigkeiten von 480 MB/s, 12 MB/s und 1.5 MB/s.
OHCI - Open Host Controller Interface. USB-1.x-Format, das von anderen Chipsätzen als Intel oder VIA verwendet wird (beispielsweise von Opti, Ali, SiS, und anderen).
UHCI - Universal Host Controller Interface. USB-1.x-Format, das von Intel- und VIA-Chipsätzen verwendet wird.
Daten und Quellen:
|
[Artikelverzeichnis]
editor@os2voice.org
[Vorherige Seite] [Inhaltsverzeichnis] [Nächste Seite]
VOICE Homepage: http://de.os2voice.org