Ubuntu22.04 安装Linux实时补丁preempt_rt

PREEMPT_RT 是一个实时补丁,可以显著提高 Linux 内核的实时性能。
启动RT内核需下载linuxn内核源码和RT补丁。
查看当前Ubuntu版本后,下载相近版本的linuxn内核源码和RT补丁。

查看当前Ubuntu内核版本
uname -a

未安装RT补丁时,Ubuntu22.04的内核为:6.8.0-50-generic PREEMPT_DYNAMIC下载相应内核源码和RT补丁
选择相近版本内核 linux-6.8.2以及内核相同版本补丁 patch-6.8.2-rt11

实际操作时发现安装更新的版本也可以运行,但装完之后电脑卡卡的,不知道是不是太新了和Ubuntu某些地方不适配

RT补丁:https://mirrors.edge.kernel.org/pub/linux/kernel/projects/rt/
Linux内核:https://mirrors.edge.kernel.org/pub/linux/kernel/

可能需要的依赖:
sudo apt-get install libncurses-dev flex bison openssl libssl-dev dkms libelf-dev libudev-dev libpci-dev libiberty-dev autoconf fakeroot dwarves
解压内核源码和补丁:
tar -xzf linux-6.8.2.tar.gz ##解压
gunzip patch-6.8.2-rt11.patch.gz ##解压
cd linux-6.8.2 ##进入内核源码目录
patch -p1 < ../patch-6.8.2-rt11.patch ##应用补丁
cp -v /boot/config-6.8.0-50-generic .config ##复制现有的内核配置文件

配置内核:​

使用 menuconfig 进行内核配置:
make menuconfig

General Setup -> Preemption Model 设置为 Fully Preemptible Kernel(RT)
Device Drivers -> staging drivers 设置为 不开启 ——[ ] 默认开启,按N取消

编辑 .config 文件:
vi .config

CONFIG_SYSTEM_TRUSTED_KEYS=“”
CONFIG_SYSTEM_REVOCATION_KEYS=“”
CONFIG_DEBUG_INFO=n​

应用内核
安装模块命令要加入INSTSALL_MOD_STRIP=1部分,否则重启后内核过大,显示 out of memory 无法启动

make -j$(nproc) #编译内核
sudo make INSTSALL_MOD_STRIP=1 modules_install #安装模块
sudo make install #安装内核

查看编译后核心,注意核心大小

cd /boot
ls -l

重启系统并查看当前 Ubuntu 内核版本,显示带有PREEMPT_RT内核

sudo reboot
uname -a


测试实时性
sudo apt-get install rt-tests ##下载rt-test
sudo cyclictest -l10000000 -m -t5 -p99 -i2 -h100


代码
##相关依赖:
sudo apt-get install libncurses-dev flex bison openssl libssl-dev dkms libelf-dev libudev-dev libpci-dev libiberty-dev autoconf fakeroot dwarves
##查看当前Ubuntu内核版本:
uname -a
##下载相应内核及补丁
https://mirrors.edge.kernel.org/pub/linux/kernel/projects/rt/
https://mirrors.edge.kernel.org/pub/linux/kernel/
##解压内核和补丁
tar -xzf linux-6.8.2.tar.gz
gunzip patch-6.8.2-rt11.patch.gz
##安装
cd ~/kernel/linux-6.8.2
patch -p1 < ../patch-*.patch
cp -v /boot/config-6.8.0-50-generic .config
##配置
make menuconfig 
vi .config
##编译
make -j$(nproc)
sudo make INSTSALL_MOD_STRIP=1 modules_install
sudo make install
##检查
cd /boot
ls -l
##重启
sudo reboot
##查看内核
uname -a
##测试
sudo apt-get install rt-tests
sudo cyclictest -l10000000 -m -t5 -p99 -i2 -h100

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值