当前位置: 首页 > news >正文

ubuntu18.04配置实时内核

ubuntu系统:18.04

当前内核:5.4.0-84-generic

待安装实时内核: 5.6.19-rt11

1、查看当前版本

uname -r

2、下载内核与补丁

一种方式从官网自己下载

  • 官方内核下载地址
  • 官方补丁下载地址
  • 阿里镜像内核下载地址(速度快)
  • 阿里镜像补丁下载地址(速度快)

另一种方式直接在终端用命令行下载

curl -SLO https://mirrors.aliyun.com/linux-kernel/v5.x/linux-5.6.19.tar.xz
curl -SLO https://mirrors.aliyun.com/linux-kernel/v5.x/linux-5.6.19.tar.sign    
curl -SLO https://mirrors.aliyun.com/linux-kernel/projects/rt/5.6/older/patch-5.6.19-rt11.patch.xz
curl -SLO https://mirrors.aliyun.com/linux-kernel/projects/rt/5.6/older/patch-5.6.19-rt11.patch.sign

下载得到这四个文件

 如果是ubuntu 16.04就相应的改成实时内核5.4.19-rt10,其余ubuntu版本就找相对应版本更高的实时内核即可。

3、安装内核与补丁

1. 在下载的内核和补丁所在文件夹打开终端,记得把实时内核版本号改成自己的

xz -cd linux-5.6.19.tar.xz | tar xvf -
cd linux-5.6.19
xzcat ../patch-5.6.19-rt11.patch.xz | patch -p1

2. 在终端中安装必须的安装包: 

sudo apt-get install libncurses-dev bison flex bc libelf-devsudo apt-get install libssl-dev

3、把原内核复制到.config文件中

在boot文件夹下可以找到与当前内核版本匹配的 config 文件,例如:config-5.4.0-84-generic 。将其拷贝到当前目录~/rt_kernal/linux-5.6.19 下并命名为 .config

终端命令如下(记得把5.4.0-84改成当前自己的内核版本):

sudo cp /boot/config-5.4.0-84-generic .config

  config-5.4.0-84-generic就是下图第三个文件。

4、配置内核

make oldconfig

 回车,直到出现选择的选项,选择Fully Preemptible Kernel (RT),就是下图第四个选项  然后一直回车到结束

  5、编译内核

首先查看自己的电脑有多少个cpu

lscpu

可以看到我的有32个cpu,所以在下面的命令中-j后面就是32,表示编译的线程数 。编译线程数越大,编译越快。

make -j32 deb-pkg

 可能会出现如下警告,不用理会。大约等待一个多小时,实时内核会自动编译好。

大概率会出现以下错误

dpkg-buildpackage: 错误: debian/rules build subprocess returned exit status 2
scripts/Makefile.package:73: recipe for target 'deb-pkg' failed
make[1]: *** [deb-pkg] Error 2
Makefile:1429: recipe for target 'deb-pkg' failed
):

解决方法: 在linux-5.6.19文件中,Ctrl+h显示隐藏文件,选择.config文件打开。直接修改 .config 文件,注释掉以下四项:

  • CONFIG_MODULE_SIG_ALL=y
  •  CONFIG_MODULE_SIG_KEY="certs/signing_key.pem"
  • CONFIG_SYSTEM_TRUSTED_KEYS="debian/canonical-certs.pem"
  • CONFIG_DEBUG_INFO=y

 

然后重现执行命令“make -j32 deb-pkg”编译内核,编译刚开始需要按回车键。

  6.安装 deb 包

经过上面的编译过程,应该会在和linux压缩包同目录下生成3个或者4个.deb格式的安装包,在该文件夹下打开终端,安装所有生成的.deb包

sudo dpkg -i linux-headers-5.6.19-rt11_5.6.19-rt11-1_amd64.deb linux-image-5.6.19-rt11_5.6.19-rt11-1_amd64.deb linux-libc-dev_5.6.19-rt11-1_amd64.deb

7. reboot 并验证 

reboot

reboot然后进入 ubuntu 高级选项,发现已经有了刚刚安装的实时内核! 

 enter 启用该内核(不带有recovery mode字样的那一个),开机后uname -r查看当前系统内核

在这里插入图片描述

在终端输入  gedit /sys/kernel/realtime 进入一个文件,如果里面是有一个“1”,就说明实时内核就安装完成了。

 gedit /sys/kernel/realtime 

———————————————————————————————————

如果后续要使用Franka机器人,对于实时内核需要添加以下操作

1.在终端执行以下命令

sudo addgroup realtime
sudo usermod -a -G realtime $(whoami)

2. 打开limits.conf文件

 sudo gedit /etc/security/limits.conf

在/etc/security/limits.conf 中添加以下内容 并保存

@realtime soft rtprio 99
@realtime soft priority 99
@realtime soft memlock 102400
@realtime hard rtprio 99
@realtime hard priority 99
@realtime hard memlock 102400

8. 后续操作

  • 如果要使用Franka机械臂,需要安装franka_ros,可以参考Franka环境配置——从源码安装libfranka和franka_ros
  • 如果ubuntu的实时内核不能使用扩展屏,可以参考以下教程解决ubuntu不能使用扩展屏
http://www.lryc.cn/news/503928.html

相关文章:

  • Unity中Mesh重叠顶点合并参考及其应用
  • 倚光科技助力自由曲面设计与加工
  • PWM调节DCDC参数计算原理
  • [Pro Git#3] 远程仓库 | ssh key | .gitignore配置
  • Freertos任务切换
  • go开发中interface和方法接收器的使用
  • vue3-tp8-Element:对话框实现
  • 高中数学:随机变量-正态分布
  • 游戏引擎学习第47天
  • Git 仓库托管教程
  • 基于51单片机的简易时钟/定时器闹钟proteus仿真
  • Jackson @JsonProperty 注解
  • 【Excel学习记录】02-单元格格式设置
  • 支持自定义离线地图地理区域,查询组件及数据源功能增强,DataEase开源BI工具v2.10.3 LTS发布
  • LF CRLF
  • 【从零开始入门unity游戏开发之——C#篇01】理论开篇,理解什么是编程
  • 怎样提升企业网络的性能?
  • 1. 机器学习基本知识(2)——机器学习分类
  • 四叉树算法在游戏碰撞检测中的应用
  • IDEA 打包普通JAVA项目为jar包
  • Docker Compose 多应用部署 一键部署
  • 软件架构设计——通用表单UI—未来之窗行业应用跨平台架构
  • 人工智能大语言模型起源篇(二),从通用语言微调到驾驭LLM
  • VBA 连续打印多个内容成PDF
  • 9. 高效利用Excel设置归档Tag
  • ubuntu系统生成SSL证书配置https
  • 顺序表(数据结构初阶)
  • AOF和RDB【Redis持久化篇】
  • 数据可视化大屏UI组件库:B端科技感素材PSD
  • 【力扣算法】234.回文链表