Skip to content

Instantly share code, notes, and snippets.

@drt1245
Last active January 20, 2025 04:37
Show Gist options
  • Save drt1245/d51542a02cf501226760be88b0f07cde to your computer and use it in GitHub Desktop.
Save drt1245/d51542a02cf501226760be88b0f07cde to your computer and use it in GitHub Desktop.
Raspberry Pi 3 PREEMPT_RT
export RASPIOS=raspios_lite_armhf
export RASPIOS_DATE=2024-11-19
export DEFCONFIG=bcm2709_defconfig
export ARCH=arm
export CROSS_COMPILE=arm-linux-gnueabihf-
export LINUX_KERNEL_VERSION=6.6
export LINUX_KERNEL_BRANCH=stable_20241008
export LINUX_KERNEL_RT_PATCH=patch-6.6.30-rt30
cd linux
git remote add raspberrypi https://github.com/raspberrypi/linux.git
git checkout ${LINUX_KERNEL_BRANCH}
curl -O https://mirrors.edge.kernel.org/pub/linux/kernel/projects/rt/${LINUX_KERNEL_VERSION}/older/${LINUX_KERNEL_RT_PATCH}.patch.gz
zcat -d ${LINUX_KERNEL_RT_PATCH}.patch.gz | patch -p1 --verbose
wget https://raw.githubusercontent.com/kdoren/linux/rpi-5.10.35-rt/0001-usb-dwc_otg-fix-system-lockup.patch
cat 0001-usb-dwc_otg-fix-system-lockup.patch | patch -p1
make ${DEFCONFIG}
./scripts/config --disable CONFIG_VIRTUALIZATION
./scripts/config --enable CONFIG_PREEMPT_RT
./scripts/config --disable CONFIG_RCU_EXPERT
./scripts/config --enable CONFIG_RCU_BOOST
./scripts/config --enable CONFIG_SMP
./scripts/config --disable CONFIG_BROKEN_ON_SMP
./scripts/config --set-val CONFIG_RCU_BOOST_DELAY 500
make -j8 zImage modules dtbs
curl -O https://downloads.raspberrypi.org/raspios_lite_armhf/images/${RASPIOS}-${RASPIOS_DATE}/${RASPIOS_DATE}-raspios-bookworm-armhf-lite.img.xz
unxz ${RASPIOS_DATE}-raspios-bookworm-armhf-lite.img.xz
losetup -Pf ${RASPIOS_DATE}-raspios-bookworm-armhf-lite.img
mkdir -p /mnt/rpi
mount /dev/loop0p2 /mnt/rpi
mount /dev/loop0p1 /mnt/rpi/boot/firmware
make INSTALL_MOD_PATH=/mnt/rpi modules_install
make INSTALL_DTBS_PATH=/mnt/rpi/boot/firmware dtbs_install
cp arch/arm/boot/zImage /mnt/rpi/boot/firmware/kernel7_rt.img
cp -t /mnt/rpi/boot/firmware/ arch/arm/boot/dts/broadcom/*.dtb
cp -t /mnt/rpi/boot/firmware/overlays/ arch/arm/boot/dts/overlays/*.dtb* arch/arm/boot/dts/overlays/README
curl -o /mnt/rpi/boot/firmware/config.txt https://github.com/remusmp/rpi-rt-kernel/raw/refs/heads/master/config.txt
echo "arm_64bit=0" | tee -a /mnt/rpi/boot/firmware/config.txt
echo "kernel=kernel7_rt.img" | tee -a /mnt/rpi/boot/firmware/config.txt
curl -o /mnt/rpi/boot/firmware/userconf https://github.com/remusmp/rpi-rt-kernel/raw/refs/heads/master/userconf
touch /mnt/rpi/boot/firmware/ssh
umount /mnt/rpi/boot/firmware /mnt/rpi
losetup -d /dev/loop0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment