标签: openembedded

Yocto 安装后不需要的文件如何删除?

我正在尝试为 Yocto 中的自定义库创建一个配方。我目前收到此错误:

ERROR: ... do_package: QA Issue: pot-plugin: Files/directories were installed but not shipped in any package:
  /usr/lib/qt5/plugins/mediaservice/a.so.1.0
  /usr/lib/qt5/plugins/mediaservice/a.so.1
Please set FILES such that these items are packaged. Alternatively if they are unneeded, avoid installing them or delete them within do_install.
Run Code Online (Sandbox Code Playgroud)

我已经设置了这些,FILES_${PN}但在这种情况下,Yocto 抱怨那些符号链接太多,并且不属于该包。实际上,正确的做法是将它们也从 sysroot 本身中删除。因此,我尝试定义该do_install步骤,但在创建包之前找不到如何删除这些步骤。我做了类似的事情:

do_install {
   rm <some_path>/a.so.1.0
   rm <some_path>/a.so.1
}
Run Code Online (Sandbox Code Playgroud)

但我找不到正确的使用路径。有人可以解释这是否是解决问题的正确方法,如果是,我应该使用什么路径在安装这些文件之后和创建包之前删除这些文件?谢谢!

openembedded bitbake yocto yocto-recipe

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

嵌入式Linux中只有一种--hash-style.为什么?

我正在尝试使用基于OpenEmbedded的Arago构建并部署到rootfs中的软件包.不幸的是,软件包包括预构建的共享库.据我所知,Arago构建了整个Linux发行版--hash-style=gnu,而我建议使用这些共享库--hash-style=sysv,我怀疑.至少构建在"ELF二进制文件中没有GNU_HASH"QA问题中停止.

我明白什么是哈希.但我想我不明白它们在系统运行时是如何被使用的.

为什么系统中的所有ELF都需要一个哈希样式?为什么动态链接器不能动态确定哈希样式而只是使用它?

ld embedded-linux openembedded

6
推荐指数
1
解决办法
4754
查看次数

Bitbake 错误 - 没有 RPROVIDES

我想将应用程序拆分为多个包。基本上我只想添加另一个可以使用特定图像构建的图像。

在与我添加的应用程序关联的 .bb 文件中:

SRC_URI = " \
          ...
          file://api.conf \
          file://script.sh \
          "

PACKAGES =+ "${PN} ${PN}-tools"

FILES_${PN}-tools = "${bindir}/mrvl/tools/script.sh \
                     ${sysconfdir}/mrvl/api.conf \
                    "
Run Code Online (Sandbox Code Playgroud)

然后,我在我的 bb 图像测试中添加了以下行

IMAGE_INSTALL += " mrvl-tools"
Run Code Online (Sandbox Code Playgroud)

我正在使用命令 bitbake image-test 返回:

ERROR: Nothing RPROVIDES 'mrvl-tools' (but /home/usr/../image-test.bb RDEPENDS on or otherwise requires it)
NOTE: Runtime target 'mrvl-tools' is unbuildable, removing...
Missing or unbuildable dependency chain was: ['mrvl-tools']
ERROR: Required build target 'image-test' has no buildable providers.
Missing or unbuildable dependency chain was: ['image-test', 'mrvl-tools']
Run Code Online (Sandbox Code Playgroud)

我遵循了 …

packages openembedded bitbake yocto

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

为什么bitbake忽略了我的makefile中的CFLAGS?

我的应用程序的makefile为CFLAGS添加了几个东西,如下所示:

CFLAGS += -Wall -std=gnu99
Run Code Online (Sandbox Code Playgroud)

但是当我使用OpenEmbedded BitBake构建应用程序时,BitBake显然忽略了makefile中的CFLAGS变量.

我发现在应用程序的配方中添加以下行会导致在构建期间通过BitBake使用标志:

EXTRA_OEMAKE += "CFLAGS='-Wall -std=gnu99'"
Run Code Online (Sandbox Code Playgroud)

为什么BitBake会忽略makefile中的CFLAGS?此外,是否有比将上述线添加到配方更好的解决方案?

我更喜欢使用makefile的CFLAGS来消除冗余.

c linux makefile openembedded bitbake

6
推荐指数
1
解决办法
9509
查看次数

如何在Yocto Fido(poky)中使/ var/log持久化

我试图/var/log坚持我的fido构建.poky的默认设置是,有一个符号链接,/var其中包含点log -> volatile/log.volatile是一个安装在tmpfs上.

到目前为止,我发现符号链接应该由base-files配方创建:

volatiles = "log tmp"

do_install () {
  ...
    for d in ${volatiles}; do
        ln -sf volatile/$d ${D}${localstatedir}/$d
    done
  ...
Run Code Online (Sandbox Code Playgroud)

我附加了基本文件配方,因此没有创建链接,但它仍然在我的rootfs中出现.那么它来自哪里?我怀疑它可能fs-perms.txt与它有关.但我试图创造一个没有

${localstatedir}/log    link    volatile/log
Run Code Online (Sandbox Code Playgroud)

线,它仍然创建了该链接.有线索吗?

embedded-linux openembedded bitbake yocto

6
推荐指数
2
解决办法
3104
查看次数

我如何扩展其他人的回购清单?

在我的项目中,我想为汽车级 Linux 发行版采用现有的 Yocto 设置,并为我们自己的组件添加一些带有配方的层。

他们的 gerrit 站点上有一个公开可用的清单文件 。我想做的是基本上

<manifest>
    <include url="<url of AGL manifest>" />
    <remote name="mysite" fetch="ssh://gerrit.mysite.com" />
    <project name="mylayer1" path="mylayer1" />
    <project name="mylayer2" path="mylayer2" />
</manifest>
Run Code Online (Sandbox Code Playgroud)

目的是repo init指向我的清单的命令首先获取“包含”清单中提到的所有存储库,然后继续获取我自己的所有元层。

问题是该include元素用于在repo init命令行上指定的同一存储库中包含其他清单。

可以简单地将他们的清单复制到我自己的存储库中,使用不同的名称,并在旁边创建我自己的清单。或者我可以复制他们的文件并进行编辑。

但是维护它会很痛苦并且极易出错。特别是上游清单不仅用于指定存储库,还用于将每个存储库固定到特定提交,作为 Yocto 中的一种版本控制形式。

我不敢相信这么明显的用例还没有被考虑和解决。

那么,冒着因“太宽泛”或请求建议而被关闭的风险,有人已经解决了这个问题吗?如果是这样,如何?

openembedded yocto repo

6
推荐指数
1
解决办法
1762
查看次数

openembedded-core 和 poky 的区别

我们想使用支持 SELinux 的 Yocto 构建嵌入式 Linux 设备。

我正在查看 meta-selinux 层依赖项。

依赖关系

该层依赖于 openembedded-core 元数据以及来自 meta-openembedded 存储库的 meta-python 和 meta-oe 层。

当它提到“openembedded-core”时,它是否意味着 poky

git://git.yoctoproject.org/poky

或者

https://github.com/openembedded/openembedded-core

poky 和 ​​openembedded-core 有什么区别,我在 openembedded-core 看不到 bitbake

linux embedded-linux openembedded yocto

6
推荐指数
1
解决办法
1547
查看次数

BBCLASSEXTEND="本机nativesdk"

查了官方文档,还是不明白recipe中的这个意思。

\n\n
BBCLASSEXTEND="native nativesdk"\n
Run Code Online (Sandbox Code Playgroud)\n

build openembedded yocto

6
推荐指数
1
解决办法
6179
查看次数

构建时如何添加更多线程?

做的时候

bitbake core-image-xxxx

构建任务将自动选择 8 个线程(因为我的 CPU 有 8 个核心)来构建映像。

我的系统有 72GB RAM,我可以强制bitbake运行更多线程吗?

或者有什么方法可以要求bitbake使用更多内存吗?

memory openembedded yocto

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

yocto - 用户代理:回退到“libdnf”:无法检测操作系统或基础架构

我正在使用Yocto (Hardknott)构建映像并创建包源(rpm 包)。图像依赖项之一是u-boot-karo它是 karo 模块的自定义 u-boot),并且此配方似乎与libdnf. 谁能帮我解决这个问题,下面您将在 do_rootfs.log 中找到有关该错误的更多详细信息

NOTE: ###### Generate rootfs #######
NOTE: Executing '/amr-bsp/build/tmp/work/amr1-poky-linux-gnueabi/amr-image-dev/1.0-r0/recipe-sysroot-native/usr/bin/createrepo_c --update -q /amr-bsp/build/tmp/work/amr1-poky-linux-gnueabi/amr-image-dev/1.0-r0/oe-rootfs-repo' ...
NOTE: Running /amr-bsp/build/tmp/work/amr1-poky-linux-gnueabi/amr-image-dev/1.0-r0/recipe-sysroot-native/usr/bin/dnf -v --rpmverbosity=info -y -c /amr-bsp/build/tmp/work/amr1-poky-linux-gnueabi/amr-image-dev/1.0-r0/rootfs/etc/dnf/dnf.conf --setopt=reposdir=/amr-bsp/build/tmp/work/amr1-poky-linux-gnueabi/amr-image-dev/1.0-r0/rootfs/etc/yum.repos.d --installroot=/amr-bsp/build/tmp/work/amr1-poky-linux-gnueabi/amr-image-dev/1.0-r0/rootfs --setopt=logdir=/amr-bsp/build/tmp/work/amr1-poky-linux-gnueabi/amr-image-dev/1.0-r0/temp --repofrompath=oe-repo,/amr-bsp/build/tmp/work/amr1-poky-linux-gnueabi/amr-image-dev/1.0-r0/oe-rootfs-repo makecache --refresh
DEBUG: DNF version: 4.6.0
cachedir: /amr-bsp/build/tmp/work/amr1-poky-linux-gnueabi/amr-image-dev/1.0-r0/rootfs/var/cache/dnf
Added oe-repo repo from /amr-bsp/build/tmp/work/amr1-poky-linux-gnueabi/amr-image-dev/1.0-r0/oe-rootfs-repo
Making cache files for all metadata files.
oe-repo: has expired and will be refreshed.
repo: downloading from remote: oe-repo
oe-repo                                         343 MB/s | 1.2 MB …
Run Code Online (Sandbox Code Playgroud)

embedded-linux openembedded yocto

6
推荐指数
0
解决办法
1775
查看次数

标签 统计

openembedded ×10

yocto ×8

bitbake ×4

embedded-linux ×4

linux ×2

build ×1

c ×1

ld ×1

makefile ×1

memory ×1

packages ×1

repo ×1

yocto-recipe ×1