本文最后更新于 2025年3月5日 下午
查看当前内核
下面是已经换好的内核版本

本人换之前的内核为linux-headers-6.6.51+rpt-rpi-v8
下载必要工具
1 2
| sudo apt-get install bc git bison flex libssl-dev make vim git sudo apt-get install libncurses5-dev libncursesw5-dev
|
克隆仓库
1
| git clone --depth=1 https://github.com/raspberrypi/linux --branch <your_version>
|
版本可以到github仓库去看,我是使用的版本是rpi-6.6.y
查看Makefile文件前10行来查看源码的内核版本
1 2
| cd linux-<your_version> head -n 10 Makefile
|

下载补丁源码
PREEMPT
RT 内核源码地址

注意:这里Preempt
RT内核版本要与前面linux源码内核版本前两个数字要一致。
把补丁源码放在项目目录外。
1 2
| cd .. wget "https://mirrors.edge.kernel.org/pub/linux/kernel/projects/rt/6.6/patch-6.6.63-rt47-rc1.patch.gz"
|
编译
1 2 3 4
| cd linux-<your_version> gzip -cd ../patch-6.6.63-rt47-rc1.patch.gz | patch -p1 --verbose KERNEL=kernel8 make bcm2711_defconfig
|
编译设置
(1)将系统设置为Real Time系统
General setup -> Preemption Model -> Fully
Preemptible Kernel(Real-Time)

(2)修改定时器频率为1000HZ。
Kernel Features -> Timer frequency -> 1000HZ



Save保存设置,返回到命令行。
内核编译
编译时间比较长,大概要2个小时左右
安装Preempt RT内核
复制到内核文件夹
1 2 3 4
| cp arch/arm64/boot/dts/broadcom/*.dtb /boot/firmware cp arch/arm64/boot/dts/overlays/*.dtb* /boot/firmware/overlays/ cp arch/arm64/boot/dts/overlays/README /boot/firmware/overlays/ cp arch/arm64/boot/Image /boot/firmware/kernel8.img
|
在文件/boot/firmware/config.txt最后一行添加kernel=kernel8.img即可
1 2
| vim /boot/firmware/config.txt kernel=kernel8.img
|
尾声
重启后使用uname -a命令查看内核是否成功更换。
成功更换
