Skip to content

๐Ÿฉธ The Recipe That Works โ€‹

"Forget the saga. Take the formula."

TL;DR

  1. Add Pi Foundation's apt repo to your debootstrap base.
  2. apt install linux-image-rpi-v8 raspi-firmware firmware-brcm80211 raspberrypi-sys-mods.
  3. Drop a rfkill unblock all oneshot at boot.
  4. 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 โ€‹

SourceWhat it gives you
debian.org/debian (main, contrib, non-free, non-free-firmware)Base Debian Bookworm rootfs
archive.raspberrypi.com/debianPi-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 โ†” cyfmac43430 maze)
  • ๐Ÿ‰ 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:

  1. rfkill unblock at boot. No raspi-config? Drop a oneshot. See here.
  2. Mount FAT at /boot/firmware/. Bookworm convention. apt upgrades break with /boot/.
  3. Add the essentials back to minbase. --variant=minbase strips systemd. Re-add: systemd-sysv, dbus, openssh-server, wpasupplicant, wireless-tools, ifupdown, isc-dhcp-client, rfkill, net-tools, parted, e2fsprogs.

Where to go next โ€‹