将随机文件添加到 yocto 图像的根目录中?

Adding random files into root directoy of yocto image?

我们如何添加随机文件,例如jpeg、mp3、.py 文件到某个目录,例如/data/myfiles 在 yocto 中? 到目前为止我所做的步骤是我用 bitbake-layers 创建了一个我自己的图层,我还能够将已经可用的食谱添加到我的图层中,然后它被添加到我的图像中。

我做了 bitbake core-minimal-image,它被构建,然后我可以使用我通过 local.conf 或 .bbappend 文件添加的包。 我找到了这个食谱文件..

SUMMARY = "Copy mksd.sh script to image deployment area"
SECTION = "devel"
LICENSE = "GPLv2"
LIC_FILES_CHKSUM = \
"file://${WORKDIR}/mksd.sh;beginline=4;endline=7;md5=d8d50b7d91345eb72f51bbced7fc791b"
SRC_URI = "file://mksd.sh"

#This package doesn't have any files for the rootfs in it, option needed to create an empty 
# package so when the rootfs image is made it finds the mksd_xxx.deb package and doesn't complain
FILES_${PN} = ""
ALLOW_EMPTY_${PN} = "1"


# Copy script to the deploy area with u-boot, uImage, and rootfs
do_deploy () {
   install -d ${DEPLOY_DIR_IMAGE}
   install -m 0755 ${WORKDIR}/mksd.sh ${DEPLOY_DIR_IMAGE}
}
addtask deploy after do_install

但是现在我对例如我有一个 .jpeg 文件,我希望将它复制到 /data/my 文件目录到我的目标系统中。这意味着我想创建一个名为 /data/myfiles 的目录,然后我想通过配方将图像复制到那里。 因此,当我将图像刻录到我的设备时,它应该会显示在我的设备中吗? 我该怎么做?

我认为最好的选择是用您的文件创建 meta-your-layer/recipes-core/base-files/base-files_%.bbappend

在您的 rootfs 中,您将在何处指定文件及其安装目标。

base-files_3.0.14.bb为例

你不能创建一个简单的食谱来做到这一点吗?这样您就可以管理依赖项或更改它们是否已安装,仅通过 adding/removing 配方。这就是 Yocto 的工作方式。

DESCRIPTION = "File Installer"
LICENSE = "CLOSED"

SRC_URI = " \
    file://filea \
    file://fileb \
    file://filec \
    file://filed \
"

S = "${WORKDIR}"

do_install() {
    install -d ${D}/path
    install ${S}/filea ${D}/path
    install ${S}/fileb ${D}/path
    install ${S}/filec ${D}/path
    install ${S}/filed ${D}/path
}

FILES_${PN} += "/path"