安装方案参考:https://github.com/veysiadn/IgHEtherCATImplementation
确定内核版本
uname -a
Linux GKJ 6.2.0-39-generic #40~22/04.1-Ubuntu SMP PREEMPT_DYNAMIC Thu Nov 10:53:04 UTC 2 x86_64 x86_64 x86_64 GNU/Linux
内核版本为6.2.0 , PREEMPT_DYNAMIC这里指代抢占型内核,非实时性内核,实时内核应为RT_PREEMPT或 PREEMPT_RT ,需要进行安装。
注意:部分Ubuntu 22.04 Pro LTS版本具备实时订阅,可以通过订阅中的pro apt install 补充安装实时核。以下为非pro用户添加实时补丁。
安装RT_PREEMPT前置工具
参考安装链接:https://github.com/veysiadn/RT_PREEMPT_INSTALL
首先关闭安全启动。
Before starting to build, make sure that Safe Boot option is disabled in your BIOS settings and run commands below to get required libraries for building/installation.
Safe Boot - Disable
Hyper-Threading - Disable
System Management Mode - Disable
Virtualization - Disable
Power Management Related Settings - Disable
sudo apt-get update
sudo apt-get install git build-essential automake autoconf libtool pkg-config cmake linux-source bc kmod cpio flex -y
sudo apt-get install intltool autoconf-archive libpcre3-dev libglib2.0-dev libgtk-3-dev libxml2-utils zstd dwarves -y
sudo apt-get install libnuma-dev libssl-dev libtool libncurses5 libncurses5-dev autogen libudev-dev libelf-dev stress -y
sudo apt-get install kernel-package fakeroot zlib1g-dev bin86 g++ bison cpufrequtils -y
这里由于Veysiadn使用的是Ubuntu20.04.4LTS,与笔者所用Ubuntu22.04 6.2.0-39内核不相同,kernel-package安装失败,故选择将kernel-package删去
sudo apt-get install fakeroot zlib1g-dev bin86 g++ bison cpufrequtils -y
查找kernel versionLinux Kernel Sources
查找RT_PREEMPT version RT_PREEMPT Patch Sources
这里笔者根据自己的内核进行了选取下载。
这里可以参考亦秋先生的安装方案。
https://blog.csdn.net/wq20202/article/details/130718111
tar -zxvf linux-6.2.tar.gz
xz -d patch-6.2-rt3.patch.xz
cd linux-6.2/
patch -p1 < ../patch-6.2-rt3.patch
内核配置
make menuconfig
进入界面化配置后
General Setup -> Preemption Model 设置为 Fully Preemptible Kernel(RT)
General Setup -> Timers subsystem -> Timer tick handling 设置为 Full dynticks system
General Setup -> Timers subsystem 开启 High Resolution Timer Support
Processor type and features -> Timer frequency 设置为 1000 HZ
保存后exit,通过vi打开配置文件
vi .config
小技巧:先键入/ 随后 输入CONFIG_SYSTEM_TRUSTED_KEYS 随后回车,即可跳转到指定内容
删去引号内的内容, :wq
退出
编译安装
make -j`nproc`
这里-j 选项后跟随一个数字,指示make同时运行多少个任务。 nproc
是一个命令,用于打印出可用的处理器核心数量。在这里,会将nproc
的输出(核心数)作为-j选项的值。
这个过程非常漫长,耐心等待。
第一步编译完成后,继续进行模块编译和安装编译
make modules_install
make install
如果出现以上问题,使用管理员权限,即:
sudo make modules_install
配置GRUB启动项
vim /etc/default/grub
1,注释掉下面这行将会显示引导菜单
GRUB_TIMEOUT_STYLE=hidden
2,适当修改超时时间
GRUB_TIMEOUT=5 超时时间,单位s
3,更新启动项配置
update-grub