This is a custom built Raspberry Pi kernel for Linux 5.4.68-v7l (arm v7l+) - designed for use with Raspbian (Raspi OS) It has various extra kernel modules built directly into the kernel, allowing them to be used during boot time, without an initramfs (initrd's aren't well supported with Raspberry Pi) Some of the things built-in, instead of as modules are: - btrfs support - ext2 support - ext3 support - XFS support - NTFS support - SquashFS support - OverlayFS support - Various things related to virtualisation - Various networking additions - Other small things The config used to build this kernel can be found at: kernel.config Installing our kernel (only known to work with RPI 4): sudo rsync -avh --progress rsync://files.privex.io/builds/rasp-pi/kernels/5.4.68-v7l-custom/boot/ /boot/ sudo rsync -avh --progress rsync://files.privex.io/builds/rasp-pi/kernels/5.4.68-v7l-custom/lib/ /lib/ sudo cp /boot/kernel.img /boot/kernel-custom.img { echo "kernel=kernel-custom.img"; cat /boot/config.txt; } | sudo tee /boot/config.txt To build this exact kernel on your own system (can be amd64 / x86 - this is for cross-compiling): apt install git bc bison flex libssl-dev make libc6-dev libncurses5-dev crossbuild-essential-armhf crossbuild-essential-arm64 cd /opt git clone --depth=1 https://github.com/raspberrypi/linux rasp-kernel cd rasp-kernel # Generate the base config for rasp pi 4 KERNEL=kernel7l make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- bcm2711_defconfig # Download our customised config to .config wget https://files.privex.io/builds/rasp-pi/kernels/5.4.68-v7l-custom/kernel.config -O .config # Build the kernel + modules using all available cores/threads make -j$(nproc) ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- zImage modules dtbs # Adjust the output locations if you need to. # Kernel modules are installed under OUT_LIB/lib # The actual kernel + various ARM / rpi boot files are installed directly under OUT_KERN OUT_BASE="/opt/kernel-output" OUT_LIB="$OUT_BASE" OUT_KERN="${OUT_BASE}/boot" mkdir -pv "${OUT_LIB}/lib" "${OUT_KERN}/overlays" make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- INSTALL_MOD_PATH=${OUT_LIB} modules_install cp arch/arm/boot/zImage ${OUT_KERN}/kernel.img cp arch/arm/boot/dts/*.dtb ${OUT_KERN}/ cp arch/arm/boot/dts/overlays/*.dtb* ${OUT_KERN}/overlays/ cp arch/arm/boot/dts/overlays/README ${OUT_KERN}/overlays/