标签: yocto

配方为其他开发人员部署.ipk

我有一个配方(比如my_package_1.0.bb),用于构建库并使用我需要的库和头来填充sysroot进行开发.我还看到我的包的.ipk是在build/tmp/deploy/ipk /下创建的.

我的要求是,我想共享库,标题和在我的客户的sysroot目录中进行部署的配方(用于开发),但不是我的包的源代码.处理这个问题的最佳方法是什么?

有没有办法分享.ipk和一些安装.ipk的方法?

PS:客户打算使用我的标题和库中的接口开发应用程序.客户没有许可我的包的来源.

recipe openembedded bitbake yocto

8
推荐指数
1
解决办法
3904
查看次数

如何在yocto / openembedded项目中添加更多python模块?

我想在我的yocto / openembedded项目中添加更多的python模块,但是我不确定该怎么做?我希望添加flask及其依赖项。

python linux openembedded bitbake yocto

8
推荐指数
3
解决办法
1万
查看次数

为什么yocto bblayers.conf文件使用绝对路径?

Yocto计划允许在大多数的配置文件,但没有内使用相对路径的./build/conf/bblayers.conf文件.什么是阻止使用的任何东西,但对于绝对路径的原因BBLAYERSBBLAYERS_NON_REMOVABLE变量?

我查看了yocto 2.0版(当前版本)的BitBake用户手册,但这并没有解释推理.我还检查了一些较旧的手动版本,但在谈论bblayers.conf文件或BBLAYERS变量时似乎没有提到推理.同样的文件还包含BBPATH = "${TOPDIR}"至少动态分配的文件,而不是远离根yotco目录.

我最好的猜测是bblayers.conf文件特定于它正在运行的系统.这将使它不适合通过源代码控制在开发人员之间共享,绝对路径会强制人们在收到副本时编辑文件.这似乎不是一个很好的理由,因此这个问题.

configuration-files absolute-path bitbake yocto

8
推荐指数
3
解决办法
5168
查看次数

带有cmake工具链文件的Yocto SDK

我提供了一个Yocto SDK来为嵌入式目标交叉构建应用程序.应用程序本身是使用CMake构建的.SDK安装脚本提供了许多必要的环境变量(如交叉编译器的位置,sysroot等),到目前为止,它足以构建应用程序.

但是,最近应用程序依赖于Boost库(通过find_package(Boost REQUIRED)CMakeLists.txt中的命令).现在,CMake抱怨它无法找到库,即使它已安装在SDK sysroot中.但是,如果我直接在Yocto中构建应用程序,它可以正常工作.

经过一些研究后发现,Yocto生成了一个toolchain.cmake添加到cmake调用的文件.在此文件中,CMAKE_FIND_ROOT_PATH设置了变量,CMake需要查找库.使用这样的工具链文件,我也可以使用SDK构建.

现在我想知道Yocto是否提供了使用SDK导出这样一个工具链文件的任何机制.或者,如果SDK提供了一个脚本或其他东西,可以直接在SDK构建主机上自动创建工具链文件.

或者我应该告诉SDK的用户手动创建工具链文件并将其添加到他们的cmake调用?

sdk cmake toolchain yocto

8
推荐指数
1
解决办法
6436
查看次数

有没有办法检查Yocto映像中将安装的软件包的确切列表?

在基于Yocto的Embedded Linux发行版中,我真的很感兴趣,可以在执行映像构建配方之前,从将要构建并安装到映像文件的每个相关层中查找软件包/配方/内核模块的完整列表:

bitbake my-image-minimal
Run Code Online (Sandbox Code Playgroud)

有没有办法做到这一点?在这方面的任何指导是值得赞赏的。

提前致谢。

embedded-linux bitbake yocto

8
推荐指数
3
解决办法
6772
查看次数

Yocto/bitbake/OpenEmbedded:build/conf/local.conf内容的最佳位置?

我正在尝试yocto(2.0,jethro),我想从头开始构建一个图像core-image-minimal.这很好用.

每个网站都提到build/config/local.conf用我的自定义(部分)修改文件.例如,目标机器(通过MACHINE)或某些全局设置(通过EXTRA_IMAGE_FEATURES).

我还需要修改一些特定的包,其方法是创建一个自定义层.到现在为止还挺好.

我不明白的是如何将我的所有配置"保存"到版本控制.我希望我更改的所有内容都位于我可以提交的文件中,以便其他任何人都可以重现完全相同的构建(甚至可以为该项目做出贡献).几乎所有东西build/config/local.conf都违背了这一目标; 该文件位于"构建"目录下,所以我不能只是克隆一个git repo并启动构建...

它真的是yocto项目的工作方式吗?或者我错过了一个不同的配置文件,我需要放置这些设置?我虽然可以将所有这些放在自定义图层中,但它似乎不起作用......

有什么想法或建议吗?

谢谢!

openembedded yocto

7
推荐指数
2
解决办法
2115
查看次数

如何配置yocto使用最新的git commit?

我是一个非常懒惰的人.在处理硬件/软件项目时,软件会永久更改.在这个开发阶段,更改配方中的commit/reversion-tags非常讨厌.我希望Yocto获取最新的git提交.这可能/如何做到这一点?我的示例食谱:

SUMMARY = "my test"
SECTION = "test"
LICENSE = "CLOSED"

inherit cmake
SRCREV = "f9bdbd6c631f07e427c010086c7c26a95eb2924e"

SRC_URI = "gitsm://myGit/mytest;protocol=http;branch=develop"

S = "${WORKDIR}/git/"
Run Code Online (Sandbox Code Playgroud)

git recipe bitbake yocto

7
推荐指数
1
解决办法
6638
查看次数

Yocto中的Python 3在Raspberry Pi上非常慢

我们使用Python 2作为嵌入式应用程序,我们目前正在Raspberry Pi上进行原型设计.它有点慢,但可以接受.

现在我们已经将应用程序移植到Python 3.但由于某种原因,应用程序运行速度比使用Python 2慢大约4倍!我期待Python 3有点慢,但不是这样的!

我们的Linux发行版基于Yocto 2.2 Morty,我们使用默认的Python 3.5.2配方,没有自定义.我们还使用了meta-raspberrypi层来实现Raspberry兼容性.

我试着计时"pip3 --help"并得到以下结果:

$ time pip3 --help >/dev/null

real    0m22.686s
user    0m22.210s
sys     0m0.420s
Run Code Online (Sandbox Code Playgroud)

然后我使用最新的Raspbian发行版在相同的硬件(同样的SD卡)上尝试相同的测试:

$ time pip3 --help >/dev/null

real    0m6.874s
user    0m6.530s
sys     0m0.310s

$ time pip --help >/dev/null

real    0m4.329s
user    0m4.000s
sys     0m0.300s
Run Code Online (Sandbox Code Playgroud)

Python 2点比Python 3快一点,但最重要的是pip3在Raspbian上的运行速度比在Yocto上快3倍!

测试是非常可重复的,因此它们不是由pyc生成或缓存或类似的东西引起的.

有任何想法如何让Yocto像Raspbian一样快?

更新:

下面有一些关于Raspbian与Yocto中不同版本的Python和Pip的讨论,所以我仅使用Python标准库创建了一个新的基准:

Yocto 2.2 Morty:

sh-4.3# time python3 --version
Python 3.5.2

real    0m0.024s
user    0m0.010s
sys     0m0.000s
sh-4.3# time python3 -c "import asyncio"

real    0m3.439s
user    0m3.300s
sys …
Run Code Online (Sandbox Code Playgroud)

python python-3.x raspberry-pi raspbian yocto

7
推荐指数
1
解决办法
915
查看次数

Yocto Project和OpenEmbedded之间的区别?

关于Yocto项目常见问题:

Yocto Project和OpenEmbedded共享一个名为openembedded-core的核心元数据集合.但是,这两个组织仍然是分开的,每个组织都有自己的重点.OpenEmbedded为各种体系结构,功能和应用程序提供了一整套元数据.Yocto项目致力于为核心架构和特定板提供功能强大,易于使用,可互操作,经过良好测试的工具,元数据和板级支持包(BSP).

我还没有得到任何清楚.这两个框架旨在构建Linux发行版.但我想知道它们具体区别于什么.不仅在技术上,而且在客观上,所以我可以争论为什么选择一个或另一个.

而且,为什么Yocto如此突出?尽管OE是第一个构建框架.

ps:我曾与Yocto Project合作过,但与OE合作过.

openembedded yocto

7
推荐指数
1
解决办法
2330
查看次数

适用于NVIDIA Jetson Nano的PyTorch的Yocto Warrior Bitbake食谱

我正在尝试为Python 3 PyTorch创建一个简单的Yocto Python食谱。目标是Yocto从meta-tegra层为NVIDIA Jetson Nano制作的SD卡映像。没有这些配方,我就可以成功地从meta-tegra编译并引导映像。

NVIDIA本身已经编译并发布了“ .whl” Python软件包,可以在以下位置找到它们:https ://devtalk.nvidia.com/default/topic/1048776/official-tensorflow-for-jetson-nano-/

使用他们的构建说明,我尝试编写一个Bitbake配方来安装PyTorch,如下所示:

SUMMARY = "Facebook PyTorch AI"
DESCRIPTION = "Facebook PyTorch AI"
HOMEPAGE = "https://pytorch.org/"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=acf4d595f99e159bf31797aa872aef57"

inherit pypi
inherit setuptools3

#BBCLASSEXTEND = "native nativesdk"

DEPENDS += "python3-pytest-runner-native python3-pyyaml-native cmake-native"

do_configure_prepend() {
  USE_NCCL=0
  USE_DISTRIBUTED=0
  TORCH_CUDA_ARCH_LIST="5.3;6.2;7.2"
}

do_compile_prepend() {
  USE_NCCL=0
  USE_DISTRIBUTED=0
  TORCH_CUDA_ARCH_LIST="5.3;6.2;7.2"
}

SRC_URI = "gitsm://github.com/pytorch/pytorch.git;protocol=https"
SRCREV = "a3346e100e7f4e7ec90f18b7befcccc47d5a1c82"

S = "${WORKDIR}/git"
Run Code Online (Sandbox Code Playgroud)

问题是我遇到了以下错误。我认为这与我的环境变量未被获取有关,因为错误包括“ -DUSE_CUDA = False”,但是当我查看bitbake环境(bitbake -e)时,它似乎在那里。

这是错误:

**NOTE: Executing SetScene Tasks
NOTE: Executing RunQueue Tasks
ERROR: …
Run Code Online (Sandbox Code Playgroud)

python linux python-3.x bitbake yocto

7
推荐指数
1
解决办法
278
查看次数