首页 > 系统相关 >Franka Linux 设置实时内核 PREEMPT_RT

Franka Linux 设置实时内核 PREEMPT_RT

时间:2024-07-08 18:23:47浏览次数:16  
标签:RT kernel Franka tar patch PREEMPT 内核 linux curl

为了使用 控制您的机器人libfranka,工作站 PC 上的控制器程序必须在内核下以实时优先级PREEMPT_RT运行 。本节介绍了修补内核以支持 PREEMPT_RT并创建安装包的过程。

内核不支持 NVIDIA 二进制驱动程序PREEMPT_RT

 

sudo apt-get install build-essential bc curl ca-certificates gnupg2 libssl-dev lsb-release libelf-dev bison flex dwarves zstd libncurses-dev

然后,您必须决定使用哪个内核版本。要找到您当前正在使用的版本,请使用。实时补丁仅适用于部分内核版本,请参阅 https://www.kernel.org/pub/linux/kernel/projects/rt/。我们建议选择最接近您当前使用的版本。如果您选择其他版本,只需替换数字即可。决定版本后,使用下载源文件:uname -r curl

对于使用内核版本 4.14.12 测试的 Ubuntu 16.04:

curl -SLO https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.14.12.tar.xz
curl -SLO https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.14.12.tar.sign
curl -SLO https://www.kernel.org/pub/linux/kernel/projects/rt/4.14/older/patch-4.14.12-rt10.patch.xz
curl -SLO https://www.kernel.org/pub/linux/kernel/projects/rt/4.14/older/patch-4.14.12-rt10.patch.sign

对于使用内核版本 5.4.19 测试的 Ubuntu 18.04:

curl -SLO https://www.kernel.org/pub/linux/kernel/v5.x/linux-5.4.19.tar.xz
curl -SLO https://www.kernel.org/pub/linux/kernel/v5.x/linux-5.4.19.tar.sign
curl -SLO https://www.kernel.org/pub/linux/kernel/projects/rt/5.4/older/patch-5.4.19-rt10.patch.xz
curl -SLO https://www.kernel.org/pub/linux/kernel/projects/rt/5.4/older/patch-5.4.19-rt10.patch.sign

对于使用内核版本 5.9.1 测试的 Ubuntu 20.04:

curl -SLO https://www.kernel.org/pub/linux/kernel/v5.x/linux-5.9.1.tar.xz
curl -SLO https://www.kernel.org/pub/linux/kernel/v5.x/linux-5.9.1.tar.sign
curl -SLO https://www.kernel.org/pub/linux/kernel/projects/rt/5.9/patch-5.9.1-rt20.patch.xz
curl -SLO https://www.kernel.org/pub/linux/kernel/projects/rt/5.9/patch-5.9.1-rt20.patch.sign

并使用以下命令解压缩:

xz -d *.xz

验证文件完整性

这些.sign文件可用于验证下载的文件是否被损坏或篡改。此处显示的步骤改编自 Linux 内核档案,有关该过程的更多详细信息,请参阅链接页面。

您可以使用以下方法gpg2来验证.tar档案:

gpg2 --verify linux-*.tar.sign
gpg2 --verify patch-*.patch.sign

如果你的输出类似以下内容:

$ gpg2 --verify linux-*.tar.sign
gpg: assuming signed data in 'linux-4.14.12.tar'
gpg: Signature made Fr 05 Jan 2018 06:49:11 PST using RSA key ID 6092693E
gpg: Can't check signature: No public key

您必须先下载签署上述文件的人的公钥。从上面的输出中可以看到,它的 ID 为6092693E。您可以从密钥服务器获取它:

gpg2  --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 6092693E

对于补丁来说也类似:

gpg2 --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 2872E4CC

请注意,其他内核版本的密钥可能具有不同的 ID,您必须进行相应的调整。

下载密钥后,您现在可以验证源。以下是正确输出的示例:

$ gpg2 --verify linux-*.tar.sign
gpg: assuming signed data in 'linux-4.14.12.tar'
gpg: Signature made Fr 05 Jan 2018 06:49:11 PST using RSA key ID 6092693E
gpg: Good signature from "Greg Kroah-Hartman <[email protected]>" [unknown]
gpg:                 aka "Greg Kroah-Hartman <[email protected]>" [unknown]
gpg:                 aka "Greg Kroah-Hartman (Linux kernel stable release signing key) <[email protected]>" [unknown]
gpg: WARNING: This key is not certified with a trusted signature!
gpg:          There is no indication that the signature belongs to the owner.
Primary key fingerprint: 647F 2865 4894 E3BD 4571  99BE 38DB BDC8 6092 693E

有关该警告的更多信息,请参阅Linux 内核档案。

编译内核

一旦确定文件已正确下载,您就可以提取源代码并应用补丁:

tar xf linux-*.tar
cd linux-*/
patch -p1 < ../patch-*.patch

接下来将当前启动的内核配置复制为新实时内核的默认配置:

cp -v /boot/config-$(uname -r) .config

现在您可以使用此配置作为默认配置来配置构建:

make olddefconfig
make menuconfig

第二条命令会打开一个终端界面,您可以在其中配置抢占模型。使用箭头键导航至General Setup > Preemption Model并选择Fully Preemptible Kernel (Real-Time)

之后导航至Cryptographic API >用于签名检查的证书 (位于列表最底部)>提供系统范围的可信密钥环默认系统密钥环的附加 X.509 密钥

从提示中删除“debian/canonical-certs.pem”并按 Ok。保存此配置并.config退出 TUI。

如果你更喜欢 GUI而不是TUI,请使用make xconfigmake menuconfig

之后,您就可以编译内核了。由于这是一个漫长的过程,请将多线程选项设置-j为 CPU 核心数:

make -j$(nproc) deb-pkg

 

最后,您可以安装新创建的包。确切的名称取决于您的环境,但您要寻找headers没有后缀images 的包dbg。要安装:

sudo dpkg -i ../linux-headers-*.deb ../linux-image-*.deb

验证新内核

重新启动系统。Grub 启动菜单现在应该允许您选择新安装的内核。要查看当前正在使用哪一个内核,请查看命令的输出。它应该包含您选择的字符串和版本号。此外,应该存在并包含数字。

uname -a

PREEMPT RT/sys/kernel/realtime1

允许用户为其进程设置实时权限

PREEMPT_RT内核安装并运行 后,添加一个名为realtime 的组,并将控制机器人的用户添加到该组:

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

随后,向/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

您退出并再次登录后将应用这些限制。

 

 




标签:RT,kernel,Franka,tar,patch,PREEMPT,内核,linux,curl
From: https://www.cnblogs.com/ai-ldj/p/18290478

相关文章

  • 【RT-Thread基础教程】线程的基本使用
    前言在嵌入式系统开发中,RTOS(Real-TimeOperatingSystem)扮演着至关重要的角色,而RT-Thread作为一款开源的实时操作系统,在嵌入式领域中备受欢迎。线程是RTOS中的基本执行单元,其良好的多任务处理能力使得嵌入式系统能够更有效地响应各种事件和任务。本文将着重介绍在RT-Thread......
  • 获取Echarts的geoJson文件(省市/区县)
    1.获取市的级别直接使用阿里云提供的工具直接获取: https://datav.aliyun.com/portal/school/atlas/area_selector#&lat=32.62087018318113&lng=118.43261718749999&zoom=4和 https://map.easyv.cloud/和 https://geojson.hxkj.vip/  2.获取县和区的细到街道的geoJson,需......
  • MS SQL Server Reporting Service升级
    案例参考:MSSSRS2014->MSSSRS2019因为MicrosoftSQLServer2019ReportingService是独立产品,不在集成于SQLServer服务安装,需要单独下载MSSQLServerReportingServiceinstallationpackage进行安装并migrationSSRSStepByStep:1.备份原SSRS安装目录\MSRS12.MSSQL......
  • 「代码随想录算法训练营」第五天 | 哈希表 part1
    242.有效的字母异位词题目链接:https://leetcode.cn/problems/valid-anagram/题目难度:简单文章讲解:https://programmercarl.com/0242.有效的字母异位词.html视频讲解:https://www.bilibili.com/video/BV1YG411p7BA题目状态:一次过,哈哈哈个人思路:之前在《剑指offer》中做过......
  • [UVM]IC验证自动结束仿真函数——uvm_top.set_timeout/set_report_max_quit_count
    Title:[UVM]IC验证自动结束仿真函数——uvm_top.set_timeout/set_report_max_quit_count文章目录1-前言2-uvm_top.set_timeout3-set_report_max_quit_count4-运用5-小结1-前言​数字IC验证过程中,需要运行不同Testcase,有些TC会因为TC配置、TB机制等原因,导致m......
  • Java读取properties文件之中文乱码问题及解决
    Java读取properties文件之中文乱码问题及解决−目录Java读取properties文件中文乱码两种方式读取properties配置文件方式一:使用Properties集合工具类读取配置文件。方式二:使用ResourceBundle工具类读取配置文件Java读写资源文件类properties1.资源文件要求如下2.功能大致如下3.......
  • turtle绘制五星红旗
    importturtle#背景色turtle.bgcolor('red')turtle.color('yellow')#画笔颜色turtle.fillcolor('yellow')#填充色turtle.up()turtle.goto(-600,180)turtle.down()#主星turtle.begin_fill()#开始着色foriinrange(5):turtle.forward(50)......
  • [IDEA]修改IDEA中properties文件的默认编码格式 设置--编辑器--文件编码--UTF-8
    [IDEA]修改IDEA中properties文件的默认编码格式设置--编辑器--文件编码--UTF-8问题描述IDEA中属性文件默认编码为ISO-8859-1会出现中文乱码的情况问题解决在设置-编辑器-文件编码中,将属性文件改为utf-8原文链接:https://www.cnblogs.com/xiao-xiaoyang/p/17606006.html......
  • Java工程中读取resources目录下properties文件的方式,从上图可知,当工程部署在服务器下
    Java工程中读取resources目录下properties文件的方式,从上图可知,当工程部署在服务器下时,配置文件以及代码都是在对应的classes文件夹下二、具体读取方法1、当需要读取当前路径下的properties文件时,即在本地没有部署到具体服务器上的情况:Filefile=newFile(“src/main/re......
  • java 读取properties java读取properties乱码,IDEA 更改显示格式
    java读取propertiesjava读取properties乱码,IDEA更改显示格式1.打开properties文件,中文呈现乱码:原因:文件格式问题,properties默认使用ISO8859-1格式,中文显示,通用的是utf-8,带中文的可改成gbk,gb2312.这里改成    utf-8即可。步骤:选中文件,右键-->properties-->resou......