Ubuntu22.04 安装Linux实时补丁preempt_rt记载

打印 上一主题 下一主题

主题 1001|帖子 1001|积分 3003

预备工作

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


  • 检察当前Ubuntu内核版本
  1. 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/


  • 可能需要的依赖:
  1. sudo apt-get install libncurses-dev flex bison openssl libssl-dev dkms libelf-dev libudev-dev libpci-dev libiberty-dev autoconf fakeroot dwarves
复制代码


  • 解压内核源码和补丁:
  1. tar -xzf linux-6.8.2.tar.gz ##解压
  2. gunzip patch-6.8.2-rt11.patch.gz ##解压
  3. cd linux-6.8.2 ##进入内核源码目录
  4. patch -p1 < ../patch-6.8.2-rt11.patch ##应用补丁
  5. cp -v /boot/config-6.8.0-50-generic .config ##复制现有的内核配置文件
复制代码
设置内核:




  • 利用 menuconfig 举行内核设置:
  1. make menuconfig
复制代码
  General Setup -> Preemption Model 设置为 Fully Preemptible Kernel(RT)
Device Drivers -> staging drivers 设置为 不开启 ——[ ] 默认开启,按N取消
  




  • 编辑 .config 文件:
  1. vi .config
复制代码
  CONFIG_SYSTEM_TRUSTED_KEYS=“”
CONFIG_SYSTEM_REVOCATION_KEYS=“”
CONFIG_DEBUG_INFO=n
  



应用内核

安装模块命令要到场INSTSALL_MOD_STRIP=1部门,否则重启后内核过大,显示 out of memory 无法启动

  1. make -j$(nproc) #编译内核
  2. sudo make INSTSALL_MOD_STRIP=1 modules_install #安装模块
  3. sudo make install #安装内核
复制代码
检察编译后核心,注意核心大小
  1. cd /boot
  2. ls -l
复制代码

重启系统并检察当前 Ubuntu 内核版本,显示带有PREEMPT_RT内核
  1. sudo reboot
  2. uname -a
复制代码

测试实时性

  1. sudo apt-get install rt-tests ##下载rt-test
  2. sudo cyclictest -l10000000 -m -t5 -p99 -i2 -h100
复制代码

代码

  1. ##相干依赖:sudo apt-get install libncurses-dev flex bison openssl libssl-dev dkms libelf-dev libudev-dev libpci-dev libiberty-dev autoconf fakeroot dwarves
  2. ##检察当前Ubuntu内核版本:uname -a
  3. ##下载相应内核及补丁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
  4. vi .config
  5. ##编译make -j$(nproc)sudo make INSTSALL_MOD_STRIP=1 modules_installsudo make install##检查cd /boot
  6. ls -l
  7. ##重启sudo reboot##检察内核uname -a
  8. ##测试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企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

北冰洋以北

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表