源码与补丁的下载地址
https://mirrors.edge.kernel.org/pub/linux/kernel/projects/rt/5.4/
https://mirrors.edge.kernel.org/pub/linux/kernel/
首先使用uname -a命令检查自己目前操作系统的版本。
注意:最好选择比自己目前内核版本低的内核源码与补丁!!!
操作步骤
安装必要的包
sudo apt-get install libncurses-dev
sudo apt-get install libssl-dev
在上边的网站下载RT补丁与linux内核程序,两者需要严格对应。
之后执行下面的操作:
tar -xzvf linux-5.4.106.tar.gz
cd linux-5.4.106
gzip -cd ../patch-5.4.106-rt54.patch.gz | patch -p1 –verbose
打补丁的过程中可能会出现hunk failed的情况,例如:
patching file sd-as3525v2.c
Hunk #1 FAILED at 559.
1 out of 1 hunk FAILED -- saving rejects to file sd-as3525v2.c.rej
针对这类问题,通常在下面的两篇文章中找到答案
https://blog.csdn.net/longerzone/article/details/16967579
https://stackoverflow.com/questions/14282617/hunk-1-failed-at-1-whats-that-mean
完成后直接通过图形化界面对.config文件进行配置
make menuconfig
Genernal setup–>Preemption Model–>Fully Preemptible Kernel(Real-Time)
有一些教程中建议修改memory debugging中关于stack overflow的参数,如果配置界面不存在这个选项的话可以忽略,代表原有的配置就是无视栈溢出的。
##首先对文件进行编译
sudo make -j32
##编译完成后将文件整合链接到一起生成模块
sudo make modules -j32
##把编译好的模块拷贝到系统目录下
sudo make modules_install -j32
##安装内核
sudo make install -j32
##查看是否成功安装内核,看看有没有对应版本号的内核
ls /boot
安装完毕后重启即可在grub界面选择RT内核了