USB-IDE: Notebook-Platten überall anschließen

Aus LinuxUser 03/2002

USB-IDE: Notebook-Platten überall anschließen

Angestöpselt

Zwanzig umsteckbare Gigabyte in der Hemdtasche, das hört sich verlockend an. Jede Menge Platz für Grafikdateien, die CD-Sammlung als MP3 oder als Backup-Medium, wie geht das? USB ist die Antwort auf die Frage!

Der universelle serielle Bus USB hat sich plattformübergreifend als Standard für den Anschluss von Peripheriegeräten etabliert. Viele USB-Geräte funktionieren anstandslos auch unter Linux, den richtigen Treiber vorausgesetzt. Treiber für Windows oder MacOS liefern die Hardware-Hersteller normalerweise mit oder stellen sie auf ihrer Homepage zur Verfügung. Unter Linux ist momentan noch etwas detektivische Feinarbeit nötig (siehe auch LinuxUser 12/2000 bis 04/2001).

Externe Lösung um die 50 Euro

In diesem Artikel geht es um den Anschluss einer USB-Festplatte an unterschiedliche Linux-Rechner. USB-Platten gibt es nur wenige, aber leere USB-Gehäuse mit USB-zu-IDE-Interface gibt es derzeit ziemlich preiswert; beispielsweise liegt das an fast jeder Straßenecke erhältliche Datafab MD2-USB [2] für 2,5″-Notebook-Platten bei günstigem Einkauf um die 50 Euro. Es unterstützt prinzipiell Platten beliebiger Größen – beim Test kamen je eine 20- und eine 30-GByte-Platte von Toshiba zum Einsatz (Modelle MK2016GAP respektive MK3017GAP). Das Datafab MD2-USB gibt es sowohl in apartem iMac-Design wie abgebildet als auch in schlichtem PC-Grau. Außer durch möglicherweise ideologisch bedingte Vorzüge unterscheiden sich die Varianten aber nicht.

Abbildung 1: Die Notebook-Platte muss man lediglich auf die passende Buchse stecken.

Abbildung 1: Die Notebook-Platte muss man lediglich auf die passende Buchse stecken.

Abbildung 2: Um die Steckverbindung vor Erschütterungen zu schützen, empfiehlt es sich, die Platte mit den mitgelieferten Schrauben auf der Platine zu befestigen.

Abbildung 2: Um die Steckverbindung vor Erschütterungen zu schützen, empfiehlt es sich, die Platte mit den mitgelieferten Schrauben auf der Platine zu befestigen.

Zum Einbau der Platte sind lediglich die beiden Schrauben an der Unterseite zu lösen und die Platte mit ihrem 44-poligen Stecker auf die passende Buchse auf der eingebauten Platine zu stecken (Abbildung 1). Am besten verschraubt man die Platte mit der Platine (Abbildung 2), damit die Einheit vor mechanischen Erschütterungen einigermaßen gefeit ist. Notebookplatten vertragen schon mal die eine oder andere Misshandlung (eher als 3,5″-Platten), aber im Betrieb sollte man sie nicht auf den Tisch fallen lassen, damit es keinen Headcrash gibt.

Platte behandeln wie ein rohes Ei

Als Stromversorgung genügt laut beigefügter Dokumentation das USB-Kabel selbst. Immerhin vermag der USB-Port bis zu 500 mA zu liefern, was für den normalen Betrieb reicht (das sind etwa 2,5 Watt). Manche Platten brauchen aber zum Anlaufen erheblich mehr, und im Normalbetrieb 2,7 bis 3 Watt; in diesem Fall muss man das mitgelieferte Versorgungskabel einsetzen, um die 5 V Versorgungsspannung vom Tastatur- oder Mausport abzuzwacken (Abbildung 3). Bei den genannten Toshiba-Platten erwies sich das aber als nicht nötig – zum Einen verbrauchen sie laut Datenblatt etwas weniger als das durch USB erlaubte Maximum, zum Anderen erwies sich der Betrieb sowohl an einem IBM Thinkpad 600E (Intel PIIX4) als auch an einem Tyan S1590S (VIA MVP3) als stabil.

Zum Ein- und Ausschalten des Geräts befindet sich an der Vorderseite ein kleiner Schiebeschalter. Beim Betrieb mit dem Versorgungskabel wird die Stellung des Schalters jedoch ignoriert, so dass die Platte dann immer läuft.

Abbildung 3: Das dazugehörige Versorgungskabel ist nötig bei Platten mit höherem Strombedarf.

Abbildung 3: Das dazugehörige Versorgungskabel ist nötig bei Platten mit höherem Strombedarf.

Zentrale Anlaufstelle für Linux und USB ist die Linux-USB-Web-Seite [1]. Dort ist auch gleich nachzulesen: “USB-Storage is not supported in the 2.2 line of kernels.” Da die Anbindung externer Platten aber gerade den USB-Storage-Treiber voraussetzt, beschreibt dieser Artikel Installation und Betrieb mit einem Kernel 2.4.10 an besagtem IBM Thinkpad.

Rumtreiberei

Einen speziellen Treiber zum Betrieb des Datafab-Geräts mit Kernel 2.2 gibt es schon eine ganze Weile [3]. Das war das nötig, da dem dazugehörigen USB-Storage-Modul noch einige Funktionen fehlen, um mit einer Festplatte zu arbeiten. Außerdem implementierte die Firmware früherer Versionen des MD2-USB nicht die komplette Klasse “Storage”, so dass hier nur ein eigener Treiber half. Den gibt es inzwischen auch in einer Portierung für Linux 2.4, er ist aber bei der aktuellen Firmware nicht mehr nötig.

USB-Storage simuliert einen SCSI-Hostadapter und stellt die angeschlossene IDE-Platte als SCSI-Platte dar (Listing 1). Aus dem Grund lässt sich leider das Tool hdparm nicht benutzen, beispielsweise um einen Inaktivitäts-Timeout der Platte einzustellen, weil die dazugehörigen ioctl()-Funktionen des Kernels IDE-spezifisch sind und daher bei SCSI fehlen. Versuche haben ergeben, dass es auch nichts nützt, der Platte das ioctl(2)-Kommando SCSI_IOCTL_STOP_UNIT zu schicken – der 2.4.10-Kernel quittert das nach einigen Sekunden mit hartem Einfrieren und irreparabler Beschädigung des Dateisystems.

Listing 1

usb-storage

imitiert SCSI

# cat /proc/scsi/usb-storage-0/0
   Host scsi0: usb-storage
       Vendor: OnSpec Electronic, Inc.
      Product: USB Disk
Serial Number: 46A1E852A1
     Protocol: Transparent SCSI
    Transport: Bulk
         GUID: 07c4010300000046a1e852a1
     Attached: 1
# cat /proc/scsi/scsi
Attached devices:
Host: scsi0 Channel: 00 Id: 00 Lun: 00
  Vendor: TOSHIBA  Model: MK2016GAP        Rev: 0 A
  Type:   Direct-Access                    ANSI SCSI revision: 02

Kernel-Modul-Blues

Wer grundsätzlich fertige Kernel und die dazugehörigen Module einer Distribution nutzt, braucht keine Vorarbeit zu leisten, da sollte alles schon vorhanden sein inklusive einem Eintrag in /etc/modules.conf

alias scsi_hostadapter usb-storage

Ansonsten muss man diesen Eintrag anfügen und depmod -a aufrufen. Fehlt dem Kernel USB-Unterstützung oder ist das Modul usb-storage.o nicht vorhanden, muss man die entsprechenden Optionen in make menuconfig aktivieren und Kernel sowie Module mit

make clean dep bzImage modules modules_install

übersetzen und die Module installieren. Wie das im Detail geht, würde den Rahmen dieses Artikels sprengen, daher sei hier nur auf das Kernel-HOWTO [4] verwiesen.

Beim Einstecken des USB-Steckers und Laden des USB-Storage-Moduls mit modprobe usb-storage sollte das Modul sich als neuer Treiber im Syslog melden mit: “USB new device connect on bus…”. Anschließend kann man die Platte wie gewohnt mit fdisk /dev/sda partitionieren und zuletzt eines oder mehrere Dateisysteme anlegen. Da man prinzipiell jederzeit den USB-Stecker abziehen kann (auch aus Versehen), empfiehlt sich die Benutzung eines journalbasierten Dateisystems wie ReiserFS oder Ext3, aber mit etwas Vorsicht geht natürlich auch Ext2. Will man Daten mit Windows-PCs austauschen, wäre VFAT die richtige Wahl, für die Kommunikation mit MacOS-Systemen HFS.

Immer schön abhängen

Bei einem Stopp des Systems und vor dem Ausschalten des USB-Geräts sollten gemountete Dateisysteme immer zuvor mit umount abgehängt werden, da das Betriebssystem von der Aktion nichts mitbekommt und dann einen toten Mountpunkt hat. Daran ändert auch der relativ neue USB-Helfer hotplug nichts, denn wenn das Kabel gezogen oder das Gerät ausgeschaltet wird, ist es zu spät zum Abhängen des Dateisystems. Also Vorsicht! Bei nicht-journalbasierten Dateisystemen wie Ext2 hilft es übrigens, die Daten bei mobilem Betrieb “read-only” zu mounten, dann kann zumindest dem Dateisystem nichts Unvorhergesehenes passieren.

Um die Platte automatisch mounten zu können beim Zugriff auf den Mountpoint, bietet sich der Automounter an. Ein Eintrag wie

mp3  -fstype=ext2  :/dev/sda1

in /etc/auto.misc reicht schon aus, um auf die Daten unter /misc/mp3 zugreifen zu können. Informationen darüber sind mit man automount oder man amd abrufbar, je nachdem, welcher Typ auf dem jeweiligen System gerade läuft.

Bei Systemen mit VIA-MVP3-Chipsatz (82C586B) sei gleich zu Vorsicht geraten. Dieser Chipsatz hat einen Fehler bei so genannten USB Bulk Transfers. Nach wenigen Sekunden erfolgreicher Datenübertragung friert die Verbindung ein. Das betrifft sowohl die hier vorgestellte USB/IDE-Lösung als auch bespielsweise den Datentransfer zu einem Diamond Rio500 MP3-Player. Da hilft nur: eingebautes USB des Mainboards ignorieren und USB-PCI-Karte kaufen. Für Mäuse und andere Geräte, die nicht auf Bulk Transfer aufsetzen, funktioniert der Chipsatz aber prächtig.

USB-Storage verursacht Systemlast

Die mangels Benutzung von DMA (Direct Memory Access) verursachte Systemlast bei Kopieren eines 3,3-GByte-Dateibaums auf die externe Platte ist auf dem genannten Thinkpad 600E (Pentium II mit 366 MHz, 128 MByte RAM, Intel 430HX Chipsatz) erheblich; top weist während des gesamten Vorgangs 35-50 Prozent aus, die alleine im Kernel gebraucht werden. Beim normalen Arbeiten auf der grafischen Oberfläche ist das deutlich zu spüren. Hinzu kommt, dass man vor allem bei leiser Musik von den auf der Platte gestreamten MP3s die Zugriffe als kurzes, leises Knistern hören kann. Möglicherweise kommen sich hier die Interrupts für USB und Audio ins Gehege.

Ein Geschwindigkeitsrausch ist von der Installation natürlich nicht zu erwarten – USB schafft vor Version 2.0 lediglich 12 MBit/s, so dass kaum mit Datenraten über 1 MByte/s zu rechnen ist. Bestätigt wird diese Vorhersage durch den Zeitbedarf für die besagten 3,3 GByte – etwas über 113 Minuten, was im Schnitt 508 KByte/s entspricht. Der Festplatten-Benchmark bonnie++[5] ermittelte für die Toshiba MK3017GAP eine Transferrate von 726 KByte/s für Lese- sowie 780 KByte/s für Schreiboperationen. Zum Vergleich: Im Betrieb am IDE-Port im Notebook erreicht die Festplatte 20,5 MByte/s respektive 23,7 MByte/s (Diagramm 1). Welche Platte man also einbaut, ist abgesehen vom besagten Stromversorgungsproblem relativ egal, weil der USB den Flaschenhals darstellt. Mit USB 2.0 wird das aber alles schneller, höher, weiter – dann ist der Bus mit 400 MBit/s schneller als jede Notebook-Platte.

Diagramm 1: Der Festplattenkauf sollte sich am geringen Stromverbrauch orientieren, die Transferrate begrenzt der USB-Adapter auf unter 1 MByte/s.

Diagramm 1: Der Festplattenkauf sollte sich am geringen Stromverbrauch orientieren, die Transferrate begrenzt der USB-Adapter auf unter 1 MByte/s.

Für Backupzwecke oder sonstigen Datentransport mit niedrigen Anforderungen an die Datenrate ist ein solches Gerät preiswert und praktisch. Die ursprünglich vorgesehene Idee, den USB-Extender für einen MP3-Player im Auto [6,7] zu verwenden, scheitert jedoch an der mangelnden Möglichkeit, den Timeout für den Spindelmotor zu setzen – damit würde die Platte auch während der Fahrt dauernd laufen, was ungesund sein kann. Dasselbe gilt für den Anschluss an ein Notebook unterwegs – die ständig laufende Platte verbraucht zu viel Strom für ein langes Akkuleben.

Datafab MD2-USB

Beschreibung Enhanced USB Port für 2.5″ Festplatten
Transferrate USB max. 12 MBit/s
Stromversorgung USB-Kabel oder Tastaturport (siehe Text)
Abmessungen 143 mm × 79 mm × 22 mm
Gewicht ohne Platte ca. 110 g
mitgel. Zubehör USB-Kabel A-B, Stromversorgungskabel, Treiber-CD für MacOS und Windows, Kurzanleitung
Listenpreis 65 Euro
LinuxUser 03/2002 KAUFEN
EINZELNE AUSGABE
ABONNEMENTS
TABLET & SMARTPHONE APPS
E-Mail Benachrichtigung
Benachrichtige mich zu:

Hinweis: Dieser Artikel ist älter als ein Jahr, enthaltene Informationen sind möglicherweise veraltet.

0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben