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 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 -i 0 -t sahd sasi_hd_1.hds -i 1 -t sahd sasi_hd_2.hds
Hier werden zwei Festplatten mit den IDs 0 und 1 emuliert. SASI unterstützt lediglich 2 LUNs pro ID, s2p jedoch bis zu 32.
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.
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 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