SCSI-auf-USB-Bridge für Massenspeicher

Mit dem Gerätetyp SCSG lassen sich USB-Geräte wie SCSI-Geräte verwenden. Dieser Gerätetyp bild SCSI-Geräte auf den generischen SCSI-Treiber von Linux (SG 3) ab. SCSG kann somit jedes Laufwerk repräsentieren, das von diesem Treiber unterstützt wird, insbesondere USB-Massenspeicher. SCSI-Kommandos werden nicht emuliert, sondern direkt an das angeschlossene Gerät weitergeleitet.

Anlegen von SCSG-Geräten

Der SCSG-Typ erwartet eine Gerätedatei /dev/sg* als Parameter. Linux erzeugt diese Gerätedateien automatisch, wenn ein vom Linux-SG-Treiber unterstütztes Gerät angeschlossen ist, z. B. ein USB-Stick, eine USB-Festplatte oder ein USB-DVD-Laufwerk. Sogar USB-Floppylaufwerke und SATA-Laufwerke an einem USB-auf-SATA-Adapter wurden erfolgreich getestet.
lsscsi listet alle für eine Bridge verfügbaren Geräte und die zugehörigen Gerätedateien auf:

>lsscsi --generic
[0:0:0:0]    disk    Y-E DATA USB-FDU          4.01  /dev/sdc   /dev/sg3
[1:0:0:0]    disk    Generic  MassStorageClass 2011  /dev/sda   /dev/sg0
[1:0:0:1]    disk    Generic  MassStorageClass 2011  /dev/sdb   /dev/sg1
[2:0:0:0]    cd/dvd  TSSTcorp CDDVDW SN-208AB  LA02  /dev/sr0   /dev/sg2

Mit dieser Information kann man Bridges USB-Geräte anlegen, die für den Computer SCSI-Geräte zu sein scheinen:

>s2p -i 0 /dev/sg0 -i 4 /dev/sg3 -i 4:1 /dev/sg2
>s2pctl -l
+--------+------+-------------------------------------------
| ID:LUN | Type | Image File/Device File/Description
+--------+------+-------------------------------------------
|  0:0   | SCSG | /dev/sg0 (Generic  MassStorageClass 2011)
|  4:0   | SCSG | /dev/sg3 (Y-E DATA USB-FDU          4.01)
|  4:1   | SCSG | /dev/sg2 (TSSTcorp CDDVDW SN-208AB  LA02)
+--------+------+-------------------------------------------

Beim Gerätetyp SCSG gibt es keine Image-Dateien. s2p leitet alle SCSI-Kommandos direkt an ein vorhandenes Gerät weiter. SCSG emuliert also kein bestimmtes Gerät, sondern repräsentiert ein echtes, an den Pi angeschlossenes Gerät.

SCSI-auf-USB-Brige mit IDE- und SATA-Laufwerken

Mit einem USB-Adapter lassen sich auch IDE- und SATA-Laufwerke verwenden. Wie gut dies funktioniert hängt vom Adapter und dem jeweiligen Gerät ab. Mit einem Linux-PC, der SCSI2Pi SCSI-auf-USB-Bridge und einem SATA-DVD-Brenner konnten sogar DVDs gebrannt werden. Es gibt aber auch Laufwerke, die nicht so gut funktionieren.

Formatieren von Disketten mit USB-Floppylaufwerken

Mit s2pformat lassen sich Disketten oder andere Medien formatieren, nicht nur auf dem Pi sondern auch auf einem normalen Linux-PC mit USB-Floppylaufwerk. Falls ein Laufwerk mehrere Formate unterstützt lässt sich mit s2pformat eine Auswahl treffen.

>s2pformat /dev/sg7
Vendor:   'Y-E DATA'
Product:  'USB-FDU         '
Revision: '4.01'
Current number of sectors: 2880
Current sector size: 512
Select a format, press Enter without input to quit:
  1. 2880 sectors, 512 bytes per sector
  2. 1232 sectors, 1024 bytes per sector
  3. 2400 sectors, 512 bytes per sector
1
Format with 2880 sectors, 512 bytes per sector? (N/y)
y
Are you sure? Formatting will erase all data and may take long. (N/y)
y

Nach dem Formatieren muss noch ein Dateisystem erzeugt werden, z. B. mit mkfs.

Mit einem Atari und dem Treiberpaket HDDRIVER kann man Disketten ohne ein zusätzliches Tool formatieren.

Anpassen des SCSI-Levels

Einige USB-Geräte unterstützen deutlich neuere SCSI-Versionen als SCSI-2:

>s2pdump -g /dev/sg7 -I
Checking device corresponding to Linux SG driver device file '/dev/sg7'

INQUIRY product data:
Vendor:               'Generic '
Product:              'MassStorageClass'
Revision:             '2011'
Device Type:          Direct Access
SCSI Level:           SPC-4
Response Data Format: SCSI-2
Removable:            Yes
...

Bei Treibern, die neue Standards nicht unterstützen, kann eventuell die s2p-Option --scsi-level helfen, die ein "Downgrade" der SCSI-Version erlaubt. Der Gerätename lässt sich mit --name ändern.
HDDRIVER ist ein Treiberpaket für Atari-Computer, das auch aktuelle SCSI-Levels unterstützt. HDDRIVER und die zugehörigen Tools nutzen sogar neue SCSI-Kommandos für Optimierungen.