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 als Default-Property-Datei. Falls Sie explizit eine Property-Datei vorgeben muss diese Datei 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
Die folgende Tabelle führt die von s2p unterstützten globalen 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.
Für den Systemservice oder alternativ zur Kommandozeile lassen sich Geräte in einer Property-Datei definieren. Es werden folgende gerätespezifischen 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-Modus für Fest- und Wechselplatten | 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 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 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.