Prebuilt Raspberry Pi 5 kernel for BigFred hub OS.
This repository owns the kernel source pin and kconfig fragments.
CI cross-compiles Image, DTBs, overlays, and modules, then publishes a
tarball on GitHub Releases. bigfred-os should consume that tarball by
version + SHA-256 (same pattern as Grafana), not rebuild Linux inside
Buildroot.
The scripts in this repo are MIT. The kernel binary and modules are GPLv2
(raspberrypi/linux).
Target is Pi 5 / BCM2712 only. Pi 3 (64-bit kernel8) is
hub-kernel-rpi3.
On Ubuntu 24.04:
sudo ./scripts/install-deps.sh
make check
make packagemake package writes dist/bigfred-kernel-rpi5-<version>.tar.xz and a
matching .sha256. Untagged builds use g<shortsha> as the version.
patches/linux/*.patch are applied with patch -p1 after extract (see
scripts/apply-patches.sh). The tree is a tarball, not a git checkout, so
git am is not used.
Current carry (macb / Cadence GEM on RP1):
0001-…— IMR MMIO read after re-enabling TCOMP (macb_tx_poll). PCIe read barrier without consuming ISR bits. raspberrypi/linux#7340 used a destructive ISR read; #7472 dropped it because RP1 GEM is clear-on-read.0002-…— 1 s TX-stalldelayed_workcallingmacb_tx_restart(). Recovers a silent TX hang in ~1 s instead of the 5 s netdev watchdog. Restores #7340 patch 3, which #7472 also dropped.
The NCR posted-write flush from #7340 patch 1 is already in this pin
(MACB_CAPS_PCIE_POSTED_WRITES on raspberrypi,rp1-gem).
When bumping LINUX_COMMIT, re-apply the series on the new tree. If
upstream restores an equivalent fix, delete the local patches.
-
Bump
LINUX_COMMITinVERSIONSand the SHA inconfigs/linux.hashif moving the upstream pin (recompute withsha256sum dl/linux-<commit>.tar.gz). -
Change fragments under
configs/for hubCONFIG_*options, or add patches underpatches/linux/. -
Merge to
mainand wait for CI to finish (kernel build + artifact upload). -
Tag
v6.18.0-rNon that commit and push.release.ymldoes not rebuild; it downloads the CI artifact from the matchingmainrun, relabels it, and publishes:bigfred-kernel-rpi5-v6.18.0-rN.tar.xzbigfred-kernel-rpi5-v6.18.0-rN.tar.xz.sha256
Tagging before CI succeeds will fail with “no successful CI run on main”.
To republish without moving a tag (e.g. after a workflow fix), use Actions → Release → Run workflow with
tagand optionalcommit(short or full SHA of the green main CI run).
Image
bcm2712-rpi-5-b.dtb
bcm2712d0-rpi-5-b.dtb
overlays/*.dtbo # includes bcm2712d0.dtbo
lib/modules/<krel>/
config # kernel .config
manifest
Modules are uncompressed (CONFIG_MODULE_COMPRESS is off) because musl
kmod on the hub image has failed to load XZ modules.
Compiler is Ubuntu aarch64-linux-gnu-gcc, not the Buildroot musl toolchain.
The kernel is freestanding; libc does not matter. Rebuilds are reproducible
against Ubuntu 24.04 + this pin.
Pin a release tag and the SHA-256 of the tarball (Buildroot .hash). If the
committed hash matches the file in dl/, skip the download. A kernel
CONFIG_* change is a PR here, then a tag, then a hash bump in
bigfred-os.