「バイナリ」(つまりコンパイルされない)ファイルのディレクトリがあり、それらをターゲットのルートファイルシステムにインストールしたいだけです。
私はいくつかの記事を見てきましたが、どれもうまくいかないようです。
このレシピの望ましい機能は次のとおりです。
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のドキュメント全体について文句を言うことはできません。本当に良いです。このようなものの例を見つけることができません!
これらのファイルをターゲットの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"
単純な再帰的コピーでは、最終的にホスト汚染警告が発生するので、次のパラメーターでコピーする必要があることに注意してください。
do_install() {
[...]
cp --preserve=mode,timestamps -R ${S}${anydir}/Data/* ${D}${anyotherdir}/Data
[...]
}
ポーキーの他のレシピと同じように、または公式に従う recomendations
このようなレシピフォルダーの場合:
.
├── 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/* "
「install -m」の後にモード値を追加するのを忘れたので、それはうまくいかなかったと思います、
インストールコマンドのmanページを参照してください: https://linux.die.net/man/1/install
install -m [mode] src destination