开发环境:树莓派4B,树莓派系统为Raspberry Pi OS Lite 64bit。
本地进行,windows系统 + PuTTY 即可。
非 4B 或 64bit 版本,可能有些许差别,详情参考:Raspberry Pi Documentation - The Linux kernel
一、准备工作
1.在 /usr/src 目录下创建文件夹 rtlinux,后续操作将在此文件夹下执行
sudo mkdir /usr/src/rtlinux
cd /usr/src/rtlinux
2.安装任务所需资源包
sudo apt install git bc bison flex libssl-dev make
3.下载Raspberry Pi OS内核源码
可以事先到github查看默认的系统内核版本
https://github.com/raspberrypi/linux
git clone --depth=1 https://github.com/raspberrypi/linux
4.下载RT-Patch
可以事先到补丁下载网站查询合适的版本
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
5.解压补丁
xz -d patch-5.15.49-rt47.patch.xz
如果不愿意通过命令行下载,可以直接到两个网站下载文件,通过U盘将文件复制到树莓派中。
可以参考:Linux命令行访问U盘内容_From now on...的博客-优快云博客
二、配置环境 (在root权限下)
1.因为补丁版本和系统内核版本不一致,需要修改系统版本
cd linux
vim Makefile
上图的三个数字即代表版本为 5.15.49 ,可根据补丁的版本进行适当的修改
2.将补丁移动至内核目录下
mv ../patch-5.15.49-rt47.patch ./
3.进入内核源码目录,配置RT patch:(打补丁)
cat patch-5.15.49-rt47.patch | patch -p1
4.应用初始配置
KERNEL=kernel8
make bcm2711_defconfig
5.下载图形化配置所需包
apt install libncurses5-dev
6.执行make menuconfig 进行图形化内核配置
make menuconfig
先关闭 KVM support (Enter 进入,Space实现反选)
选择 Fully Preemptible Kernel
然后选择 Exit 退出,是否保存? Yes
7.编译内核,并安装module
make -j4 Image.gz modules dtbs
make modules_install
1.5 hours later
8.添加相关核心文件
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
9.重启,查看内核版本。
uname -a