2016-11-21 147 views
5

我有一个'binary'目录(即不被编译)的文件,只是希望它们被安装到我的目标根文件系统。如何编写一个yocto/bitbake配方来将目录复制到根目录根文件系统

我看了几篇文章,其中没有一篇似乎适用于我。

这个配方所需的功能是:

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文档,这真的很好!就是找不到这样的例子!

+0

对于一个很好的例子看psplash_git.bb - > do_install_append – Stephano

+0

修改此行“install -m $ {WORKDIR}/MYDIR $ {d} /路径/到/ DIR /上/ FS “to”install -m $ {WORKDIR}/myDir/* $ {D}/path/to/dir/on/fs“ –

回答

6

你只需要将这些文件复制到你的目标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" 
+0

这似乎是复制目录,但没有其中的文件或其他目录。我假设我必须明确地陈述所有这些。有没有一个明智的,快速的方法来做到这一点? –

+0

当然是的。这就是为什么我使用'cp -r'进行递归复制的原因。 –

+0

我用cp -r,它把'myDir'目录复制到FS但没有其内容... –

0

对于这样的食谱文件夹:

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

您可以使用下面的方法对特定文件夹中安装到你的根文件系统:

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/* " 
0

我认为它没有为你工作,因为你忘了添加模式值,在“install -m”之后,

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

install -m [mode] src destination 
相关问题