What's Changed
Naked Provisioner & Image Customisation
- Expand naked-provisioner stages to include bootfs-mounted and rootfs-mounted phases for full image customisation support (fixes #258)
- Use
cp --reflink=autofor image copying, optimising performance and reducing disk usage on btrfs/xfs hosts - Add checks to ensure customisation scripts are executable before running
- Flash modified image when customisation scripts are executed
Provisioning Hooks
- Add
provision-startedstage and hook, allowing actions (e.g. LED control, rig signaling) to execute at the start of provisioning
Customisation WebUI
- Add copy-sources functionality allowing users to select and copy scripts from other provisioners during stage editing
- Display dropdown for available scripts from other provisioners, improving usability and efficiency
Provisioning Improvements
- Consolidate loop device management functions (
ensure_next_loopdev,ensure_loopdev_partitions,unmount,unmount_image) intorpi-sb-common.shfor better code reuse and maintainability - Improve cleanup logic in provisioner scripts to properly unmount images before deletion, preventing dangling loop devices
- Enhance error handling in losetup operations with clearer exit messages on failure
- Remove redundant
get_variablefunction fromrpi-fde-provisioner.sh
Features (from earlier in this release cycle)
- Add PKCS#11 HSM signing support for secure signing operations
- Add USB speed attribute detection for better device capability identification
- Add CSRF token validation for critical endpoints
- Add
kernel_modules.listfor configurable kernel module inclusion - Integrate rpi-modcopy for improved kernel module handling and dependency resolution
- Add
RPI_DEVICE_RPIBOOT_GPIOconfiguration for Pi 4 family secure-boot provisioning (fixes #242)
WebUI Accessibility
- Add
lang="en", semantic HTML structure, ARIA roles/live regions, table captions, accessible tab interfaces, and screen-reader-only descriptions for D3 visualizations - Improve focus visibility with enhanced CSS outline styles
Packaging
- Add rpi-modcopy dependency for kernel module handling
- Fix CMake configuration for jsoncpp dependency
- Improve upgrade experience by shipping config defaults to
/usr/share/rpi-sb-provisioner/defaults/with user overrides in/etc/rpi-sb-provisioner/, eliminating dpkg conffile prompts during upgrades
Full Changelog: v2.1.3...v2.2.0