我如何编写yocto / bitbake配方将目录复制到目标根文件系统

问题描述 投票:11回答:4

我有一个'binary'(即,不要编译)文件的目录,只希望将它们安装到我的目标根文件系统上。

我看过几篇文章,似乎对我没有用。

此食谱的所需功能是:

myRecipe / myFiles /-> myRootFs / dir /至/安装

我当前的尝试是:

SRC_URI += "file://myDir"

do_install() {
         install -d ${D}/path/to/dir/on/fs
         install -m ${WORKDIR}/myDir ${D}/path/to/dir/on/fs
}

我完全不能抱怨Yocto文档,这真的很好!只是找不到这样的例子!

directory copy yocto bitbake recipe
4个回答
8
投票

您只需将这些文件复制到目标rootfs中。如果它们没有安装在标准位置,请不要忘记包装它们。

SRC_URI += "file://myDir"

do_install() {
    install -d ${D}/path/to/dir/on/fs
    cp -r ${WORKDIR}/myDir ${D}/path/to/dir/on/fs
}
FILES_${PN} += "/path/to/dir/on/fs"

2
投票

请注意,使用简单的递归副本将最终出现主机污染警告,因此您需要使用以下参数进行复制:

do_install() {
     [...]
     cp --preserve=mode,timestamps -R ${S}${anydir}/Data/* ${D}${anyotherdir}/Data
     [...]
}

[就像其他poky中的食谱一样,或者只是遵循官方的recommendations,以避免所有权和权限问题。


-1
投票

对于这样的配方文件夹:

.
├── files
│   ├── a.txt
│   ├── b.c
│   └── Makefile
└── myrecipe.bb

您可以使用以下食谱将其安装到rootfs中的特定文件夹中:

SRC_URI = " file://*"
do_install() {
    install -d ${WORKDIR}/my/dir/on/rootfs
    install -m 0755 ${S}/* ${WORKDIR}/my/dir/on/rootfs/*
}
FILES_${PN} = "/my/dir/on/rootfs/* "

-1
投票

我认为这对您不起作用,因为您在“ install -m”之后忘记添加模式值,]]

请参见安装命令的手册页:https://linux.die.net/man/1/install

install -m [mode] src destination
© www.soinside.com 2019 - 2024. All rights reserved.