一种基于嵌入式系统的RancherOS ros核心模块移植方法技术方案

技术编号:18621207 阅读:310 留言:0更新日期:2018-08-08 00:20
本发明专利技术公开了一种基于嵌入式系统的RancherOS ros核心模块移植方法,所述方法包括:步骤1)创建基于ros‑build镜像的指定参数的可交互式容器;步骤2)设置系统环境变量并安装版本号为1.5的go命令;步骤3)添加编译工具;步骤4)修改main命名问题及添加cutil.go文件的依赖库;步骤5)交叉编译得到可执行文件。本发明专利技术的方法能够解决RancherOS ros核心模块与嵌入式系统不匹配问题;具有操作简单,实用性强的优点。

A transplant method of RancherOS ROS core module based on Embedded System

The invention discloses a RancherOS ROS core module transplantation method based on an embedded system, the method includes: Step 1) creating an interactive container based on the specified parameter based on the ROS build image; step 2) setting the system environment variable and installing the go life order of the version number 1.5; step 3) adding a compiler tool; step 4) modification. Main naming problem and adding cutil.go file dependency library; step 5) cross compile to get executable file. The method of the invention can solve the mismatch problem between the RancherOS ROS core module and the embedded system, and has the advantages of simple operation and strong practicability.

【技术实现步骤摘要】
一种基于嵌入式系统的RancherOSros核心模块移植方法
本专利技术涉及嵌入式容器操作系统领域,具体涉及一种基于嵌入式系统的RancherOSros核心模块移植方法。
技术介绍
现有的嵌入式系统随着互联网,通信和计算机的发展越来越趋于智能化,人机交互也更加频繁,因此,人们对嵌入式系统的要求越来越高,希望嵌入式系统是一个多应用可运行的环境。然而目前的嵌入式系统尚未完善,由于运行的应用增多,暴露出来的入口就更多,这使得木马、恶意软件和病毒很容易就侵入到系统中;资源利用率:虽然智能设备的性能得到了提升,但是在面对高分辨率视频或者复杂图形处理等时,需要更高效的资源管理技术。容器虚拟化技术是大势所趋,其中以Docker为代表的新一代容器技术成为应用安全研究的一个热点。Docker虚拟化技术可以为应用提供安全域,孤岛环境,有效隔离应用间访问,保护用户隐私数据。由于Docker的兴起,许多新的专门运行容器的Linux发行版本也出现了。容器封装了应用程序所需要的一切,除了共用的操作系统内核,它封装了运行时环境、框架和库、代码、配置和相关的依赖。容器大大削减了操作系统作为一个全能平台所承担的角色。容器之下的操作系统这时只需要承担一个非常轻量级的角色:启动和控制容器。但是现有的容器操作系统只适用于服务器端,无法适配嵌入式系统。基于Linux的嵌入式操作系统,一般是对Linux根据嵌入式系统的特点与应用进行了部分裁剪,与服务器端的Linux系统不相同。
技术实现思路
本专利技术的目的在于为了解决RancherOS与嵌入式Linux系统不匹配问题,需要对嵌入式系统配置和RancherOS代码进行修改,由此提出了一种基于嵌入式系统的RancherOSros核心模块移植方法,该方法旨在解决RancherOS不能运行于嵌入式系统的问题,通过独立交叉编译RancherOS核心模块,设置系统环境,修改命名问题、添加依赖库并交叉编译得到可执行文件。为了实现上述目的,本专利技术提供了一种基于嵌入式系统的RancherOSros核心模块移植方法,所述方法包括:步骤1)创建基于ros-build镜像的指定参数的可交互式容器;步骤2)设置系统环境变量并安装版本号为1.5的go命令;步骤3)添加编译工具;步骤4)修改main命名问题及添加cutil.go文件的依赖库;步骤5)交叉编译得到可执行文件。上述技术方案中,所述步骤1)中指定参数包括:参数-i,-t,将容器设置为交互模式;参数-v,根据指定路径挂载共享卷;参数--device,允许容器访问指定路径下的设备。上述技术方案中,所述步骤2)具体包括:步骤2-1)设置当前路径BUILD_DIR;步骤2-2)设置Go编译器输出的程序的目标架构GOARCH;步骤2-3)设置编译出来的程序所运行的目标操作系统GOOS;步骤2-4)设置编译cgo的时候gcc编译的命令行参数GOGCCFLAGS;步骤2-5)设置GOPATH:执行GO命令时将进行搜索的目录,主要存放包含GO源代码和二进制文件的目录;步骤2-6)设置Go语言的安装目录GOROOT;步骤2-7)设置GOTOOLDIR:Go的工具链程序在这个目录下;步骤2-8)判断是否使用cgo;步骤2-9)安装相应版本号的go命令。上述技术方案中,所述步骤3)的编译工具为arm-histvb300-linux编译器。上述技术方案中,所述步骤4)具体包括:步骤4-1)修改docker-from-scratch文件夹下的Main文件夹的main.go文件,修改Main函数为main函数,并修改packagemain为packageMain;步骤4-2)修改util文件夹下的cutil.go文件的cgo参数段,添加cgoCFLAGS参数指定库文件路径,修改cgoLDFLAGS参数指定静态链接库的路径以及静态链接库文件名;所述库文件包含blkid.h、libmount.h头文件、libblkid.a、libmount.a和libuuid.a静态链接库文件。上述技术方案中,所述步骤5)的编译过程中,基于RancherOS原有编译ros核心模块命令的基础上,需添加GOARCH、CGO_ENABLED和CC参数。本专利技术的优势在于:1、本专利技术的方法能够解决决了RancherOSros核心模块与嵌入式系统不匹配问题;2、本专利技术的方法操作简单,实用性强。附图说明图1为本专利技术的基于嵌入式系统的RancherOSros核心模块移植方法的流程图。具体实施方式下面结合附图和具体实施例对本专利技术进行详细的说明。如图1所示,一种基于嵌入式系统的RancherOSros核心模块移植方法,通过独立交叉编译RancherOSros核心模块,设置系统环境,修改命名问题、添加依赖库并交叉编译得到可执行文件;所述方法具体包括:步骤1)创建基于ros-build镜像的指定参数的可交互式容器;所述指定参数包括:参数-i,-t,将容器设置为交互模式;参数-v,根据指定路径挂载共享卷;参数--device,允许容器访问指定路径下的设备。步骤2)设置系统环境变量并安装版本号为1.5的go命令;具体包括:步骤2-1)设置当前路径BUILD_DIR;步骤2-2)设置Go编译器输出的程序的目标架构GOARCH;步骤2-3)设置编译出来的程序所运行的目标操作系统GOOS;步骤2-4)设置编译cgo的时候gcc编译的命令行参数GOGCCFLAGS;步骤2-5)设置GOPATH:执行GO命令时将进行搜索的目录,主要存放包含GO源代码和二进制文件的目录;步骤2-6)设置Go语言的安装目录GOROOT;步骤2-7)设置GOTOOLDIR:Go的工具链程序在这个目录下;步骤2-8)判断是否使用cgo;步骤2-9)安装相应版本号的go命令。步骤3)添加编译工具;所述编译工具为arm-histvb300-linux编译器。步骤4)修改main命名问题及添加cutil.go文件的依赖库;步骤4-1)修改docker-from-scratch文件夹下的Main文件夹的main.go文件,修改Main函数为main函数,并修改packagemain为packageMain;步骤4-2)修改util文件夹下的cutil.go文件的cgo参数段,添加cgoCFLAGS参数指定库文件路径,修改cgoLDFLAGS参数指定静态链接库的路径以及静态链接库文件名。所述库文件包含blkid.h、libmount.h头文件、libblkid.a、libmount.a和libuuid.a静态链接库文件。步骤5)交叉编译得到可执行文件。其中,交叉编译得到可执行文件,基于RancherOS原有编译ros核心模块命令的基础上,需添加GOARCH、CGO_ENABLED和CC参数。本专利技术的一个具体的实施例为:步骤1)创建基于ros-build镜像的指定参数的可交互式容器,其命令为:Dockerrun–t-i–v/var/run/docker.sock:/var/run/docker.sock--device=/dev/kvm:/dev/kvm--name=ros-buildros-build步骤2)设置系统环境变量,其设置环境变量命令为:exportBUILD_DI本文档来自技高网...

【技术保护点】
1.一种基于嵌入式系统的RancherOS ros核心模块移植方法,所述方法包括:步骤1)创建基于ros‑build镜像的指定参数的可交互式容器;步骤2)设置系统环境变量并安装版本号为1.5的go命令;步骤3)添加编译工具;步骤4)修改main命名问题及添加cutil.go文件的依赖库;步骤5)交叉编译得到可执行文件。

【技术特征摘要】
1.一种基于嵌入式系统的RancherOSros核心模块移植方法,所述方法包括:步骤1)创建基于ros-build镜像的指定参数的可交互式容器;步骤2)设置系统环境变量并安装版本号为1.5的go命令;步骤3)添加编译工具;步骤4)修改main命名问题及添加cutil.go文件的依赖库;步骤5)交叉编译得到可执行文件。2.根据权利要求1所述的基于嵌入式系统的RancherOSros核心模块移植方法,其特征在于,所述步骤1)中指定参数包括:参数-i,-t,将容器设置为交互模式;参数-v,根据指定路径挂载共享卷;参数--device,允许容器访问指定路径下的设备。3.根据权利要求1所述的基于嵌入式系统的RancherOSros核心模块移植方法,其特征在于,所述步骤2)具体包括:步骤2-1)设置当前路径BUILD_DIR;步骤2-2)设置Go编译器输出的程序的目标架构GOARCH;步骤2-3)设置编译出来的程序所运行的目标操作系统GOOS;步骤2-4)设置编译cgo的时候gcc编译的命令行参数GOGCCFLAGS;步骤2-5)设置GOPATH:执行GO命令时将进行搜索的目录,主要存放包含GO源代码和二进制文件的目录;步骤2-6)设置Go语言的安装目录GOROOT;步骤2-7)设置GOTOOLDIR:Go...

【专利技术属性】
技术研发人员:朱小勇邓丽君郭志川赵然常乐
申请(专利权)人:中国科学院声学研究所上海尚恩华科网络科技股份有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1