前言
在Ubuntu22.04系统上打实时补丁,并测试延时时间
内核源码与RT补丁下载
RT补丁: https://www.kernel.org/pub/linux/kernel/projects/rt/
内核源码: https://www.kernel.org/pub/linux/kernel
安装依赖
sudo apt-get update
sudo apt-get install libncurses-dev
sudo apt-get install libssl-dev
sudo apt-get install libelf-dev
sudo apt-get install bison
sudo apt-get install flex
解压及打补丁
创建目录,把补丁和内核复制到该目录,这里选用了
mkdir rtkernel
cd rtkernel
解压linux内核和补丁压缩包
tar -zxvf linux.5.15.tar.gz
xz -d patch-5.15-rt16.patch.xz
进入linux内核目录并打入补丁
cd linux-5.15/
patch -p1 < ../patch-5.15-rt16.patch
编译内核
复制系统当前内核的.config文件,编译内核
cp /boot/config-5.11.0-41-generic .config
make menuconfig
进入界面化配置后的操作
1.General Setup -> Preemption Model 设置为 Fully Preemptible Kernel(RT)
2.General Setup -> Timers subsystem -> Timer tick handling 设置为 Full dynticks system
3.General Setup -> Timers subsystem ,关闭old idle dynticks config,
开启 High Resolution Timer Support
4.Processor type and features -> Timer frequency 设置为 1000 HZ
5.Kernel hacking
-> Compile-time checks and compiler options
-> 取消Compile the kernel with debug info
可以缩小内核尺寸
6.保存后exit
gedit .config
CONFIG_SYSTEM_TRUSTED_KEYS=" "
CONFIG_SYSTEM_REVOCATION_KEYS=" "
7.保存退出
编译安装
make -j`nproc`
完成后
sudo make modules_install
sudo make install
配置GRUB启动项
sudo gedit /etc/default/grub
1,注释掉下面这行将会显示引导菜单
GRUB_TIMEOUT_STYLE=hidden
2,适当修改超时时间
GRUB_TIMEOUT=5 超时时间,单位s
3,更新启动项配置
sudo update-grub
测试
sudo apt-get install rt-tests
sudo cyclictest -t 5 -p 80
参考链接
Ubuntu22.04编译实时内核安装preempt_rt实时补丁_亦秋先生。的博客-CSDN博客
Ubuntu20.04 配置preempt_rt补丁过程(18.04类似)_Windsgo的博客-CSDN博客
Ubuntu 20.04安装RT-PREEMPT实时内核补丁_ubuntu20.04安装rt-preempt实时补丁_看他个锤子的博客-CSDN博客