首页 > 解决方案 > 安装多个文件夹

问题描述

我对整个 Yocto 项目相对陌生。

基本上我想向图像添加多个文件夹:

do_install() {

    install -d ${D}/etc/wpa_supplicant
    install -m 0777 wpa_supplicant-wired-eth0.conf ${D}/etc/wpa_supplicant
    install -d ${D}/mydata
    install -d ${D}/mydata/certs
}

wpa_supplicant 需要 /etc/wpa_supplicant 中的 conf 文件。所以我安装文件夹并在那里复制我的自定义 conf 文件。

这很好用

同时,我想在 /mydata/certs 下安装一个证书文件夹,稍后我可以在其中为 wpa_supplicant 上传我的证书。

但是当我这样做时,Yocto 告诉我旧的安装与发货错误

mywpa-1.0-r0 do_package: QA Issue: mywpa: Files/directories were installed but not shipped in any package:
  /mydata
  /mydata/certs
Please set FILES such that these items are packaged. Alternatively if they are unneeded, avoid installing them or delete them within do_install.
mywpa: 2 installed and not shipped files. [installed-vs-shipped]
ERROR: mywpa-1.0-r0 do_package: Fatal QA errors found, failing task.
ERROR: mywpa-1.0-r0 do_package: Function failed: do_package
ERROR: Logfile of failure stored in: /home/yocto/yocto/build/tmp/work/cortexa7hf-neon-vfpv4-phytec-linux-gnueabi/mywpa/1.0-r0/temp/log.do_package.31833
ERROR: Task (/home/yocto/yocto/sources/poky/../meta-mydata/meta-mywpa/recipes-mywpa/mywpa/mywpa.bb:do_package) failed with exit code '1'

以前我刚工作,每个食谱只有一个文件夹,然后添加

FILES_${PN} += "${sysconfdir}/etc"

所以我的问题基本上是:如何在两个不同的目录中安装两个文件夹?或者在一个食谱中是不可能的,我必须使用两个食谱?

标签: yocto

解决方案


表达式几乎可以是任意复杂的FILES_${PN} +=,只要它在解析时是静态的。所以你应该能够根据需要扩展它:

FILES_${PN} += " \
  ${sysconfdir}/etc/wpa_supplicant \
  /mydata \
"

如果这种方法有任何问题,请更新问题,然后我可以调查一下。


推荐阅读