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-Emulationen und Fehlerkorrekturen. Große Teile der PiSCSI-Software habe ich in modernem C++ neu implementiert. Empfohlenes Release ist Version 23.04.
Dies sind die wichtigsten meiner Verbesserungen:
- Client/Server-Architektur mit wohldefiniertem Remote-Interface (basierend auf Google Protocol Buffers)
- Detallierte Informationen zu Eigenschaften des PiSCSI-Servers
- Konfigurierbarer PiSCSI-Server-Port
- scsictl läuft auch auf einem Intel- oder ARM-Linux und kann sich mit PiSCSI auf dem Pi verbinden
- Optionale 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
- Umbenennen, Kopieren und Löschen von Image-Dateien
- Unterstützung von Wechselmedien
- Unterstützung von DVD-Images
- Konfigurierbarer Standard-Ordner für Image-Dateien
- Unterstützung von 32 LUNs pro Gerät (Logische Einheiten)
- Konfigurierbare Gerätekennung (Hersteller, Produkt, Revision)
- Implementierung zahlreicher zusätzlicher SCSI-Kommandos
- Verbesserte Kompatibilität zum aktuellen SCSI-Standard
- Verbesserte Kompatibilität zu zahlreichen PC/Workstation-Plattformen
- ICD-Kompatibilität für Atari-Computer
- Kompatibilitäts-Probleme mit Linux-68k behoben
- 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
- Verbesserte WLAN-Unterstützung für den Daynaport-Netzwerk-Adapter
- Implementierung eines SCSI-Druckers
- Echtzeit-Uhr für SCSI-Clients
- Verbesserte Kommando-Validierung und Fehleranalyse
- Präzisere und mehrsprachige Fehlermeldungen
- Verbessertes Logging und konfigurierbarer Log-Level
- Wiederherstellung der Funktionalität des scsidump-Tools zum Laden/Speichern von Laufwerks-Inhalten
- Unterstützung für den clang++-Compiler (neben g++)
- Unterstützung für 64-Bit Raspberry Pi OS und Ubuntu
- Umfangreiche Code-Aufräumarbeiten
- Verbesserte Code-Modularität
- Verbesserte Speicherverwaltung
- Robusterer und moderner C++-Code
- Einführung von C++-Unit-Tests basierend auf Google Mock
- Einführung von Test Coverage-Metrics basierend auf gcov/lcov
- Implementierung von über 260 C++-Unit-Tests
- Beseitigung von über 1500 durch SonarCloud gemeldeten C++-Code-Problemen