Skip to content

rpi-kickstart

rpi-hal stops at the peripheral: it hands out a Uart, a Mailbox, an Sd. What every board then does with them turns out to be the same program written again: a console the whole image can print to, a heap sized from what the firmware reports, a card mounted and a settings file read off it, a site served out of RAM, a clock that something has to set. rpi-kickstart is that program, written once.

Every capability is a feature, so a board takes only what it uses. The project template starts with console alone.

Feature What it is
console One sink for the whole image, and logln!
heap A TLSF #[global_allocator], sized from what the firmware reports
entropy The SoC’s hardware RNG, and the getrandom backend over it
config A TOML settings file, with file:line:column errors
storage The card’s FAT volume, mounted with resident-fat
site Everything under /WWW on the card, served from RAM
clock, tz, sntp The wall clock, local time, and setting it from NTP
net, ethernet, wifi, mdns Getting onto the network, and a name on it
web, auth A picoserve web server, and password login for it
tls, https, notify TLS 1.3 client connections, HTTPS requests, push and email notifications
metrics Prometheus metrics, including the build’s identity
ota Over-the-air updates, in rpi-loader-ota’s bundle format
splash A boot logo baked into the kernel

The README has the full list and what each feature needs.