1489 Commits
Author SHA1 Message Date
Daniel Markstedt 4f800bae94 piscsi-web: display the Info button also for mounted disk images 2026-09-06 12:30:14 +02:00
Daniel Markstedt 1498217271 bump to trixie base image consistently for all container builds 2026-09-06 12:30:14 +02:00
Daniel Markstedt 87bc5fb417 touch up platform architecture build messages 2026-09-06 12:30:14 +02:00
Daniel Markstedt 2096168291 piscsi-web: improve help text and status messages for file upload 2026-09-06 12:30:14 +02:00
Daniel Markstedt c4fb416275 piscsi-web: enumerate files in shared dir for CD-ROM generation
instead of enumerating the images dir for the dropdown where you select a file to create a CD-ROM image from, provide a list of all files in the root of the shared dir, typically /var/lib/piscsi/shared

this is preferable since 1) the images dir enumerating logic filters by valid image or archive file types, and 2) conceptually the files under images are typically not used directly on host machines, while the ones in the shared dir are meant to be transferred to a host machine

for users the workflow changes slightly: when uploading a file meant for an iso image, choose the shared dir instead of the images dir
2026-09-06 12:30:14 +02:00
Daniel Markstedt 77ffe33071 add Host Services remote command support
Port the SCSI2Pi Host Services execute-operation and result-retrieval commands, including binary, JSON and text protobuf formats. Route commands through PiSCSI's command handler without socket transport or lock re-entry, and configure attached Host Services devices automatically.

Validate CDB formats and payloads, support transfers larger than the controller's default buffer, correct Mode Sense response lengths, and cover the new protocol with unit tests.
2026-09-04 07:25:13 +02:00
Daniel Markstedt bc0dbd55e0 exclude Go test code from test coverage calculations 2026-09-03 06:55:44 +02:00
Daniel Markstedt 2fd0318c88 piscsi-web: refactor away repeated string literals 2026-09-03 06:55:44 +02:00
Daniel Markstedt 6e195049c1 piscsi-web: mark safe shell commands with NOSONAR 2026-09-03 06:55:44 +02:00
Daniel Markstedt 9e79ae197d reformat Go code 2026-09-03 06:55:44 +02:00
Daniel Markstedt 346ac8fc79 bind explicit PATH env variables to systemd units 2026-09-03 06:55:44 +02:00
Daniel Markstedt 6ee82fe953 piscsi-web: harden journal log capturing 2026-09-03 06:55:44 +02:00
Daniel Markstedt de2db84ee9 piscsi-web: configuration download hardening 2026-09-03 06:55:44 +02:00
Daniel Markstedt 825a33872d place the NOSONAR comment in the right place 2026-09-03 06:55:44 +02:00
Daniel Markstedt 0d021648db extract Go unit test code coverage for SonarQube 2026-09-01 23:26:54 +02:00
Daniel Markstedt 7a00de2b0d update device type names for clarity 2026-09-01 22:45:35 +02:00
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 247c2816c0 bump to Ubuntu 24.04 base and add arm64 to cross compile matrix 2026-09-01 20:25:51 +02:00
Daniel Markstedt c3b4d23663 remove connect type build matrix 2026-09-01 20:25:51 +02:00
Daniel Markstedt 1bd0c06bc6 meson: fix protobuf race condition and track build targets
two fixes: make sure the generated protobuf sources are available before proceeding with compilation, and track the actual build targets that get flagged in the configure summary
2026-09-01 20:25:51 +02:00
Daniel Markstedt 485298ffe5 restore X68000 Host Bridge support
Restore the SCBR device as an X68000 Host Bridge, including the Human68k-compatible host file-system service and the bridge-specific SCSI message handlers. Back its Ethernet path with the TAP driver, derive a stable locally administered MAC address, preserve the driver minimum-frame/FCS expectations, and restrict received traffic to its own unicast frames and broadcasts.

Match the RASCTL/RASETHER/RASDRV bridge protocol that originated in the parent RaSCSI project: dispatch its non-standard message format on READ(10)/WRITE(10) (0x28/0x2a), with type, function, phase, and a three-byte byte count carried in the CDB. Advertise the legacy control channel required by RASCTL, translate its list and device-management commands to PiSCSI operations, and defer stop or system-shutdown requests until after the response is sent, while gating this insecure interface behind a new '-c disabled|media|full' runtime option. Preserve the type-1 Ethernet exchange used by RASETHER and the type-2, phased filesystem exchange used by RASDRV.

Register the device in the factory, protobuf API, controller transfer path, command-line tooling, device listings, and web UI. Share the explicit bridge and proxy-ARP topology workflow with DaynaPort so both adapters validate and use the same mode/interface pair.

Add build support for iconv where needed, extend unit coverage for device creation, RAS* protocol handling, CLI parsing, web attachment, and topology selection, and update the man pages and network-profile documentation for Host Bridge operation and its networking limits.
v26.08.01
2026-09-01 00:52:00 +02:00
Daniel Markstedt 74040c5a0a fix gettext translation merge script 2026-09-01 00:43:01 +02:00
Daniel Markstedt f583ae0687 restore hyperlinks to sponsor usernames tmp 2026-08-31 12:58:32 -07: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 4653db7313 ability to attach all devices in the Control Board UI
when you do Attach/Insert on an empty slot, you now get a list of all available device types instead of list of all images; picking one of them either attaches the device immediately, or takes you to a submenu for making additional choices (network topology, image file)

introduce image file filtering per the device type that is being attached, including filtered lists also for inserting media into existing removable devices

add an option to attach a removable device without inserting media
2026-08-31 07:16:21 +02:00
Daniel Markstedt c292364b44 improved horizontal scrolling and columns in OLED client
rather than scrolling a long status strings horizontally back and forth, we now have:

- ID and type as frozen columns
- scroll from left to right then wrap to the beginning
- 3 frame pause before scrolling starts
- 2 frame pause before a fully scrolled string wraps
- print product names for all non-file device types
- special abbreviation of SAHD->SA (to disambiguate with SCHD)
2026-08-30 18:27:17 +02:00
Daniel Markstedt b9147e5b33 correct LUN description for SASI in piscsi man page 2026-08-30 01:43:42 -07:00
Daniel Markstedt 369156ec9f update minimum execution time for SASI in man page
Clarify default execution times for SCSI and SASI commands.
2026-08-30 01:42:28 -07:00
Daniel Markstedt 1a51f2441e add 'sasidump' entry to manpage test 2026-08-30 01:29:49 -07:00
Daniel Markstedt 03692438fa add sasidump to piscsi-web manpage index 2026-08-30 01:22:22 -07:00
Daniel Markstedt 69535c772b fix NEC image sector size handling
Use the validated image sector size to derive SCSIHD_NEC's sector shift count, instead of the complete image size. This restores correct capacity and MODE SENSE geometry for PC-98 HDN images.
2026-08-30 09:13:03 +02:00
Daniel Markstedt a0c3c41f2c the Sleep() function now takes a parameter
common bus wait times are now defined in a central place, and passed to the Sleep() function
2026-08-30 08:27:35 +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 1b9f279e61 introduce X68000 SASI compatibility quirks
Port the X68000 SASI probe handling and completion-message behavior from the older RaSCSI SASI implementation.

Borrow BlueSCSI v2-compatible Assign Disk Parameters (0xC2) handling: accept its six-byte CDB and consume the ten-byte parameter payload.
2026-08-30 08:27:35 +02:00
Daniel Markstedt e57893893c restore support for SASI disk drive device
Introduce a SASI controller and SAHD disk implementation alongside the existing SCSI path. Select the appropriate controller when attaching a device, prevent SASI and SCSI devices from sharing a target ID, and implement SASI-specific selection, message, status, timing, and LUN handling.

Restore SAHD in the protocol and expose it consistently through the device factory, command-line client, configuration validation, web interface, drive profiles, and manual. Enforce the two-LUN limit for SASI targets wherever device definitions are created or parsed.

Bring back handling of the hdf image format and map it to the SAHD device type. The hdf file ending is the established one for SASI raw disk images used in the X68000 emulation community, however it is a raw data format without any special header.

Add focused C++ and Go coverage for SASI devices, controller selection, LUN validation, and web-facing behavior.
2026-08-30 08:27:35 +02:00
Daniel Markstedt 099aace7f9 Update documentation URL in piscsi-web.service 2026-08-29 23:08:07 -07:00
Daniel Markstedt af834bf019 update scsiexec tarball URL and fix install logic 2026-08-27 22:59:43 +02:00
Daniel Markstedt 12403ff83b install piscsi.service with the meson build system 2026-08-27 22:59:43 +02:00
Daniel Markstedt 087bf241a3 correct language spellings 2026-08-27 22:59:43 +02:00
Daniel Markstedt 48ed872a99 rewrite companion service detection with systemd 2026-08-27 22:59:43 +02:00
dependabot[bot] 85d886fbae Bump actions/upload-pages-artifact from 4 to 5 in /.github/workflows
Bumps [actions/upload-pages-artifact](https://github.com/actions/upload-pages-artifact) from 4 to 5.
- [Release notes](https://github.com/actions/upload-pages-artifact/releases)
- [Commits](https://github.com/actions/upload-pages-artifact/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/upload-pages-artifact
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-08-27 12:41:47 +02:00
dependabot[bot] 7d33f48c56 Bump actions/deploy-pages from 4 to 5 in /.github/workflows
Bumps [actions/deploy-pages](https://github.com/actions/deploy-pages) from 4 to 5.
- [Release notes](https://github.com/actions/deploy-pages/releases)
- [Commits](https://github.com/actions/deploy-pages/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/deploy-pages
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-08-27 12:41:15 +02:00
Daniel Markstedt 576dd5222b move compilation out of easyinstall.sh
now users are expected to either install a binary deb package or use the build system directly when installing piscsi and the clients

create an INSTALL.md file with instructions how to use both the Makefile and Meson build systems

easyinstall.sh has been restructured to handle companion app installation solely, while the Netatalk installation script uses the Debian package instead of compiling from source

move the network configuration ASCII graphics over to the piscsi-network-profile script
2026-08-26 23:43:18 +02:00
Daniel Markstedt f902357b2e refine build details in Debian readme 2026-08-24 19:41:15 +02:00
Daniel Markstedt 1edf393f7c add project description to docs site 2026-08-23 18:35:42 +02:00
Daniel Markstedt b75cdfc7ae touch up docs site 2026-08-23 18:09:11 +02:00
Daniel Markstedt 0dd4e72031 create workflow for publishing to Pages 2026-08-23 17:51:26 +02:00
Daniel Markstedt f8675e0e5c create a man page documentation website 2026-08-23 17:40:58 +02:00
Daniel Markstedt d7d31ff8f9 clean up gitignore 2026-08-23 17:40:58 +02:00