我有一个'二进制'的目录(即不编译)文件,只是希望将它们安装到我的目标根文件系统上。
我看过几篇文章,其中没有一篇似乎对我有用。
此配方的所需功能是:
myRecipe / myFiles / - > myRootFs /目录/到/安装
我目前的尝试是:
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文档,它真的很棒!只是找不到这样的例子!
答案 0 :(得分: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"
答案 1 :(得分:2)
请注意,使用简单的递归副本最终会收到主机污染警告,因此您需要使用以下参数进行复制:
do_install() {
[...]
cp --preserve=mode,timestamps -R ${S}${anydir}/Data/* ${D}${anyotherdir}/Data
[...]
}
就像其他秘诀一样,或者只是遵循官方的recommendations以避免所有权和权限问题。
答案 2 :(得分:0)
对于像这样的食谱文件夹:
.
├── 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/* "
答案 3 :(得分:0)
我认为这对你不起作用,因为你忘了添加模式值,在" install -m",
之后参见install命令的手册页: https://linux.die.net/man/1/install
install -m [mode] src destination