orocos安装_xenomai3.1内核移植安装-基于X86_64和arm

本文详细介绍了如何在X86_64和ARM平台上安装Xenomai,包括Xenomai内核补丁的打补丁、编译与安装,以及用户空间实时库libcobalt的编译和配置。通过这些步骤,可以提升Linux系统的实时性,同时保持其网络和图形服务。
摘要由CSDN通过智能技术生成

版权声明:本文为本文为博主原创文章,转载请注明出处。如有问题,欢迎指正。博客地址:https://www.cnblogs.com/wsg1100/

最近接触实时系统Xenomai,该文章整理记录X86 ubuntu环境下xenomai 内核编译、xenomai应用环境搭建步骤,其他硬件架构(如arm、arm64)类似,先在X86上安装好环境才能更好的开发验证xenomai程序吧,更多信息见文末参考链接,希望对你有所帮助。

一、概要

xenomai是众多inux实时性解决方案中的一种,通过在linux的基础上添加一个RTOS内核cobalt,来提高linux的实时性。实时内核cobalt与非实时内核linux相结合,既能提供工业级RTOS的硬实时性能,又能利用linux操作系统非常出色的网络和图形界面服务,在产品的开发周期和成本控制方面都有巨大优势,结构如下:

fc0d03f2c68c5b0f465cd5e745854fe5.png

主要有3部分,xenomai的移植构建也是围绕这三部分来进行:

用户空间中的实时应用程序库libcobalt;

内核空间中的实时内核Cobalt;

硬件架构与Linux内核版本相关层 ipipe-core;

libcobalt和Cobalt的源码随xenomai更新,位于同一源码包内,ipipe-core则与硬件架构和具体linux版本相关,以补丁的方式提供,需要单独下载;

总的来说,ipipe-core实现必要功能的同时,也是xenomai与硬件架构、linux版本间的解耦层,社区提供了常见架构下各linux版本的补丁,目前提供的最新ipipe-core是基于linux 4.19(2020-04-16)。xenomai的移植步骤如下:

对准备好的linux源码打ipip-core补丁;

打cobalt内核补丁,编译构建内核;

libcobalt库编译安装,设置环境变量。

步骤1中的源码文件也可直接从xenomai维护分支直接拉取,直接对拉取的代码进行步骤2、3即可。

二、环境准备

1.1 安装内核编译工具

编译Linux内核需要的工具包如下,可能不全,可根据编译时的错误提示安装缺少的工具。

sudo apt-get install gcc libncurses-dev flex bison openssl-dev libssl-dev dkms libelf-dev libudev-dev libpci-dev libiberty-dev build-dep

1.2 准备内核及补丁文件

内核:下载linux源码,linux内核源码网址:https://www.kernel.org/。

ipipe补丁文件:下载与linux版本对应的ipipe-core补丁,最好先浏览https://xenomai.org/downloads/ipipe/v4.x/看xenomai提供了哪些linux版本的补丁,再去下载对应linux内核源码。

xenomai内核源码包:到xenomai官网 下载最新xenomai源码包。

本文选用以下版本作为示例:

linux kernel:linux-4.19.114.tar.xz

ipip-core:ipipe-core-4.19.114-cip24-x86-12.patch

xenomai:xenomai-3.1.tar.bz2

一般来说,如果没有找到与你使用的内核版本一致的ipipe-core补丁,linux相近版本linux-4.19.zzz,只要版本zzz跨度不大,也可使用相近的补丁代替。

说明:笔者将上面的文件,统一放到了/home/work/xenomai(家目录~)目录下。文中涉及绝对路径时,还请读者注意。

三、内核安装流程

3.1 打ipipe补丁

解压linux内核源码:

$tar -xvf linux-4.19.114.tar.xz

进入linux内核源码目录打ipipe补丁:

$cd linux-4.19.114

$patch -p1 < ../ipipe-core-4.19.114-cip24-x86-12.patch

3.2 添加xenomai内核

解压xenomai源码包:

$tar -xvf xenomai-3.1.tar.bz2

进入xenomai源码目录xenomai-3.1/scripts,使用脚本prepare-kernel.sh对linux内核源码打cobalt内核补丁;

$cd xenomai-3.0.8/scripts

脚本prepare-kernel.sh使用帮助如下:

$ ./prepare-kernel.sh --help

usage: prepare-kernel --linux= --ipipe= [--arch=] [--outpatch= [--filterkvers=y|n] [--filterarch=y|n]] [--forcelink] [--default] [--verbose]

其中主要参数为:

--linux=指定linux源码的绝对路径;

--ipipe=指定ipipe补丁。如果已经手动对linux源码打ipipe补丁,则不需要指定该参数。

--arch=指定硬件架构,x86_64、arm、arm64

outpatch=指定输出xenomai patch(绝对路径)。默认情况下如果不使用该参数,prepare-kernel.sh打

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值