Repository navigation
Added
--escapepicks the key that leaves terminal mode, as^Xcaret
notation or a single character, andRPI_LOADER_ESCAPEsets it for
every invocation. Ctrl-] stays the default, but a keyboard layout with
no]key (German, Nordic) has no reliable way to type it. The
terminal-mode banner names the key in use, calls the default the
telnet escape, and says how to change it.
Fixed
- The Pi 5 firmware never answered with a bootloader from 2024-10-10
or later. Those bootloaders put RP1, and so the loader's console, at
a different CPU address than rpi-hal expects, and the first console
access stalled the core. The loader now calls rpi-hal's new
rp1::initbefore it opens the console, which moves RP1 back. - Ctrl-C did not stop a handshake the device talked over. The CLI
checked for Ctrl-C only between HELLO attempts, and each attempt waited
up to 2 s per byte for the ACK, so a device that kept printing (a
kernel still running instead of the loader) restarted that wait with
every byte and Ctrl-C was never noticed. Every read on the link now
blocks for at most 100 ms and checks for Ctrl-C in between, and the
connect line says Ctrl-C aborts.
Images
Copy the image matching your board to the SD card's boot
partition, renamed to the filename in its own name:
kernel7.img (32-bit), kernel8.img (64-bit) or kernel.img
(ARMv6). The firmware loads one of those names and no others,
chosen by the CPU it finds, and a board handed the wrong one
stops without printing anything. Use kernel8.img only with
arm_64bit=1 in config.txt.
bcm2837 covers the Pi 2 and Pi 3 (a Pi 2 v1.1 takes the
kernel7.img alone: its cores are 32-bit only); bcm2711 covers
the Pi 4; bcm2835 covers the Pi 1 and Pi Zero, and is ARMv6, so
it has no 64-bit counterpart. bcm2712 covers the Pi 5,
preliminarily: 64-bit only, and its card needs no firmware files
but a config.txt with os_check=0, kernel_address=0x80000
and pciex4_reset=0 (see the loader's README). Verify with
sha256sum -c SHA256SUMS.
rpi-loader-<version>.bash is the bash completion for the host
CLI, for installing without building it first:
sudo cp rpi-loader-<version>.bash \
/usr/share/bash-completion/completions/rpi-loaderThe host CLI is a separate install: cargo install rpi-loader.