欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Ubuntu编译使用实时内核补丁(RT-PREEMPT kernel)并测试(亲测OK)

程序员文章站 2022-03-16 17:24:47
...
简介

RT-Preempt patch 是在Linux社区kernel的基础上,加上相关的补丁,以使得Linux满足实时性的需求。项目主页见:https://rt.wiki.kernel.org/index.php/Main_Page
下面的是编译和使用RT linux内核的流程,这里使用的Linux内核版本是4.4.0。

运行环境

使用的VMware虚拟机,上面安装的Ubuntu16.04 64位系统。

下载Linux内核和实时补丁文件

rt补丁下载 https://www.kernel.org/pub/linux/kernel/projects/rt/
内核源码下载 https://mirrors.edge.kernel.org/pub/linux/kernel/v4.x/
下载的内核和补丁版本号必须严格对应。

使用方法
  1. 解压内核源码
tar -zxvf linux-4.4.tar.gz
  1. 解压补丁
gunzip patch-4.4-rc6-rt1.patch.gz

注意:如果在打补丁之前,手动解压缩这个patch文件,那么就可以对这个文件进行gunzip或者bunzip操作,就像下面这样

gunzip patch-4.4-rc6-rt1.patch.gz
bunzip2 patch-4.4-rc6-rt1.patch.bz2
  1. 打补丁
cd linux-4.4
patch -p1 < ../patch-4.4-rc6-rt1.patch
  1. 安装编译内核需要的模块
sudo apt-get install libncurses-dev
sudo apt-get install libssl-dev
  1. 配置内存
make menuconfig

选择Fully Preemptible Kernel(RT)这个选项
Ubuntu编译使用实时内核补丁(RT-PREEMPT kernel)并测试(亲测OK)
Ubuntu编译使用实时内核补丁(RT-PREEMPT kernel)并测试(亲测OK)
Ubuntu编译使用实时内核补丁(RT-PREEMPT kernel)并测试(亲测OK)
关闭内存溢出检测
Ubuntu编译使用实时内核补丁(RT-PREEMPT kernel)并测试(亲测OK)
Ubuntu编译使用实时内核补丁(RT-PREEMPT kernel)并测试(亲测OK)
Ubuntu编译使用实时内核补丁(RT-PREEMPT kernel)并测试(亲测OK)
6. 编译Linux内核并安装

make
sudo make modules_install
sudo make install
sudo update-grub
使用实时内核

启动Ubuntu时,想进入grub选择界面,当进入VMware启动界面时,长按shift键。
Ubuntu编译使用实时内核补丁(RT-PREEMPT kernel)并测试(亲测OK)
之后就会出现grub界面:
Ubuntu编译使用实时内核补丁(RT-PREEMPT kernel)并测试(亲测OK)
Ubuntu编译使用实时内核补丁(RT-PREEMPT kernel)并测试(亲测OK)

测试实时内核

可参考以下网页:

https://blog.csdn.net/kl1125290220/article/details/78560220

https://blog.csdn.net/longerzone/article/details/16897655

sudo cyclictest -t 5 -p 80 -n  //运行5个线程,线程的优先级为80,无线循环

也可以进行多次运行并统计结果

sudo cyclictest -l10000000 -m -n -t1 -p99 -i2 -h100

-l10000000 指定1千万循环,

-m锁定当前和将来的内存分配,

-n指定使用 clock_nanosleep,

-t1指定开一个线程进行测试,

-p99指定最高优先级,

-i2指定基本线程间隔,单位是us,此处是2us,

-h100指定统计结果的分布情况。

参考文献:
https://blog.csdn.net/v6543210/article/details/80941906