问题标签 [yocto-recipe]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
build - Yocto 构建失败,出现与 UnpicklingError 相关的异常:pickle data was truncated
在 openembedded 构建中删除 tmp-dir/cache 和日志文件夹中的某些文件时出现此错误。
bitbucket - 在 Yocto 配方中使用 Bitbucket 应用程序密码通过 https 进行 git repo
在命令行“git clone https://username:app-password@bitbucket.org/dir/repo.git”上有效,其中 app-password 是“由 bitbucket 创建的字母数字字符串”
但是当使用 Yocto Recipe SRC_URI = "git:// username:app-password @bitbucket.org/workspace/repo.git;protocol=https;"
给出错误:“致命:无法读取'https://username@bitbucket.org'的密码:没有这样的设备或地址”。
请告知如何在 Yocto 配方中使用 bitbucket 应用程序密码通过 https 方法提取 git repo?
linux - 将第三方配方工具输出打包到构建主机上的另一个配方中
我对 Yocto/BitBake 还是很陌生,在试图找出在以下情况下使用本机工具的最佳方法时,我有点头疼:
- 我有一个获取和构建第三方库和二进制文件的配方,我们称之为X。
- 我有另一个配方也可以获取和构建第三方库和二进制文件,这些依赖于X的库,我们称之为Y。
- Y需要运行安装后脚本来生成一些配置文件。
- 这些脚本正在调用一些X的二进制文件来生成这些文件,因此我添加了对X-native的依赖,以便能够在构建机器上运行这些脚本。
- 目前,我将这些脚本包含在
do_install[postfuncs]
Y -native配方中,同时将其作为依赖项添加到Y配方中,因为我希望这些文件成为Y包的一部分。
假设我在做什么,直到一切正常(如果没有,请纠正我),我的问题来了:
X的配置/编译方式包括指定它将写入它生成/管理的任何文件的路径(当前基于datadir
前缀)。这意味着构建X-native还将STAGING_DIR_NATIVE
在X配方上下文中为该路径添加前缀。
因此,在使用Y-native配方中的X-native二进制文件后,我最终会在错误的文件中生成文件(即X配方上下文)并且无法轻松检索这些文件,因为它在Y配方上下文之外。STAGING_DIR_NATIVE
我在这里错过了什么吗?
我在创建sysroot后阅读pkg_postinst
并推迟了它们,但如果我希望打包这些配置文件,这不是我所需要的,对吧?
如果没有其他解决方案,我可能会不打包它们并使用它在创建图像/ sdk时生成它们,但这对我来说似乎并不干净。
另外,我不希望修补X源以启用某种运行时输出路径配置。
yocto - 如何在 Yocto 中安装虚拟包的(子)包
设置
我正在使用 Yocto 3.4 “Honister”,并使用以下层:
- openembedded-core ( refspec: yocto-3.4 )
- 元开放嵌入式(参考规范:f632403d1800363ac63a1ad5543278b82c659832)
- 元树莓派(参考规范:1584bddcf31f4bf3acc2304aa8dae927e8bec970)
我创建了自己的distro.conf
,基本上看起来像这样:
问题
我的目标是在发行版范围内安装 libGLESv2.so。mesa
配方提供这样的库:
对于 raspberry-pis,该文件rpi-default-providers.inc
设置了默认提供程序:
因此,应该正确设置从虚拟包到具体提供者的连接。但是(显然)这不会将库部署到最终的 rootfs 中。如何才能做到这一点?
到目前为止我尝试了什么
显而易见的方法是在中按名称安装软件包,distro.conf
如下所示:
这行得通,但老实说,这种方法对我来说有点不对劲。在我看来,这绕过了虚拟包的整个概念。还是我错了?
此外,出于测试目的,我将 weston 安装到图像中。这会将 libGLESv2.so 添加到 rootfs,我试图解决为什么会发生这种情况(并针对我的问题使用相同的方法),但我无法弄清楚。从weston
配方来看,问题的相关部分似乎是:
这会将所有虚拟包添加到 DEPENDS 列表中,但是当我这样做时(例如在我的图像配方中),我看到 mesa 正在构建但库未部署到 rootfs。我看不到libgles2-mesa
这里是怎么拉的。
yocto - 如何在源 poky/oe-init-env 之后显示新的 Yocto 图像选项
假设我有一个新的 yocto 图像调用 stargazer-cmd 我应该编辑什么文件,以便每次我获取 poky/oe-init-env 时它都会显示为用户的构建选项?
我希望在 core-image-minimal 之上添加 stargazer-cmd,我不确定谷歌需要什么以及我需要更改的文件是什么。
embedded - 约克托。如何混合新旧覆盖语法
我们有我们提供给客户的 Yocto 食谱。客户使用不同版本的 yocto 和 Linux 内核。
是否可以为新旧语法提供一个配方?
或者我们应该始终提供 2 个版本的食谱?
yocto - 检查 bbclass 文件中的 VOLATILE_BINDS 内容
我尝试使用IMAGE_FEATURES:append = " read-only-rootfs "
. 为了存储配置,我使用IMAGE_INSTALL:append = " volatile-binds "
并将选定的配置目录设置为一个分区,该分区以读/写方式安装在volatile-binds.bbappend文件中:
默认情况下, . /meta/classes/rootfs-postcommands.bbclassrad_only_rootfs_hook()
中的函数会移动 ssh 配置文件,当配置目录未作为 volatile-binds 挂载时,这很好。/var/run/ssh
我将更新rootfs-postcommands.bbclass并检测 volatile-binds 是否处于活动状态以及/etc/ssh是否包含在 VOLATILE_BINDS 中。第一个检查适用于${@bb.utils.contains("IMAGE_INSTALL", "volatile-binds", "true", "false", d)}
但不幸的是 VOLATILE_BINDS 变量始终为 None 并且检查${@bb.utils.contains("VOLATILE_BINDS", "/etc/ssh", "true", "false", d)}
不起作用。
有谁知道,如何在像rootfs- postcommands.bbclass 这样的 *.bbclass 文件中读取配方变量(如VOLATILE_BINDS ) ?
谢谢
linux - 如何编写 yocto/bitbake 配方来列出一个目录中的所有文件名并一一复制?
我想列出一个目录中的所有文件名并一一复制。在我的 .bb 文件中,我有这个 do_copy() 函数:
但是当我构建它时,我得到了:
似乎列出文件名的行失败了。有任何想法吗?谢谢!
node.js - 如何将 Nodejs 包添加到 Yocto?
我想要一个支持 nodejs 的操作系统。在 layer.conf 文件的 yocto 项目中,我添加了 IMAGE_INSTALL_append = " nodejs" IMAGE_INSTALL_append = " nodejs-npm" ,这导致在烘烤后有一个支持 nodejs 的操作系统。现在我想添加一些 NPM 包,比如 basic-auth 等。请你帮帮我。亲切的问候。
yocto - Yocto 配方不提取存档
我试图在构建系统期间将 .tar.gz 文件解压缩到我的根目录,但由于我不清楚的原因,它不起作用。我以与 meta 中的其他配方相同的方式进行操作(效果很好),但在这种情况下,我在目标系统 root 中有一个空目录。该配方与 tar.gz 同名。
根据Yocto 项目文档和我的其他经验,它应该可以正常工作。我试图手动删除tmp,sstate-cache目录并重建系统,但它没有改变任何东西。配方正在构建中,但/my-app为空。我可以强制提取我的存档吗?
树文件:
我的应用程序.bb