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_DYNAMIChttps://i-blog.csdnimg.cn/direct/d7272c2e5d824f94974a3a879227bbff.png
[*]下载相应内核源码和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取消
https://i-blog.csdnimg.cn/direct/0b29a1b6118e41d7985c08f8ef8009d7.png
https://i-blog.csdnimg.cn/direct/e835f9b119ef493ebcb8db5d46c50a95.png
[*]编辑 .config 文件:
vi .config
CONFIG_SYSTEM_TRUSTED_KEYS=“”
CONFIG_SYSTEM_REVOCATION_KEYS=“”
CONFIG_DEBUG_INFO=n
https://i-blog.csdnimg.cn/direct/86ed4137538e4fb0a3afd6fbaa374ed4.png
https://i-blog.csdnimg.cn/direct/f2de120fb99d49c58876bb63ef838671.png
应用内核
安装模块命令要到场INSTSALL_MOD_STRIP=1部门,否则重启后内核过大,显示 out of memory 无法启动
https://i-blog.csdnimg.cn/direct/09aa478ba2f644d2ace6cac68fdc7cbd.png
make -j$(nproc) #编译内核
sudo make INSTSALL_MOD_STRIP=1 modules_install #安装模块
sudo make install #安装内核
检察编译后核心,注意核心大小
cd /boot
ls -l
https://i-blog.csdnimg.cn/direct/f946635a90304e01b6da4aba663c4937.png
重启系统并检察当前 Ubuntu 内核版本,显示带有PREEMPT_RT内核
sudo reboot
uname -a
https://i-blog.csdnimg.cn/direct/a21b0e45907c4f7eac3dde2e28ba19e7.png
测试实时性
sudo apt-get install rt-tests ##下载rt-test
sudo cyclictest -l10000000 -m -t5 -p99 -i2 -h100
https://i-blog.csdnimg.cn/direct/1c2a8a012cda413d8970d706dd8c756c.png
代码
##相干依赖: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.gzgunzip patch-6.8.2-rt11.patch.gz##安装cd ~/kernel/linux-6.8.2patch -p1 < ../patch-*.patchcp -v /boot/config-6.8.0-50-generic .config##设置make menuconfig
vi .config
##编译make -j$(nproc)sudo make INSTSALL_MOD_STRIP=1 modules_installsudo make install##检查cd /boot
ls -l
##重启sudo reboot##检察内核uname -a
##测试sudo apt-get install rt-testssudo cyclictest -l10000000 -m -t5 -p99 -i2 -h100 参考链接
Ubuntu22.04编译实时内核安装preempt_rt实时补丁
linux打实时补丁 | ubuntu20.04安装实时内核补丁PREEMPT_RT及正确启用RT
利用 INSTALL_MOD_STRIP 在 modules_install 的时候 strip 驱动, 减少磁盘占用
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]