树莓派CM4实时性实现咨询:6.1.19内核能否应用PREEMPT_RT
树莓派CM4 6.1.19内核启用PREEMPT_RT实时性方案
6.1.19内核对PREEMPT_RT的支持情况
树莓派官方默认的6.1.19内核未启用PREEMPT_RT,但该版本属于Linux 6.1系列,完全兼容PREEMPT_RT补丁。你有两种实现路径:直接安装社区预编译的RT内核,或者自行编译带RT补丁的定制内核。
方案一:安装社区预编译的PREEMPT_RT内核
- 先更新系统包:
sudo apt update && sudo apt upgrade -y - 安装内核依赖工具:
sudo apt install -y raspberrypi-kernel-headers raspberrypi-bootloader - 找对应6.1.19版本的预编译RT内核包(需匹配CM4的架构:arm64或armhf),获取对应的
.deb包(通常包含内核和头文件两个包,命名类似raspberrypi-kernel-rt_6.1.19-rtxxx_arm64.deb) - 安装下载的包:
sudo dpkg -i raspberrypi-kernel-rt*.deb - 重启系统:
sudo reboot - 验证生效:重启后执行
uname -a,输出内容中会带有PREEMPT_RT字样
方案二:自行编译带PREEMPT_RT补丁的6.1.19内核
1. 准备编译环境与源码
- 安装编译依赖:
sudo apt install -y git bc bison flex libssl-dev make libc6-dev libncurses5-dev crossbuild-essential-arm64(如果是armhf架构,替换crossbuild-essential-arm64为crossbuild-essential-armhf) - 克隆树莓派内核源码并切换到6.1.19分支:
git clone --depth=1 --branch rpi-6.1.19.y https://github.com/raspberrypi/linux.git cd linux - 获取对应6.1.19的PREEMPT_RT补丁(需匹配内核版本的补丁包,命名格式为
patch-6.1.19-rtxx.patch.xz),解压补丁:xz -d patch-6.1.19-rtxx.patch.xz - 应用补丁:
patch -p1 < patch-6.1.19-rtxx.patch
2. 配置内核启用RT选项
- 加载CM4的默认内核配置:
make bcm2711_defconfig(CM4基于bcm2711芯片) - 进入图形化配置界面:
make menuconfig - 导航到
General setup->Preemption Model,选择Fully Preemptible Kernel (RT) - 保存配置并退出(按ESC键,确认保存)
3. 编译并安装内核
- 并行编译内核(根据CPU核心数调整
-j后的数字,比如4核用-j4):make -j4 Image modules dtbs(arm64架构用Image,armhf用zImage) - 安装内核模块:
sudo make modules_install - 复制内核镜像与设备树文件到boot分区:
sudo cp arch/arm64/boot/Image /boot/kernel8.img sudo cp arch/arm64/boot/dts/broadcom/*.dtb /boot/ sudo cp arch/arm64/boot/dts/overlays/*.dtb* /boot/overlays/ sudo cp arch/arm64/boot/dts/overlays/README /boot/overlays/ - 编辑
/boot/config.txt,确保内核指向刚编译的镜像:添加或修改kernel=kernel8.img(arm64架构) - 重启系统:
sudo reboot - 验证生效:执行
uname -a,输出包含PREEMPT_RT即可
内容的提问来源于stack exchange,提问作者Walid
相关产品推荐
相关产品推荐

