2016-08-09 23 views
0

我有一个需要一段时间编译的Yocto项目。最终的图像是为了运行我的应用程序,因此,我在自己的图层中有一个自定义配方。可以使用SDK构建Yocto配方吗?

由于构建整个Yocto图像需要几个我们的,我建立一个SDK,所以我可以交叉编译我的应用程序,并将二进制文件传输到正在运行的设备进行测试。

而是编译二进制文件,并具有手动将其传送到设备, 我可以使用Yocto食谱我为我的SDK应用程序,这样我可以“呼”的do_package()写的?如果其他开发人员可以通过SDK简单地构建.deb(假设PACKAGE_CLASSES = "package_deb"local.conf),这可以大大简化我们的工作流程。

谢谢!

+0

据我所知,这是不可能的,但你可以在一个构建服务器上设置一个yocto环境,并让其他开发者运行“bitbake ” – g0hl1n

+0

初始构建过程需要几个小时你第一次运行它。随后的构建将运行得更快(不到一分钟),因为大量构建将被缓存。 – aebudak

+0

目标是不必重建一切。一些开发人员正在虚拟机内部工作,因此即使他们想要有时构建我们的代码,重建yocto也不存在问题。至于共享构建服务器,我们确实有这个,但不能扩展。只有一个'bitbake'(每个项目的git克隆)可以随时运行,或者有多个克隆复制磁盘空间和时间。我只想编译我们自己的代码,而不是整个yocto发行版... –

回答

3

呵呵,bluelightning击败了我一拳。这会教我不刷新。 Anyhoo,这是我的2¢:

是的,看看devtool。 devtool脚本的目标是改进和简化目标设备软件的开发。

首先,有你的开发人员安装扩展SDK(eSDK),这是使用此命令内置:一旦你采购这个SDK

bitbake -c populate_sdk_ext my-image-name 

,运行这些命令:

devtool modify my-recipe-name 
...make your changes to [sdk]/workspace/source/my-recipe-name... 
devtool build my-recipe-name 
devtool package my-recipe-name 

这应该在[sdk]/tmp/deploy/rpm/[arch]/my-recipe-name中生成应用程序包,然后可以将其部署到目标机器。

另外,如果您的目标机器具有网络连接,请查看devtool deploy-target

如果你给我一些关于你的设置的更多细节,我可能会帮助更多。希望这至少能让你指出正确的方向。

+0

谢谢!这正是我所需要的。我已经写好了我的食谱,我主要需要一种方法来构建它,而不需要先建立整个图像。 'devtool build my-recipe-name'似乎正是我所需要的。不幸的是,我很难让它工作。我得到'不能碰到/ qt.conf'。如果我在'meta-qt5/classes/populate_sdk_qt5_base.bbclass'中创建目录,那么sdk会生成,但无法通过'SDK准备失败'进行安装。该日志显示了python + cmake,'ambiguous redirect'和'apt-native'配置错误的错误。可能是因为我在jethro和旧的'meta-qt5'上... –

2

这实际上就是Extensible SDK的设计目的 - 提供预先构建和预配置的环境,并允许您以完全构建系统构建应用程序和其他组件的方式构建应用程序和其他组件。如果在目标上运行ssh服务器,您甚至可以轻松地将输出文件部署到目标设备。

您可以建立与以下命令扩展SDK:

bitbake -c populate_sdk_ext <imagename> 

为您不妨读一读新SDK manual更多信息。

相关问题