ROS2_IGH方案配置(一)——Ubuntu22.04 PREEMPT_RT补丁安装

安装方案参考: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
重启
  • 20
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值