How do I write a yocto/bitbake recipe to copy a directory to the target root file system

前端 未结 4 1399
Happy的楠姐
Happy的楠姐 2021-02-05 08:04

I have a directory of \'binary\' (i.e. not to be compiled) files and just want them to be installed onto my target root file system.

I have looked at several articles,

相关标签:
4条回答
  • 2021-02-05 08:36

    You just have to copy these files into your target rootfs. Do not forget to pakage them if they are not installed in standard locations.

    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)
  • 2021-02-05 08:40

    I think it did not work for you becuase you forgot to add mode value, after "install -m",

    see man page of install command: https://linux.die.net/man/1/install

    install -m [mode] src destination
    
    0 讨论(0)
  • 2021-02-05 08:51

    For a recipe folder like this:

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

    You can use the following recipe to install it on a specific folder into your 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/* "
    
    0 讨论(0)
  • 2021-02-05 08:54

    Take care that with a simple recursive copy, you will end up having host contamination warnings so you would need to copy with the following parameters:

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

    As other recipes in poky do, or just follow the official recommendations to avoid problems with ownership and permissions.

    0 讨论(0)
提交回复
热议问题