-
Notifications
You must be signed in to change notification settings - Fork 2
Home
SCSI2Pi (or simply just S2P) is an alternative to the PiSCSI software. SCSI2Pi focuses on improving the SCSI emulation, i.e. the C++ backend, and is compatible with the PiSCSI web UI and the SCSI Control app.
You can switch from PiSCSI to SCSI2Pi (or back, if needed) in seconds, simply by installing/de-installing a Debian package with the binaries. No time-consuming compilation required.
SCSI2Pi emulates several SCSI or SASI devices like hard drives, CD-ROM drives, printers or network adapters at the same time. This means that you can easily add a range of devices to computers like 68k Macs, Atari ST/TT/Falcon, Amigas, old PCs, Unix workstations or samplers. SCSI2Pi offers numerous extensions, new device features, performance improvements and bug fixes. These add to the extensive changes I contributed to the PiSCSI project in the past.
SCSI2Pi was chosen as the name for this project because there are not that many choices anymore when looking for a name that contains both "SCSI" and "Pi" ;-).
Over time, within the PiSCSI project the interest in replacing the old, often buggy or unnecessary/unused code became rather low. In addition, code reviewers were missing, which result in a rather long PR backlog, slowing down the emulation development. Developing software without being able to publish the results is not much fun. Further, long promised features on the roadmap and in tickets have not been addressed. This is why I decided to work on the emulation backend in a separate project. The major part of the PiSCSI C++ codebase has been contributed by me anyway.
There was also no interest in further exploiting the initiator mode feature of the FULLSPEC board. This mode, together with new SCSI2Pi command line tools, offers solutions for use cases that have never been addressed before and helps with advanced testing.
The intention of SCSI2Pi is not to completely replace the PiSCSI software, where great work is being done on the web interface, and on supporting users in social media. SCSI2Pi aims at improving the SCSI emulation and tries to address compatibility issues.
SCSI2Pi focuses on vintage computers like Macs, Ataris, Amigas, workstations and on samplers. There is no support for the X68000, in particular not for the host bridge (SCBR) device. In PiSCSI the related code has always been in a bad shape, and nobody has been willing to test it. It might not even be working. The other PiSCSI features (and more) are supported by SCSI2Pi - many of these I implemented anyway ;-).
As already mentioned, SCSI2Pi is not meant to completely replace PiSCSI. Instead, I provide Debian packages with binaries that replace the PiSCSI emulation backend. Just by installing such a package your PiSCSI installation will profit from a more powerful SCSI emulation.
If need should be, you can switch back any time by de-installing SCSi2Pi. This will automatically restore the PiSCSI binaries and manpages.
Naturally, in case you have to switch back to PiSCSI I would appreciate your feedback on any issues caused by SCSI2Pi which you do not observe with PiSCSI 23.11.01, which is essentially the last PiSCSI release I have contributed to. Just create a SCSI2Pi GitHub ticket with details on what is working with PiSCSI but not with SCSI2Pi. But please note: The SCSI2Pi project only accepts tickets that target SCSI2Pi, but none related to PiSCSI.
Even though I cannot give any guarantees I will try to stay compatible with PiSCSI on the one hand while on the other hand offering new backend features. This also applies to the SCSI Control Android app, which was formerly called PiSCSI Control.
Being compatible and not a full replacement also means being compatible with most of the documentation on the PiSCSI Wiki.
The SCSI2Pi website addresses both users and developers, whereas the information on GitHub is rather developer-centric. The website also provides daily builds and release builds as Debian packages. These packages contain the SCSI2Pi binaries, i.e. no time-consuming compilation is required. Installing SCSI2Pi on your Pi is just a matter of seconds.
If you are interested in the Pi and/or SCSI, in modern C++ and platform-independent programming, you are welcome as a contributor, be it as a developer or a code reviewer.
Did I just say "platform independent programming", even though SCSI2Pi is about the Pi? I did indeed, because I have ensured that the PiSCSI code also compiles and partially runs on regular Linux PCs, on BSD and partially even on macos. This is important for developers and for testing, because the faster your development machine, the better. A PC provides a much better development environment than a Pi. My primary development platform is Eclipse CDT on a Linux PC, by the way.