Angestöpselt
USB-IDE: Notebook-Platten überall anschließen
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
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.



