Properties

Beim Start kann s2p entweder mit Kommandozeilen-Optionen oder mit Properties und Property-Dateien konfiguriert werden.
Falls es viele Startup-Parameter gibt ist die Verwendung von Property-Dateien komfortabler, als eine lange Parameterliste anzugeben. 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 SCSI2Pi 3.0: 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 List 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 effektiven Properties setzen sich aus den Daten der Property-Dateien und den Kommandozeilen-Parametern zusammen. Kommandozeilen-Einstellungen haben eine höhere Priorität als Properties aus Property-Dateien.
Demnächst werden die aktuellen s2p-Einstellungen mit s2pctl -P abgerufen. Diese Informationen lassen sich direkt zum Erzeugen von Property-Dateien verwenden, z. B. als /etc/s2p.conf für die Verwendung von s2p als Systemservice.

Gerätedefinitionen

Alternativ zur Kommandozeile lassen sich emulierte Geräte auch 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 SCSI2Pi 3.0: Caching-Algorithmus PiSCSI-kompatibel --caching-mode/-m
scsi_level SCSI2Pi 3.0: SCSI-Level gemäß Spezifikation Abhängig vom Gerätetyp und der Extension der Image-Datei --scsi-level
params Geräte-Parameter (key=value) bzw.
Name des Image-Files
Abhängig vom Gerätetyp
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. Allerdings müssen Sie wissen, welche Page-Daten der betroffene Treiber erwartet.
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 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.