How to build
Build on macOS or Linux. Kernel-side work runs in a Debian container (Buildroot needs Linux); the harness runs natively.
Requirements #
openocd,ffmpeg,cmake,arm-none-eabi-gcc,picotool- Python 3 with
pyserial - Pico SDK
- Docker (for the Buildroot container)
Written for bash 3.2 (what macOS ships).
One-time setup #
git clone https://github.com/rh1tech/frank-linux.git
cd frank-linux
make hooks # attribution-safe commit hooks
make image # build the Debian/Buildroot containerMain targets #
| Target | What it does |
|---|---|
make slave | Build ARM Linux for the FRANK slave half (Phase 4) |
make slave-flash-usb | Flash bootloader + kernel + DTB over USB BOOTSEL (~52 s) |
make slave-flash | Same flash over SWD (~15 min) |
make apps | Build programs that live on the SD card |
make install | Put everything on an empty board and card, no SWD |
make qemu-arm | ARM NOMMU + FDPIC kernel for QEMU (no hardware) |
make qemu-arm-run | Boot that image under qemu-system-arm |
make check | Full Phase 0 harness gate (needs the bench) |
make slave
make apps
make slave-flash-usb
# or, empty board + empty card:
make installLayout #
firmware/afboot-rp2350/ slave bootloader
firmware/master-ioserver/ master: terminal, HDMI, USB HID, microSD, link
br-external/ Buildroot tree, kernel patches, DTS
tcc-thumb2/ Thumb-2 backend for tcc
tools/ test harness and gates
docs/ measurements and deep dives
Faster loop without the board #
make qemu-arm
make qemu-arm-run
make tcc-qemu # run the on-target C compiler under QEMUmake help lists every target. See the repository README (opens in a new tab) for architecture and known limits.