Last active
January 20, 2025 04:37
-
-
Save drt1245/d51542a02cf501226760be88b0f07cde to your computer and use it in GitHub Desktop.
Raspberry Pi 3 PREEMPT_RT
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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