-
Notifications
You must be signed in to change notification settings - Fork 2
Home
SCSI2Pi is the further deveopment the PiSCSI software. SCSI2Pi is compatible with the PiSCSI web UI and features the SCSI Control app.
You can install SCSI2pi standalone or switch from PiSCSI to SCSI2Pi (or back, if needed) in seconds, simply by installing/de-installing a package with the binaries.
SCSI2Pi emulates SCSI or SASI devices like hard drives, MO drives, CD-ROM drives, streamers, printers, network adapters or a realtime clock. You can easily add a range of devices to computers like old Macs, Atari ST/TT/Falcon, Amigas, old PCs, workstations or samplers. SCSI2Pi offers numerous extensions, new devices, performance and configuration improvements as well as bug fixes. Unique features like a SCSI-to-USB bridge and advanced streamer support presumably make SCSI2Pi the most versatile SCSI emulation.
Within the PiSCSI project the interest in replacing outdated, often buggy or unnecessary/unused code was rather low. In addition, code reviewers were missing, which resulted in a rather long PR backlog, slowing down the release cycle. Long promised features have never been addressed. This is why I decided to improve the emulation in a separate project. The major part of the PiSCSI emulation codebase has been contributed by me anyway.
There was also no interest in further exploiting the initiator mode feature of the PiSCSI/RaSCSI 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, but to improve the SCSI/SASI emulation and to address compatibility and perfomance 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. The other PiSCSI features (and many more like SASI or streamer support) are supported by SCSI2Pi - many of these I implemented anyway ;-).
SCSI2Pi replaces the PiSCSI emulation backend. Simply by installing a binary package your PiSCSI web UI profits from a more powerful emulation. No time-consuming compilation is required. If need should be, you can switch back to the PiSCSI backend any time by de-installing SCSI2Pi.
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 24.04.01, which is 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, or open a discussion. 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 features. This also applies to the SCSI Control Android app, which supports both SCSI2Pi and PiSCSI.
Being compatible with PiSCSI 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 binary packages. With these packages installing SCSI2Pi on your Pi is just a matter of seconds.
If you are interested in the Pi and/or SCSI/SASI, in modern C++ and platform-independent programming, you are welcome as a contributor, be it as a developer, a C++ code reviewer or a tester.
Did I just say "platform independent programming", even though SCSI2Pi is about the Pi? I did indeed, because I ensure that the SCSI2Pi code also compiles and partially runs on regular Linux PCs, on FreeBSD, NetBSD and even on macOS. Some of the tools offered by SCSI2Pi can even be used with USB drives connected to a Linux PC. Platform independence is important for developers and for testing, because the more powerful your development machine, the better. A PC provides a much better development environment than a Pi.