开发环境:树莓派4B,树莓派系统为Raspberry Pi OS Lite 64bit。
本地进行,windows系统 + PuTTY 即可。
非 4B 或 64bit 版本,可能有些许差别,详情参考:Raspberry Pi Documentation - The Linux kernel
- sudo mkdir /usr/src/rtlinux
- cd /usr/src/rtlinux
sudo apt install git bc bison flex libssl-dev make
可以事先到github查看默认的系统内核版本
https://github.com/raspberrypi/linux
git clone --depth=1 https://github.com/raspberrypi/linux
可以事先到补丁下载网站查询合适的版本
https://mirrors.edge.kernel.org/pub/linux/kernel/projects/rt/5.15/
wget https://mirrors.edge.kernel.org/pub/linux/kernel/projects/rt/5.15/patch-5.15.49-rt47.patch.xz
xz -d patch-5.15.49-rt47.patch.xz
如果不愿意通过命令行下载,可以直接到两个网站下载文件,通过U盘将文件复制到树莓派中。
可以参考:Linux命令行访问U盘内容_From now on...的博客-CSDN博客
- cd linux
- vim Makefile
上图的三个数字即代表版本为 5.15.49 ,可根据补丁的版本进行适当的修改
mv ../patch-5.15.49-rt47.patch ./
cat patch-5.15.49-rt47.patch | patch -p1
- KERNEL=kernel8
- make bcm2711_defconfig
apt install libncurses5-dev
make menuconfig
先关闭 KVM support (Enter 进入,Space实现反选)
选择 Fully Preemptible Kernel
然后选择 Exit 退出,是否保存? Yes
- make -j4 Image.gz modules dtbs
- make modules_install
1.5 hours later
- cp arch/arm64/boot/dts/broadcom/*.dtb /boot/
- cp arch/arm64/boot/dts/overlays/*.dtb* /boot/overlays/
- cp arch/arm64/boot/dts/overlays/README /boot/overlays/
- cp arch/arm64/boot/Image.gz /boot/$KERNEL.img
uname -a