๐ฉธ The Recipe That Works โ
"Forget the saga. Take the formula."
TL;DR
- Add Pi Foundation's apt repo to your debootstrap base.
apt install linux-image-rpi-v8 raspi-firmware firmware-brcm80211 raspberrypi-sys-mods.- Drop a
rfkill unblock alloneshot at boot. - Mount FAT at
/boot/firmware/, not/boot/.
That's it. Everything else is glue.
Why this recipe โ
Because the kernelโmodulesโfirmware triple is the bug surface on a custom Pi distro, and Pi Foundation curates these as a working set. Trying to hand-pick them from upstream tarballs is a losing game โ see the saga for the receipt.
The ingredients โ
| Source | What it gives you |
|---|---|
debian.org/debian (main, contrib, non-free, non-free-firmware) | Base Debian Bookworm rootfs |
archive.raspberrypi.com/debian | Pi-Foundation kernel + firmware + sys-mods |
The pipeline โ
โ See Step-by-Step Build for the actual commands.
What you skip by following this โ
- ๐ Naming Hydra (the
brcmfmac43436โBCM43430โCYW43436sโcyfmac43430maze) - ๐ Wrong silicon-rev firmware โ HT Avail timeout
- ๐ Kernelโmodules version skew โ silent driver failure
- ๐ Hand-rolled DTB extraction โ boot times out
- ๐ Missing initramfs hooks โ kernel boots but can't transition
You still own:
- ๐ ๏ธ The debootstrap base (provenance: you know what's in it)
- ๐ ๏ธ The hostname / user / passwords / wifi creds
- ๐ ๏ธ The firstboot orchestrator + customizations
- ๐ ๏ธ The boot side script (partitioning + dd + FAT staging)
What you still need from the saga โ
Three lessons that aren't apt-fixable:
- rfkill unblock at boot. No raspi-config? Drop a oneshot. See here.
- Mount FAT at
/boot/firmware/. Bookworm convention. apt upgrades break with/boot/. - Add the essentials back to minbase.
--variant=minbasestrips systemd. Re-add:systemd-sysv, dbus, openssh-server, wpasupplicant, wireless-tools, ifupdown, isc-dhcp-client, rfkill, net-tools, parted, e2fsprogs.
Where to go next โ
- Step-by-Step Build โ actual
bashinvocations - Gotchas โ the trap list
- Bestiary โ every bug catalogued
- Tools โ diagnose-sd.sh