Linux系统如何打RT实时内核补丁

1.查看当前内核版本

uname -r

2.下载内核文件以及RT补丁(内核文件下载与Linux版本相近的最好一致,RT补丁要对应下载的内核文件版本)

RT补丁:https://www.kernel.org/pub/linux/kernel/projects/rt/
内核源码:Index of /pub/linux/kernel/

3.安装依赖

sudo apt-get update
sudo apt-get install patch
sudo apt install zstd

20. 04

sudo apt-get install libncurses5-dev libssl-dev build-essential openssl zlibc libelf-dev minizip libidn11-dev libidn11 bison flex

22.04 

sudo apt install gcc make libncurses5-dev openssl libssl-dev build-essential pkg-config libc6-dev bison flex libelf-dev dwarves -y

4.解压两个压缩包,然后进入解压出来的内核文件执行patch。

patch -p1 <../patch-5.14.2-rt21.patch

用5.14.2举例。

5.make menuconfig,改相关配置

Processor type and features --->Preemption Model (Voluntary Kernel Preemption (Desktop)) --->改成Fully Preemptible Kernel (RT);

Kernel hacking下的Memory Debugging中的[ ] Check for stack overflows选项确认其处于未选中状态。

关掉General Setup -> Timers subsystem中的old idle dynticks config,保持第二项high resolution timer support开启

Kernel hacking,在Compile-time checks and compiler options中取消勾选第一项Compile the kernel with debug info,可以缩小内核尺寸,删除调试信息

Processor type and features -> Timer frequency设为1000 HZ。

6.通过gedit .config更改相关内容

修改.config文件,搜索关键词,将

        CONFIG_MODULE_SIG_ALL

        CONFIG_MODULE_SIG_KEY

        CONFIG_SYSTEM_TRUSTED_KEYS

        CONFIG_SYSTEM_REVOCATION_LIST

        CONFIG_SYSTEM_REVOCATION_KEYS

五项注释掉,把CONFIG_DEBUG_INFO=y去掉,不然新内核带debug信息超大。

7.开始编译

sudo make -j16
Sudo make modules_install -j16
Sudo make install 
Sudo update-grub

8.重启,选择ubuntu高级选择rt

sudo reboot

 9.查看内核是否切换成功

 如果切换成功,可以将rt内核改为系统默认启动。

sudo nano /etc/default/grub

修改 GRUB_DEFAULT 行,例如:GRUB_DEFAULT="1>2" 

这里的 1>2 表示从第一个菜单项中的第三个子项(具体的内核选项)中选择。你可以调整这些值以匹配你记录的内核标题的位置。

更新 grub 配置

sudo update-grub

10.测试

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值