简介
标准的Linux内核只达到了软实时的要求,但是本人现在在接触的一个工作需要linux内核具有硬实时的功能。RT-Preempt Patch是linux内核的补丁,可以使得Linux满足硬实时的需求。
在安装之前,网上查阅了部分资料,发现都有点小问题,导致在安装过程中浪费了许多时间,所以对自己的安装过程做个记录,如果有人有需要可以做个参考。
主要参考以下两篇文章:
https://blog.csdn.net/uanjj/article/details/88830668
https://www.linuxidc.com/Linux/2018-05/152270.htm
安装流程
- 查看自己的内核版本,本人使用的是ubuntu 16.04.5,内核版本为4.15
uname -a
- 安装依赖项
sudo apt-get install libncurses-dev
sudo apt-get install libss-dev
- 创建内核目录
mkdir ~/kernel && cd ~/kernel
- 下载linux内核以及RT-PREEMPT patch
可以在清华的镜像网站下载。
linux内核网址:https://mirrors.tuna.tsinghua.edu.cn/kernel/v4.x/,参考网上资料,本人下载的版本为linux-4.19.25.tar.gz
RT-PREEMPT patch:https://mirrors.tuna.tsinghua.edu.cn/kernel/projects/rt/,本人下载的版本为patch-4.19.25-rt16.patch.gz,如果在对应版本的目录下找不到具体的文件,可以在older文件夹下寻找
下载完内核和补丁后把文件移到刚才创建的kernel目录下。 - 解压内核,把补丁添加到内核中
tar -xzvf linux-4.19.25.tar.gz
gunzip patch-4.19.25-rt16.patch.gz
cd linux- 4.19.25
patch -p1 < patch-4.19.25-rt16.patch
- 配置内核
make menuconfig
选General setup,如果内核版本老一点没有下一步中的选项的话选Processor Type and features
选Preemption Model (Voluntary Kernel Preemption (Desktop))
选Fully Preemptible Kernel (RT)
然后一直按esc键返回至主页面
选Kernel hacking
Memory Debugging
取消选择Check for stack overflows,本来就没有选择可以忽略
返回主页面,保存配置并退出
- 编译并安装内核
make -j8 #根据处理器决定编译线程数
sudo make modules_install -j8
sudo make install -j8
- 更新grub并重启
sudo update-grub
sudo reboot
- 再次查看内核版本
uname -a
输出
Linux cheetah-up 4.19.25-rt16 #1 SMP PREEMPT RT Fri Oct 4 21:14:10 CST 2019 x86_64 x86_64 x86_64 GNU/Linux
安装成功。