PiSCSI-Control (formals RaSCSI-Control) erfordert mindestens Release 21.10 der RaSCSI/PiSCSI-Software. Dieses und neuere Releases enthalten zahlreiche von mir beigesteuerte Erweiterungen, neue Geräte und Fehlerkorrekturen. Große Teile der PiSCSI-Software habe ich in modernem C++ neu implementiert. Empfohlenes Release ist Version 22.10.
Dies sind die wichtigsten meiner Änderungen:
- Client/Server-Architektur mit wohldefiniertem Remote-Interface (basierend auf Google Protocol Buffers)
- scsictl läuft auch mit einem Intel-Linux und kann sich mit dem PiSCSI-Server auf dem Pi verbinden
- Authentifizierung zur Absicherung aller Operationen
- Herunterfahren von PiSCSI und Herunterfahren/Neustart des Pi (per Remote-Interface oder SCSI-Kommando)
- Gerätedateien (/dev/*) lassen sich als Image-Dateien verwenden
- Unterstützung für hierarchische Image-Ordner im C++-Backend
- Umbenennen, Kopieren und Löschen von Image-Dateien
- Unterstützung von Wechselmedien
- Unterstützung von DVD-Images
- Unterstützung von 32 LUNs pro Gerät (Logische Einheiten)
- Konfigurierbarer Standard-Ordner für Image-Dateien
- Konfigurierbare Gerätekennung (Hersteller, Produkt, Revision)
- Implementierung zahlreicher zusätzlicher SCSI-Kommandos
- Verbesserte Kompatibilität zum aktuellen SCSI-Standard
- Unterstützung für reservierte Geräte-IDs, typischerweise benutzt für die SCSI-Initiator-ID
- Flexiblere Handhabung von Gerätekapazitäten
- Konfigurierbare Sektorgrößen je nach Gerät (256, 512, 1024, 2048, 4096 Bytes)
- Unterstützung von CD-ROM-Laufwerken mit 512 Bytes pro Sektor
- Implementierung eines SCSI-Druckers
- Verbesserte WLAN-Unterstützung für den Daynaport-Netzwerk-Adapter
- ICD-Kompatibilität für Atari-Computer
- Echtzeit-Uhr für SCSI-Clients
- Verbesserte Kommando-Validierung und Fehleranalyse
- Detallierte Informationen zu Eigenschaften des PiSCSI-Servers
- Konfigurierbarer PiSCSI-Server-Port
- Präzisere Fehlermeldungen
- Verbessertes Logging und konfigurierbarer Log-Level
- Lokalisierung von Fehlermeldungen
- Kompatibilitäts-Probleme mit Linux-68k behoben
- Unterstützung für den clang++-Compiler (neben g++)
- Unterstützung für 64-Bit Raspberry Pi OS und Ubuntu
- Wiederherstellung der Funktionalität des scsidump-Tools zum Laden/Speichern von Laufwerks-Inhalten
- Umfangreiche Code-Aufräumarbeiten
- Verbesserte Code-Modularität
- Verbesserte Speicherverwaltung
- Robusterer Code
- Einführung von C++-Unit-Tests basierend auf Google Mock
- Einführung von Test Coverage-Metrics basierend auf gcov/lcov
- Implementierung von über 250 C++-Unit-Tests
- Beseitigung von über 1500 durch SonarCloud gemeldeten C++-Code-Problemen