【问题标题】:Yocto bitbake build error when adding fftw package添加 fftw 包时 Yocto bitbake 构建错误
【发布时间】:2020-11-03 18:43:50
【问题描述】:

我正在使用 Yocto Warrior 版本为 Dart-imx8m SOM 构建 linux。文档可以在这里找到:https://variwiki.com/index.php?title=DART-MX8M_Yocto&release=RELEASE_WARRIOR_V1.1_DART-MX8M

我想添加配方在 meta-oe 层的 fftw 包。每当我在我的 local.conf 文件中添加这个包时,我都会收到有关 dnf 相关任务的 bitbake 错误。

我在我的 local.conf 文件中添加这样的包:IMAGE_INSTALL_append = " fftw"

使用 bitbake fsl-image-gui 构建图像时出现以下错误:

ERROR: fsl-image-gui-1.0-r0 do_rootfs: Could not invoke dnf. Command '/home/safetyn/safetynYoctoGenerator/warrior/var-fsl-yocto/build_xwayland/tmp/work/imx8mq_var_dart-poky-linux/fsl-image-gui/1.0-r0/recipe-sysroot-native/usr/bin/dnf -v --rpmverbosity=info -y -c /home/safetyn/safetynYoctoGenerator/warrior/var-fsl-yocto/build_xwayland/tmp/work/imx8mq_var_dart-poky-linux/fsl-image-gui/1.0-r0/rootfs/etc/dnf/dnf.conf --setopt=reposdir=/home/safetyn/safetynYoctoGenerator/warrior/var-fsl-yocto/build_xwayland/tmp/work/imx8mq_var_dart-poky-linux/fsl-image-gui/1.0-r0/rootfs/etc/yum.repos.d --installroot=/home/safetyn/safetynYoctoGenerator/warrior/var-fsl-yocto/build_xwayland/tmp/work/imx8mq_var_dart-poky-linux/fsl-image-gui/1.0-r0/rootfs --setopt=logdir=/home/safetyn/safetynYoctoGenerator/warrior/var-fsl-yocto/build_xwayland/tmp/work/imx8mq_var_dart-poky-linux/fsl-image-gui/1.0-r0/temp --repofrompath=oe-repo,/home/safetyn/safetynYoctoGenerator/warrior/var-fsl-yocto/build_xwayland/tmp/work/imx8mq_var_dart-poky-linux/fsl-image-gui/1.0-r0/oe-rootfs-repo --nogpgcheck install packagegroup-core-tools-profile packagegroup-fsl-tools-audio packagegroup-core-ssh-dropbear tree rpm packagegroup-fsl-tools-benchmark boost gstreamer1.0 packagegroup-fsl-tools-gpu packagegroup-fsl-gstreamer1.0 psplash gpsd packagegroup-base-extended collectd kernel-image-4.19.35-imx8mq+gdc7a2fd packagegroup-core-tools-testapps packagegroup-core-boot tcf-agent packagegroup-fsl-tools-gpu-external packagegroup-core-full-cmdline packagegroup-tools-bluetooth packagegroup-fsl-tools-testapps opencv fftw libsdl-1.2-0 packagegroup-fsl-gstreamer1.0-full lftp packagegroup-core-tools-debug libgpiod2 dnf weston-init run-postinsts mosquitto packagegroup-core-nfs-server sshfs-fuse spitools kernel-devicetree android-tools htop poco tmux openssh-sftp-server weston-xwayland xterm locale-base-en-us locale-base-en-gb' returned 1:
DNF version: 4.1.0
cachedir: /home/safetyn/safetynYoctoGenerator/warrior/var-fsl-yocto/build_xwayland/tmp/work/imx8mq_var_dart-poky-linux/fsl-image-gui/1.0-r0/rootfs/var/cache/dnf
Added oe-repo repo from /home/safetyn/safetynYoctoGenerator/warrior/var-fsl-yocto/build_xwayland/tmp/work/imx8mq_var_dart-poky-linux/fsl-image-gui/1.0-r0/oe-rootfs-repo
repo: using cache for: oe-repo
not found other for: 
not found modules for: 
not found deltainfo for: 
not found updateinfo for: 
oe-repo: using metadata from Wed 28 Oct 2020 09:16:57 AM UTC.
Last metadata expiration check: 0:00:01 ago on Wed 28 Oct 2020 09:16:57 AM UTC.
No module defaults found
No match for argument: fftw
Error: Unable to find a match

ERROR: fsl-image-gui-1.0-r0 do_rootfs: 
ERROR: fsl-image-gui-1.0-r0 do_rootfs: Function failed: do_rootfs
ERROR: Logfile of failure stored in: /home/safetyn/safetynYoctoGenerator/warrior/var-fsl-yocto/build_xwayland/tmp/work/imx8mq_var_dart-poky-linux/fsl-image-gui/1.0-r0/temp/log.do_rootfs.2614
ERROR: Task (/home/safetyn/safetynYoctoGenerator/warrior/var-fsl-yocto/sources/meta-fsl-bsp-release/imx/meta-sdk/recipes-fsl/images/fsl-image-gui.bb:do_rootfs) failed with exit code '1'

你知道这个错误是从哪里来的吗?

谢谢,

保罗

编辑

找到了一种方法可以为感兴趣的人编译它。 (灵感来自Yocto build for a static library fails with error "No Match Found"

我编辑了我的 *.bb 文件并添加了ALLOW_EMPTY_${PN} = "1"

我不确定我是否完全理解它,但看起来 dnf 包管理器需要为所有添加的包创建文件夹,即使是空的。 https://www.yoctoproject.org/docs/latest/ref-manual/ref-manual.html#var-ALLOW_EMPTY

【问题讨论】:

  • 请注意,ALLOW_EMPTY 更改可能不会包含您的 rootfs 中的任何文件。发生的情况是 RPM fftw 是在没有任何文件的情况下创建的。如果没有 ALLOW_EMPTY,则不会创建此类 RPM 文件。现在您有了一个 RPM,它将被安装,但有什么意义呢?
  • 是的,我现在意识到解决方法是无用的。我的误解是 fftw 是一个食谱,但这些是我感兴趣的包(libfftw)。

标签: linux embedded-linux yocto bitbake


【解决方案1】:

fftw recipe 设置为创建几个不同的包 (RPM),例如 libfftw、libfftwl、libfftwf、fftw-wisdom、fftwl-wisdom、fftwf-wisdom 和 fftw-wisdom-to-conf。 您可能想要添加其中的一个或多个。似乎没有真正的 fftw 包。

请务必记住,IMAGE_INSTALL 和 RDEPEND 列出了包命名空间中的项目,而 DEPENDS 列出了配方命名空间中的项目。

如果您不确定要安装哪个包,您可以检查 tmp/work 中 fftw 的 packages-split 文件夹,以查看哪个包中包含哪些文件。

【讨论】:

  • 非常感谢您的回答,您让我更清楚了!我只想问:如何在编译之前列出可用的包,有什么办法吗?
  • 每个配方都在 PACKAGES 变量中列出了它的包。所以'bitbake -e fftw | grep PACKAGES' 应该向您显示可用的软件包。每个包中放入的文件用 FILES_ 变量(例如 FILE_${PN} 或 FILES_libfftw )中的 glob 表示。
猜你喜欢
  • 1970-01-01
  • 2015-06-04
  • 2021-11-18
  • 1970-01-01
  • 1970-01-01
  • 2020-06-21
  • 2022-08-23
  • 1970-01-01
  • 2020-01-05
相关资源
最近更新 更多