SCSI2Pi und der ACSI-Bus

SCSI2Pi unterstützt die Nutzung aller SCSI-Kommandos mit dem ACSI-Bus, denn von mir beigesteuerter Code macht SCSI2Pi ICD-kompatibel. Dies ist insbesondere für den internen Hostadapter des MegaSTE interessant, aber auch für andere Ataris mit internem oder externem Hostadapter.

Vorteile (nicht nur) für den MegaSTE

Der interne Hostadapter des MegaSTE besitzt normalerweise mehrere Einschränkungen: Er unterstützt lediglich eine einzige ID und kann nur auf das erste Gigabyte eines Laufwerks zugreifen.
Für HDDRIVER-Setups mit SCSI2Pi, PiSCSI oder BlueSCSI gehören diese Einschränkungen der Vergangenheit an. Es lassen sich bis zu 8 Geräte zum Hostadapter des MegaSTE hinzufügen. Beispielsweise Festplatten, CD-ROM-Laufwerke und eine Echtzeituhr mit Sommerzeit-Unterstützung. Dies ist möglich, weil HDDRIVER für ACSI 8 LUNs (SCSI-Untereinheiten) unterstützt, die sich mit SCSI2Pi leicht einrichten lassen. Außer einem Raspberry Pi und dem PiSCSI-Board bzw. BlueSCSI ist keine spezielle Hardware erforderlich.

Beim Starten von s2p (oder piscsi) werden LUNs durch das Anhängen der LUN-Nummer an die Geräte-ID definiert, getrennt durch einen Doppelpunkt, z. B.:

>sudo s2p -id 0:0 BOOT_IMAGE_FILE_FOR_LUN_0.hds -id 0:1 CD_ROM.iso -id 0:2 -t scrm RAW_DEVICE_FILE_FOR_LUN_2 -id 0:6 services

RAW_DEVICE_DATEI kann beispielsweise /dev/sda sein. Dies heißt, dass jedes mit dem Pi verbundene USB-Laufwerk vom Atari nutzbar ist. Es kann partitioniert werden etc. wie jedes SCSI/ACSI-Laufwerk.

Ein Raspberry Pi Zero WH oder Zero 2 W mit PiSCSI-Board lässt sich leicht statt einer Festplatte in einem MegaSTE unterbringen. Zumindest der Raspberry Pi Zero WH kann vom MegaSTE mit Strom versorgt werden. Für den Zero 2 W wurde dies nicht getestet.
Die Zeit, die ein MegaSTE mit TOS 2.06 vor dem Bootversuch wartet, ist ausreichend, um den SCSI2Pi-Dienst auf einem intern verbauten Raspberry Pi Zero WH zu starten.
Vor dem Ausschalten des MegaSTE kann der Raspberry Pi mit der SCSI-Control-App oder den SCSI2Pi-Client-Tools heruntergefahren werden. Diese Tools ermöglichen auch die Verwendung von SCSI2Pi als Echtzeit-Uhr mit Sommerzeit-Unterstützung. Dies ist beispielsweise nützlich, wenn die Batterie der MegaSTE-Uhr leer ist, oder einfach nur um Sommerzeit-Unterstützung zu haben.

Der Screenshot zeigt 6 Geräte, die von einem direkt an den internen MegaSTE-Hostadapter angeschlossenen PiSCSI-Board emuliert werden.

PiSCSI with a MegaSTE

Wichtig zu wissen: Leider unterstützt die DaynaPort-Treiber für STiNG und MiNT nur LUN 0. Daher lässt sich die DaynaPort-Emulation am internen Hostadapter des MegaSTE nicht verwenden, falls LUN 0 bereits durch eine emulierte Festplatte belegt ist. (TOS kann nur von LUN 0 booten.)
Es dürfte keine große Sache sein, die DaynaPort-Treiber um LUN-Unterstützung zu erweitern. Auf GitHub gibt es passenden Code für den SCSI-Treiber, der ein Gerät unabhängig von seiner SCSI-ID und LUN automatisch erkennt.
Eine definitiv weniger saubere Lösung ist ein Patch für HDDRIVER.