23 Commits
Author SHA1 Message Date
Daniel Markstedt 6c1aa8eaaf overhaul the SonarCube coverage CI job
the SonarCube Cloud scan actions were using outdated and conflicting configurations, while omitting the Go codebase

now we also build all the binaries with the Makefile
2026-09-01 21:14:49 +02:00
Daniel Markstedt 1ee4a320b8 replace compile-time board types with runtime profiles
Move GPIO mappings into a single module and select a board profile at process startup instead of at compile time: Build every GPIO-facing utility for every supported profile. At the same time, we remove support for the historical AIBOM board type since it's the only one using positive logic, the other three variants share the same electrical behavior.

Run piscsi, scsimon, scsiloop, scsidump, or sasidump with -C=STANDARD, FULLSPEC, or GAMERNIUM. FULLSPEC remains the default. To select a profile for the systemd service, set PISCSI_CONNECTION_TYPE and restart the service.
2026-08-31 21:55:50 +02:00
Daniel Markstedt bbf50d504a restore the sasidump utility
Restore the sasidump tool for dumping physical SASI hard disks to local file through piscsi GPIO. It has been slightly refactored to align with the current C++ coding standards.
2026-08-30 08:27:35 +02:00
Daniel Markstedt e972b3c31a explicitly wait for protobuf source to be generated 2026-08-30 08:27:35 +02:00
Daniel Markstedt e9e48b7fca remove plain text man page generation 2026-08-23 17:40:58 +02:00
Daniel Markstedt fa878e3133 create Debian packaging files
Debian deb packaging files for all four targets: piscsi, piscsi-web,
piscsi-oled, piscsi-ctrlboard

build instructions for Trixie specifically in README.Debian

consolidate all systemd unit files and standardize on /usr/bin
for all binaries
2026-08-21 07:09:06 +02:00
Eric Helgeson 7bef2d72ae rewrite Web UI in Go
Introduce a server-rendered Go control panel for managing PiSCSI devices, disk images, saved configurations, archives, uploads, system settings, embedded themes and translations, PWA assets, a mock daemon, installation and systemd support, generated protobuf bindings, tests, and CI builds for supported Raspberry Pi targets.

This is built for feature parity with the Python Web UI, with a few notable differences: piscsi-web runs as a non-privileged user, there is no user authentication, the upload form uses a plain stream with no Javascript, the ability to set 'pretty hostname' is removed, and reserved ID memos are removed too.

Update piscsi core to use /var/lib/piscsi/images as its default and resolve relative image folders from the server working directory. Allow valid folders outside the user's home directory, and align the tests, protocol comments, service example, and man pages with the new behavior.

Ship a script and makefile target for migrating user data from old to new file system locations.
2026-08-01 12:30:27 +02:00
Daniel Markstedt 00743d1126 force man page to plain text output to 80 char width 2026-01-02 07:09:22 +09:00
Daniel Markstedt a99e1c51b9 Move the protobuf source into its own dir in the repo root
The protobuf source file is used by more than just the C++ code,
so let's move it into its own location for consistency and discoverability
2025-12-03 23:20:46 +01:00
Daniel Markstedt db31ba291f have all objects depend on generated protobuf code (#1437)
Protect against compiler errors due to the protobuf header not existing yet when you compile multi threaded
2025-11-28 09:00:07 +01:00
BogDan Vatra a985fc83e4 Say hello to Streamer (tape) device support
Implements the mandatory and a few optional commands for tandberd see
https://bitsavers.org/pdf/tandbergData/TDC4100/6047-1_TDC-4100_SCSI-2_Interface_Functional_Specification_Aug1991.pdf
for more info.

Fixed #480
2025-11-07 07:43:21 +01:00
Uwe Seimet 7fa9abe5a3 Remove fullspec/standard sub-folder (#1324)
* Remove fullspec/standard sub-folder
2023-11-14 15:51:36 +01:00
Uwe Seimet 616e11ebe2 Only build scsidump when building for the FULLSPEC board (#1285) (#1286)
* Only build scsidump when building for the FULLSPEC board

* Only install scsidump manpage when building for the FULLSPEC board

* Only install scsidump binary when building for the FULLSPEC board

* Revert debug optimization back to -O0, -Og omits some information
2023-11-08 00:26:07 +01:00
Uwe Seimet aa927cb504 Move top-level .cpp files into their respective folders (#1249)
* Update Makefile, move top-level .cpp files

* Move top-level .cpp files into their respective folders
2023-10-16 18:27:18 +02:00
Uwe Seimet 41bdcd4aed Issues 1179 and 1182 (#1232)
* Update logging

* Remove duplicate code

* Update unit tests

* Clean up includes

* Merge ProtobufSerializer into protobuf_util namespace

* Precompile regex

* Add const

* Add Split() convenience method, update log level/ID parsing

* Move log.h to legacy folder

* Elimininate gotos

* Fixes for gcc 13

* Update compiler flags

* Update default folder handling

* Use references instead of pointers

* Move code for better encapsulation

* Move code

* Remove unused method argument

* Move device logger

* Remove redundant to_string

* Rename for consistency

* Update handling of protobuf pointers

* Simplify protobuf usage

* Memory handling update

* Add hasher
2023-10-15 08:38:15 +02:00
Uwe Seimet 2092b35c89 Added optional LDFLAGS in order to control linking, e.g. for faster linking (#1128) 2023-03-24 08:54:05 +01:00
Daniel Markstedtandnucleogenic 071fdd2dd5 Move os_integration to root level (#1085)
* Move the os_integration dir from cpp/ to root level

Co-authored-by: nucleogenic <nr@nucleogenic.com>
2023-01-28 15:03:41 -08:00
52c2aa474f Rebrand project to PiSCSI (#1016)
* Rebrand project to PiSCSI
- rascsi ->piscsi
- rasctl -> scsictl
- rasdump -> scsidump
- ras* -> piscsi* (rasutil -> piscsi_util, etc.)

* Refined the formatting and wording of the app startup banner
* Kept some references to rascsi and rasctl where backwards compatibility is concerned
* Point to the new github repo URL

Co-authored-by: nucleogenic <nr@nucleogenic.com>
Co-authored-by: Uwe Seimet <Uwe.Seimet@seimet.de>
2022-12-05 09:58:23 -08:00
akuker eb71c31cf1 Initial merge of (incomplete) Banana Pi updates (#993) 2022-12-02 22:20:27 -06:00
Uwe Seimet 4fa513090a Improve code sharing and dependencies, address code duplication (#976) 2022-11-10 07:44:06 +01:00
Uwe Seimet 1c0179e7e3 rasdump and monitor updates, made rasdump work, improved bus abstraction (#973)
* Moved rasdump and monitor to sub-folders, cleaned up code

* Fixes rasdump issues and added additional features like device type check, LUN support and configurable buffer size
2022-11-09 08:40:26 +01:00
Uwe Seimet 83d1595a35 Improved testability of rascsi/rasctl/scsimon/rasdump, eliminated global fields (#960)
* Moved rascsi/rasctl/scsimon/rasdump.cpp to classes (for better testability)

* Moved bus.* to hal folder

* Removed some global variables

* Fixed code redundancies
2022-11-02 23:41:45 +01:00
Daniel Markstedt 08194af424 Move C++ code into cpp/ dir (#941)
- Moved C++ code to cpp/ from src/raspberrypi
- Related updates to Makefile, easyinstall.sh, and the github build rules
- Removed the native X68k C code in src/x68k from the repo
2022-10-25 12:59:30 -07:00