web-dev-qa-db-ja.com

yocto / bitbakeレシピを作成して、ディレクトリをターゲットルートファイルシステムにコピーする方法

「バイナリ」(つまりコンパイルされない)ファイルのディレクトリがあり、それらをターゲットのルートファイルシステムにインストールしたいだけです。

私はいくつかの記事を見てきましたが、どれもうまくいかないようです。

このレシピの望ましい機能は次のとおりです。

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

私の現在の試みは:

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のドキュメント全体について文句を言うことはできません。本当に良いです。このようなものの例を見つけることができません!

12
Ben Turner

これらのファイルをターゲットの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"
9
john madieu

単純な再帰的コピーでは、最終的にホスト汚染警告が発生するので、次のパラメーターでコピーする必要があることに注意してください。

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

ポーキーの他のレシピと同じように、または公式に従う recomendations

1
urnenfeld

このようなレシピフォルダーの場合:

.
├── 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/* "
0
PierreOlivier

「install -m」の後にモード値を追加するのを忘れたので、それはうまくいかなかったと思います、

インストールコマンドのmanページを参照してください: https://linux.die.net/man/1/install

install -m [mode] src destination
0
ransh