Die SCSI2Pi-Emulations-Tools

Im Target-Modus emuliert SCSI2Pi mehrere SCSI- oder SASI-Geräte.s2p ist das eigentliche Tool für die SCSI/SASI-Emulation. Mit s2pctl, der SCSI-Control-App oder der PiSCSI-Web-UI verwaltet man die emulierten Geräte zur Laufzeit.

s2p als Standalone-Programm

s2p wird entweder beim Booten als Systemservice gestartet, oder aber als Standalone-Programm auf der Kommandozeile.
Die s2p-Manpage liefert Details zur Nutzung. Typischerweise gibt man beim Starten von s2p auf der Kommandozeile an, welche SCSI- oder SASI-Geräte emuliert werden sollen. Es ist zu beachten, dass nur entweder SCSI- oder SASI-Geräte emuliert werden können, aber nicht beides gleichzeitig. s2p ist das Gegenstück zum piscsi-Tool des PiSCSI-Projekts, bietet aber zusätzliche Features und höhere Transferraten.

>s2p -id 0 scsi_hd_1.hds -id 0:1 scsi_hd_2.hds -id 2 cdrom.iso -id 4 printer -id 5 daynaport -id 6 services

Mit diesem Kommando teilen Sie s2p mit, zwei SCSI-Laufwerke (mit den zugehörigen Image-Dateien scsi_hd_1.hds und scsi_hd_2.hds) zu emulieren. Eines von ihnen hat die SCSI-ID 0, das andere hat dieselbe SCSI-ID, belegt aber LUN 1. Mit LUNs (Untergeräten) lassen sich bis zu 32 SCSI-Geräte auf dieselbe SCSI-ID abbilden, vorausgesetzt die Gerätetreiber unterstützen dies. ID 2 ist einem CD-ROM-Laufwerk zugeordnet, mit cdrom.iso als Image-Datei. ID 4 ist ein SCSI-Drucker, ID 5 ein emulierter DaynaPort Netzwerk-Adapter, und ID 6 die SCSI2Pi-Host-Services. Das PiSCSI-Wiki und die Manpages liefern weitere Informationen zu allen Gerätetypen.
Nutzer von Atari-Computern sollten auch einen Blick auf die SCSI2Pi-Client-Tools werfen. Mit diesen Tools lässt sich SCSI2Pi beispielsweise als Echtzeit-Uhr verwenden.

So lassen sich SASI-Laufwerke emulieren:

>s2p -h 0 sasi_hd_1.hds -h 1 sasi_hd_2.hds

Hier werden zwei Festplatten mit den IDs 0 und 1 emuliert. Es ist zu beachten, dass SASI lediglich 2 LUNs pro ID unterstützt.

s2p unterstützt die BlueSCSI-Namenskonvention für Image-Dateien. Diese Konvention definiert, wie die SCSI ID, LUN und Sektorgröße im Dateinamen codiert werden.

>s2p -B HD02_1024_vendor:product:revision.hds

Das obige Kommando erzeugt eine SCSI-Festplatte mit SCSI-ID 0, LUN 2 und 1024 Bytes pro Sektor. Die Produktdaten für das INQUIRY-Kommando sind "vendor:product:revision". Die Produktdaten mit dem Dateinamen zu setzen ist eine Erweiterung von SCSI2Pi, die von BlueSCSI nicht unterstützt wird.

s2p als Systemservice

Für s2p wird bei der Installation automatisch ein Systemservice-Setup eingerichtet. Falls der PiSCSI- oder SCSI2Pi-Systemservice vor einer Installation oder einem Update aktiv war, wird der SCSI2Pi-Service automatisch aktiviert. So aktiviert man den Service manuell:

>sudo systemctl enable s2p
>sudo systemctl start s2p

Falls Sie s2p auf der Kommandozeile starten wollen, muss der Service vorher angehalten werden:

>sudo systemctl stop s2p

Der s2p-Service wird in /etc/s2p.conf mit Properties konfiguriert. Eine Konfigurationsdatei mit Beispielen wird bei der Erstinstallation von SCSI2Pi automatisch erzeugt.
Starten Sie den Systemservice nach dem Ändern von Einstellungen in /etc/s2p.conf neu:

>sudo systemctl restart s2p
s2pctl

s2pctl ist der Kommandozeilen-Client zum Steuern von s2p. Es ist das Gegenstück zum PiSCSI scsictl-Tool. Besonders dann, wenn Probleme mit der SCSI-Control-App oder der PiSCSI-Weboberfläche auftreten, kann ein Kommandozeilen-Client nützlich sein, der direkt Nachricten an s2p sendet. Im Allgemeinen ist s2pctl ein wertvolles Tool zum Abrufen der aktuellen s2p-Einstellungen und zum Testen der s2p-Funktionalität.

>s2pctl --list-devices
+----+-----+------+-------------------------------------
| ID | LUN | TYPE | IMAGE FILE
+----+-----+------+-------------------------------------
|  0 |   0 | SCHD | /home/pi/images/test.hds
|  0 |  31 | SCHS | Host Services
+----+-----+------+-------------------------------------

Wird s2pctl ohne Parameter gestartet befindet sich das Tool im interaktiven Modus. In diesem Modus lassen sich Kommandos eingeben.

>s2pctl
Entering interactive mode, Ctrl-D, "exit" or "quit" to quit
s2pctl>--detach-all
s2pctl>--log-level trace
s2pctl>exit
>

Außerdem kann s2pctl Kommando-Sequenzen in Skripten ausführen:

>cat SCRIPT_DATEI | s2pctl