TASK 03
Compile the software
Build the pinned Mini microSD image with the reader variant for your board.
You need
- x86_64 Linux builder with Docker
- Git, mise and uv
- Internet for first-build downloads
You’ll have
A flashable .img, build.log and recorded reader configuration.
Compile on x86_64 Linux. The UR2 wrapper prepares the right reader setting; the historical benchmark proves the upstream baseline, not this new patched image.
Choose your target
- This carrier uses Luckfox Pico Mini + microSD + SEC1210/PV-UR2.
- Apple Silicon is rejected by the pinned upstream Docker runner. Use an x86_64 Linux machine/VM; clone the public repo there.
- Mini NAND, Pro/Max and Pico Pi are different build/flash routes. Do not pick them by a similar filename.
Clone the project and prepare the reader
- Run from the repo root on your builder. Preparation checks the OS commit and applies only the reviewed Luckfox UR2 reader setting.
- The manifest records the exact reader file hash; unrelated source changes are rejected.
Prepare carrier sources
git clone https://github.com/lightningspore/shieldsigner-dev.git
cd shieldsigner-dev
mise install uv
mise run os:prepareInspect the recorded reader variant
cat dist/os/UR2/reader-config.json
cat tools/os/seedsigner-os/opt/luckfox/files/sec1210Start the build
- Six general jobs were used on our x86 builder. Rust/LLVM can dominate the first build; keep the named Docker caches.
- The carrier wrapper now defaults to UR2. The previously benchmarked images were unchanged upstream URT builds.
Build the UR2 Mini SD image
SHIELDSIGNER_BUILD_JOBS=6 mise run os:buildFollow current work from another terminal
tail -f dist/os/UR2/build.log
docker statsCollect and verify the output
- Successful exit is necessary: a log file alone is not a finished image.
- Locate the .img and sha256sums.txt under dist/os/UR2. Keep reader-config.json with them.
- The new UR2 preparation was tested, but a complete UR2 image build and hardware boot have not been qualified here.
Locate images and calculate hashes
find dist/os/UR2 -type f \( -name '*.img' -o -name 'sha256sums.txt' \)
find dist/os/UR2 -type f -name '*.img' -exec sha256sum {} \;Iterate without discarding caches
- Run the same build again to reuse Docker/Rust/source caches. Our baseline rerun took 27m 5s instead of 2h 28m 26s.
- Avoid the upstream clean task during ordinary iteration. Keep full rebuilds for toolchain/architecture changes.
Sources & deeper reference
Checked 12 October 2026. Menu names can vary with firmware.
Detailed Buildroot notes ↗Edit this workflow on GitHub ↗