首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将外部构建的应用程序包含到Yocto项目/OpenEmbedded Linux内核映像中

如何将外部构建的应用程序包含到Yocto项目/OpenEmbedded Linux内核映像中
EN

Stack Overflow用户
提问于 2021-06-07 18:54:18
回答 1查看 293关注 0票数 1

我有一个C/C++应用程序,最初是几年前为LynxOs构建的。应用程序所针对的硬件现在已经结束了,我的任务是从使用嵌入式linux内核的Abaco将应用程序移植到PPC11A powerpc板上。

我有一个来自Abaco的董事会支持包,它构建在Yocto项目的一个旧版本(2.3.3)上,我已经能够用BSP构建一个内核映像。我还能够从构建目录创建跨工具链安装程序,并且能够编译/链接应用程序和跨工具链。

此时,我有一个用于内核映像构建的构建目录,并且我为应用程序拥有一个完全独立的构建区域。现在,我试图弄清楚我需要做什么,以便将应用程序的可执行文件、库、配置文件等集成到内核映像中。

请注意,当谈到Yocto项目和OE时,我是个新手,到目前为止,我所能做的一切都是基于我在Yocto文档、在线论坛,甚至是我购买的一本书中所读到的。我已经发现了很多关于如何在应用程序开发中设置和使用Eclipse的信息,但在我正在工作的环境中,这是不可能的。

对于我所读到的内容,我假设我需要(或者应该)为我的应用程序创建一个新的层,然后我需要创建某种方法来将应用程序安装到内核的文件系统中。我确实在一本书中找到了一个例子,其中我读到了一个使用bin_package获取、解压缩和安装外部构建的包的配方,这基本上是我需要做的事情,但我的应用程序目前不是作为软件包构建的。

附加说明我正在使用的应用程序是一个简单的makefile应用程序(即没有自动工具),由于各种原因,它将构建在嵌入式linux内核映像构建之外。我只需要了解如何编写一个将应用程序的可执行文件、库、配置文件和数据文件(所有本地文件)安装到内核映像的根文件系统的配方。

任何建议,具体的例子,或链接到其他来源,我可能还没有看到,将非常感谢。

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2021-06-08 09:49:52

您是对的,最佳实践总是为您的项目创建新的层,其中包含特定C++应用程序的配方以及其他项目需求。

您可以使用以下方法创建一个简单的层:

代码语言:javascript
复制
bitbake-layers create-layer meta-custom-layer

然后将其添加到您的bblayers.conf文件中:

代码语言:javascript
复制
bitbake-layers add-layer meta-custom-layer

现在您需要为您的应用程序创建一个菜谱。您的应用程序是用C++编写的,因此您必须提到它是使用简单的Makefile还是cmake。

了解构建类型将帮助您创建您的菜谱,因为Yocto有一个现成的类,这些类对于配置和构建众所周知的构建类型非常有用。

Cmake配方的一个很好的例子是这里。Makefile (自动工具)配方的一个很好的例子是这里

如果不想使用自动Yocto类,可以创建自己的构建过程。在这个问题上,我们可以找到一个完美的答案,这里有很多很好的例子。

另一件事是,您需要指定应用程序的源,它可以来自git存储库或本地文件。这两种情况都在前面的示例链接中。

正确构建完最后的菜谱之后,您可以关注do_install函数,您可以指定将应用程序集成到rootfs中的位置。

最后,您可以为您的项目创建一个自定义映像以添加您的菜谱。通过Toradex创建食谱、层、与内核等相关的其他示例,可以找到一个非常详细的示例,包括这里

我希望这将有助于你更多地了解图层,食谱,..etc。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67877253

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档