Automated BBRv3 Kernel Builder for Raspberry Pi
This project automatically builds a custom Linux Kernel for Raspberry Pi that combines:
- Official Raspberry Pi Source: Ensures full hardware support (WiFi, Bluetooth, GPIO, VideoCore).
- Google BBRv3 TCP Stack: Adds the latest congestion control algorithm for improved network throughput and lower latency.
- Your Custom Config: Uses a configuration extracted from a working Pi to minimize bloat and maximize compatibility.
This repository uses GitHub Actions to perform automated builds:
- Triggers: Builds run when the Raspberry Pi kernel (
rpi-6.13.y) or Google BBRv3 (v3) branches are updated - Weekly Check: Also checks weekly to ensure we don't miss any updates
Build process:
- Clones the latest
rpi-6.13.ykernel source from the Raspberry Pi Engineering team. - Merges the
v3branch from Google's BBR repository. - Applies the
pi.config(hardware configuration). - Cross-compiles the kernel for ARM64.
- Releases the result as installable
.debpackages.
No need to build anything yourself! Just download the latest release.
- Go to the Releases Page.
- Download the
.debfiles:linux-image-...deb(required - the kernel itself)linux-headers-...deb(optional - for building modules)linux-libc-dev-...deb(optional - for development)
- Transfer them to your Raspberry Pi.
- Install:
sudo dpkg -i linux-image-*.deb - Reboot:
sudo reboot
- Verify BBRv3 is running:
uname -r # Should see "bbrv3" in the name sysctl net.ipv4.tcp_congestion_control # Should return "bbr"
The workflow automatically builds when:
- 📌 Manual trigger: You can manually trigger a build from the Actions tab
- 🔍 Weekly check: Checks upstream repos every Sunday at 2:00 UTC and builds if there are new commits
If you prefer to build it yourself locally on a Mac or Linux machine:
- Run the auto-builder script:
This will SSH into your Pi to get the config, build the kernel in Docker, and deploy it back to the Pi automatically.
./auto_update_hybrid.sh "your_pi_password"
The pi.config file in this repository is the kernel configuration used for the build. It was extracted from a working Raspberry Pi 4/5 environment.
Dual BSD/GPL (Inherited from Linux Kernel).