web-dev-qa-db-fra.com

Comment écrire une recette yocto/bitbake pour copier un répertoire dans le système de fichiers racine de targe

J'ai un répertoire de fichiers 'binaires' (c'est-à-dire à ne pas compiler) et je veux juste qu'ils soient installés sur mon système de fichiers racine cible.

J'ai examiné plusieurs articles, dont aucun ne semble fonctionner pour moi.

La fonctionnalité souhaitée de cette recette est:

myRecipe/myFiles/-> myRootFs/dir/to/install

Ma tentative actuelle est:

SRC_URI += "file://myDir"

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

Je ne peux pas me plaindre de la documentation de Yocto, c'est vraiment bien! Je n'arrive pas à trouver un exemple de ce genre!

8
Ben Turner

Il vous suffit de copier ces fichiers dans votre rootfs cible. N'oubliez pas de les emballer s'ils ne sont pas installés dans des emplacements standard.

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"
8
john madieu

Pour un dossier de recette comme celui-ci:

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

Vous pouvez utiliser la recette suivante pour l'installer dans un dossier spécifique de votre 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
PierreOlivier

Je pense que cela n’a pas fonctionné car vous avez oublié d’ajouter de la valeur en mode, après "install -m",

voir la page de manuel de la commande install: https://linux.die.net/man/1/install

install -m [mode] src destination
0
ransh