Automated build of a tweaked version of the latest 64-bit bcmrpi3_defconfig
Linux kernel for the RPi3B/B+, updated weekly.
This project contains a weekly autobuild of the default branch (currently, rpi-5.4.y
) of the official Raspberry Pi Linux source tree, for the 64-bit Raspberry Pi 3 Model B and B+.
NB: (8 June 2020) the transition from
rpi-4.19.y
torpi-5.4.y
has not yet happened upstream, but as it will do shortly, I have elected to pre-emptively migrate.
As with its sister project bcmrpi3-kernel, the baseline build configuration is the upstream bcmrpi3_defconfig
, wherein the first 12 hex digits of the tip commit SHA1 hash are appended to CONFIGLOCALVERSION
(with a separating hyphen). However, in this project, -bis
is additionally appended to CONFIGLOCALVERSION
, and (more importantly) additional tweaks are also applied to the kernel configuration before building, by running the conform_config.sh
script.
If you have changes you'd like to apply to the kernel config used by this project, please submit a PR targeting the
conform_config.sh
script. Changes should target the end of the script. Only edits which use the bundled convenience functionsset_kernel_config
and (rarely)unset_kernel_config
will be considered for merging. Modularization is prefered wherever possible. Please include a short comment describing the changes, ideally including a link or bug ID.
A new build tarball is automatically created and uploaded as a release asset each week (unless the tip of the default branch is unchanged from the prior week, or an error occurs during the build process). The versions of the builds in this project will always mirror those of bcmrpi3-kernel, commencing 1 June 2018.
The default branch is used, as that is generally given most attention for e.g. VC4 backports.
As an (historical) example, on 1 June 2018, the default branch was rpi-4.14.y
(NB, it is rpi-5.4.y
now), and the latest commit was 4fca48b7612da3ff5737e27da15b0964bdf4928f
(the short form of which is 4fca48b7612d
). The created release was 4.14.44.20180601, within which the kernel tarball was bcmrpi3-kernel-bis-4.14.44.20180601.tar.xz
, and the corresponding kernel release name was 4.14.44-v8-4fca48b7612d-bis+
.
Each kernel release tarball currently provides the following files:
/boot/kernel8.img
(this is the bootable 64-bit kernel);/boot/COPYING.linux
(the kernel's license file);/boot/config
(the configuration used to build the kernel);/boot/Module.symvers.xz
(a table mapping exported symbols to provider, compressed);/boot/System.map.xz
(the kernel's symbol table, compressed);/boot/bcm-2710-rpi-3-b.dtb
,/boot/bcm-2710-rpi-3-b-plus.dtb
and/boot/bcm-2837-rpi-3-b.dtb
(and, from5.4.69.20201006
onwards,/boot/bcm2710-rpi-cm3.dtb
) (the device tree blobs);/boot/overlays/...
(the device tree blob overlays) (from5.4.69.20201006
);/lib/modules/<kernel release name>/...
(the module set for the kernel);
The
/boot/Module.symvers.xz
file is only included in more recent builds. The/boot/System.map.xz
is supplied in compressed form only in recent builds.
The current kernel tarball may be downloaded from the link below (or via wget
, or via the corresponding bcmrpi3-kernel-bin
ebuild, per the instructions following):
Variant | Version | Most Recent Image |
---|---|---|
Kernel, dtbs and modules | 5.4.69.20201006 | bcmrpi3-kernel-bis-5.4.69.20201006.tar.xz |
The corresponding kernel configuration (derived via make bcmrpi3_defconfig && conform_config.sh && make olddefconfig
) may be viewed here. The 'baseline' bcmrpi3_defconfig
may be viewed here, the conform_config.sh
script may be viewed here, and a diff between the 'tweaked' and 'baseline' configurations may be viewed here.
A list of all releases may be seen here. For an equivalent kernel autobuild for the RPi4B, please see here.
To deploy (assuming that your RPi3's micro SD-card's first partition is mounted as /boot
, and you are already running a 64-bit RPi3 image, such as my gentoo-on-rpi3-64bit) simply download, untar into the root directory, and reboot:
pi64 ~ # cp /boot/kernel8.img{,.old}
pi64 ~ # wget -c https://github.com/sakaki-/bcmrpi3-kernel-bis/releases/download/5.4.69.20201006/bcmrpi3-kernel-bis-5.4.69.20201006.tar.xz
pi64 ~ # tar -xJf bcmrpi3-kernel-bis-5.4.69.20201006.tar.xz -C /
pi64 ~ # sync && reboot
Alternatively, if you have my rpi3 overlay installed (it is pre-installed on the gentoo-on-rpi3-64bit image), you can simply emerge the bcmrpi3-kernel-bis-bin
package (a new ebuild is automatically created to mirror each release here). For example, to install the latest available version (and start using it):
pi64 ~ # emaint sync --repo rpi3
pi64 ~ # emerge -av bcmrpi3-kernel-bis-bin
pi64 ~ # reboot
Or, to install a particular version (e.g.):
pi64 ~ # emaint sync --repo rpi3
pi64 ~ # emerge -av =bcmrpi3-kernel-bis-bin-5.4.69.20201006
pi64 ~ # reboot
NB: these prebuilt kernels and ebuilds are provided as a convenience only. Use at your own risk! Given that the releases in this project are created automatically, and particularly since they include user-submitted tweaks to the 'official'
bcmrpi3_defconfig
, there is no guarantee that any given kernel will boot correctly. A 64-bit kernel is necessary, but not sufficient, to boot the RPi3 in 64-bit mode; you also need the supporting firmware, configuration files, and userland software (see for example my gentoo-on-rpi3-64bit project, or NeddySeagoon's Raspberry Pi 3 64 bit Install page on the Gentoo wiki, for more information).