Properties

Beim Start kann s2p entweder mit Kommandozeilen-Optionen oder mit Properties und Property-Dateien konfiguriert werden. Bei Verwendung von s2p als Systemservice enthält /etc/s2p.conf die vollständige Konfiguration. Einstellungen in Dateien und Kommandozeilen-Optionen (die s2p-Manpage erklärt alle verfügbaren Optionen) können gemischt werden. Eine Kommandozeilen-Option überschreibt die entsprechende Einstellung in einer Property-Datei. Mode Page-Definitionen sind nur mit Properties möglich.
Wenn nicht explizit mit der -C-Option angeben verwendet s2p /etc/s2p.conf und ~/.config/s2p.conf als Default-Property-Dateien. Diese Dateien sind optional. Falls Sie ausdrücklich eine Property-Datei vorgeben muss diese Datei jedoch existieren. Sie können mehrere Property-Dateien als komma-separierte List angeben. Zeilen in Property-Dateien, die mit einem '#' beginnen, werden als Kommentare behandelt.
Einzelne Properties werden mit der Kommandozeilen-Option -c definiert:

>s2p -c log_level=trace -c reserved_ids=6

Property-Übersicht

Die folgende Tabelle führt die von s2p unterstützten Properties auf. Sofern es eine entsprechende Kommandozeilen-Option gibt ist diese auch aufgeführt.

Name Beschreibung Default Kommandozeilen-Option
device Gerätedefinition, Details s. u. --sasi-id/-h, --scsi-id/-i
extensions Mapping von Datei-Extensions auf Gerätetypen
image_folder Default-Ordner für Image-Dateien ~/images --image-folder/-F
locale Sprache für Fehler- und Statusmeldungen Systemeinstellung --locale/-z
log_level s2p-Log-Level info --log-level/-L
log_pattern s2p-Log-Pattern,
Details auf der spdlog-Website
spdlog Default-Einstellung --log-pattern/-l
mode_page Mode Page-Definition, Details s. u. Vordefinierte s2p Standard-Mode Pages
port s2p-Server-Port 6868 --port/-p
reserved_ids Komma-separierte Liste der reservierten IDs --reserved-ids/-r
scan_depth Maximale Tiefe der Verzeichnisse für Image-Dateien 1 --scan-depth/-R
token_file Datei mit Zugriffs-Token --token-file/-P

Beim Starten von s2p werden die effektiven Properties beim Loggen auf trace-Level aufgelistet. Die aktuellen s2p-Einstellungen werden mit der SCSI-Control-App oder mit s2pctl -P abgerufen. Die von s2pctl angezeigten Daten lassen sich direkt zum Erzeugen von Property-Dateien verwenden, z. B. in /etc/s2p.conf.

Gerätedefinitionen

Für den Systemservice oder alternativ zur Kommandozeile lassen sich emulierte Geräte in einer Property-Datei definieren. Es werden folgende Properties unterstützt:

Name Beschreibung Default Kommandozeilen-Option
active Falls false wird das Gerät nicht benutzt true
block_size Sektorgröße SCSI-Festplatten: 512 Bytes,
SASI-Festplatten: 256 Bytes,
CD-ROM- und MO-Laufwerke: 2048 Bytes
--block-size/-b
caching_mode Caching-Algorithmus PiSCSI-kompatibel --caching-mode/-m
name Gerätename für das INQUIRY-Kommando Abhängig vom Gerätetyp,
meist "SCSI2Pi" mit Versionsnummer
--name/-n
params Geräte-Parameter (key=value) bzw.
Name der Image-Datei
Abhängig vom Gerätetyp
scsi_level SCSI-Level gemäß Spezifikation Abhängig vom Gerätetyp und der Extension der Image-Datei --scsi-level
type Gerätetyp Von der Extension der Image-Datei abgeleitet,
falls möglich
--type/-t

Beispiel für den Inhalt einer Property-Datei:

# ID 0: SCSI-Festplatte mit Standard-Parametern, Image-Datei "test.hds"
# Fehlt der Gerätetyp wird er aus der Extension der Image-Datei hergeleitet
device.0.params=test.hds
# ID 0, LUN 1: SCSI CD-ROM mit Sektorgröße 512 Bytes, Image-Datei "test.iso"
device.0:1.block_size=512
device.0:1.params=test.iso
device.0:1.type=SCCD

Mode Pages

Mode Pages definieren einige der Eigenschaften eines SCSI-Gerätes. Manche Treiber fragen diese Daten ab und erwarten manchmal bestimmte Werte. Abhängig vom Gerätetyp besitzt SCSI2Pi einen Satz vordefinierter Mode Pages (1, 2, 3, 4, 7, 8, 10, 12, 13, 32, 37, 48). Diese sind mit den allermeisten Gerätetreibern kompatibel. Es gibt seltene Fälle, typischerweise mit eher exotischen Computern, bei denen diese Default-Daten nicht das sind, was ein Treiber erwartet. Es kann auch vorkommen, dass ein Treiber eine Mode Page erwartet, die nicht von den durch s2p vordefinierten Pages abgedeckt wird. In solchen Fällen hilft das Konfigurieren von Mode Pages mit angepassten Daten.
Mit der -I-Option erzeugt das s2pdump-Tool Mode Page-Definitionen aus den Daten, die ein echtes Gerät liefert.

Die Daten, die s2p für eine Mode Page liefert, werden mit dem Property-Key mode_page definiert.

# Seite 0 für alle Laufwerke mit der Hersteller-ID "IBM"
mode_page.0.IBM=00ff020304ff
# Seite 3 für alle Laufwerke mit der Hersteller-ID "SCSI2Pi" und dem Produkt-Namen "SCSI HD 1011 MiB"
mode_page.3.SCSI2Pi:SCSI HD 1011 MiB=03:05:0a:0c:b0:b4:de
# Bei FUJITSU-Laufwerken Seite 4 aus der Liste der vordefinierten Seiten entfernen
mode_page.4.FUJITSU=
# Diese Seiten-Definition ist ungültig, weil der Page Code einen inkonsistenten Wert hat
mode_page.8.XYZ=180401020304
# Diese Seiten-Definition ist ungültig, weil das Längen-Feld einen falschen Wert hat
mode_page.9.XYZ=090701020304

Das mode_page-Schlüsselwort wird vom Page Code gefolgt. Ist der Page Code identisch mit einer vordefinierten Page ersetzt die angepasste Seite die vordefinierte Seite, d. h. Sie können jede s2p-Seite überschreiben. Andernfalls wird die neue Seite zur Liste der existierenden Seiten hinzugefügt. Die letzten Key-Komponenten sind der Hersteller- und Produkt-Name des INQUIRY-Strings des Gerätes, für das die benutzerdefinierte Mode Page benutzt werden soll. Der Produkt-Name ist optional. Die hexadezimalen Bytes der eigentlichen Seiten-Daten können optional per Doppelpunkt getrennt werden. Sind für eine Seiten-Definition keine Daten definert, wird diese Seite aus der Liste der vordefinierten Seiten entfernt. Benutzen Sie dieses Syntax falls Sie auf einen Treiber stoßen, der annimmt, dass eine der Default-Seiten nicht existiert.
Der Property-Wert enthält die kompletten Daten der im Key spezifizierten Page. s2p prüft Page Code und Länge einer benutzerdefinierten Mode Page auf Kompatibilität mit der SCSI-Spezifikation. Lediglich bei Page 0 findet keine Überprüfung der Länge statt, da diese Page kein wohldefiniertes Format hat.