web-dev-qa-db-ja.com

FILES _ $ {PN}の使用例

マニュアルを読んだ後でもFILES _ $ {PN}を理解できません。たとえば、起動スクリプトを作成する この例 に取り組んでいました。似たようなものを書いた後、これらのエラーメッセージが表示されました。

ERROR: initscriptd-1.0-r0 do_package: QA Issue: initscriptd: Files/directories were installed but not shipped in any package:
  /usr
  /usr/sbin
Please set FILES such that these items are packaged. Alternatively if they are unneeded, avoid installing them or delete them within do_install.
initscriptd: 2 installed and not shipped files. [installed-vs-shipped]
ERROR: initscriptd-1.0-r0 do_package: Fatal QA errors found, failing task.
ERROR: initscriptd-1.0-r0 do_package: Function failed: do_package
ERROR: Logfile of failure stored in: /home/yahia/Desktop/elinux_dev/bake_factory/poky-pyro-17.0.1/build/tmp/work/core2-64-poky-linux/initscriptd/1.0-r0/temp/log.do_package.5252
ERROR: Task (/home/yahia/Desktop/elinux_dev/bake_factory/poky-pyro-17.0.1/meta-mylayer/recipes-core/mylayer-initscript/initscriptd.bb:do_package) failed with exit code '1'

そして、私が理解したように、イメージにインストールされるレシピで提供されたファイルは特定のパッケージ内にパッケージ化されていないため、yoctoはどこにそれらを解凍するかを認識できませんが、正しいですか?

そのため、レシピファイルをインストールするFILES _ $ {PN} + = "すべてのディレクトリパスを追加"を追加しました。その後、うまくいきました。

それで、なぜこれをする必要があるのか​​説明してもらえますか?そしていつ?首尾一貫した例が提供されている場合は、参考になります。

5
Yahia Farghaly

レシピは複数のパッケージを生成できます(通常は生成します)。システムは完全に愚かではないため、たとえば、すべてのヘッダーは自動的に_-dev_パッケージに入り、すべてのドキュメントは_-doc_に入りますが、多くの場合、レシピ作成者は特定のファイルのパッケージを決定する必要があります属する。これは_FILES_<packagename> += "/path/to/file"_形式で行われます。

FILES_ *のデフォルト値は_meta/conf/bitbake.conf_にありますが、レシピが継承するクラスも値を変更する可能性があることに注意してください:_bitbake -e <recipe>|grep ^FILES__で最終値を確認してください

あなたの場合、あなたのプロジェクトビルドシステムはいくつかのディレクトリを作成したようですが、そこには何も入れていませんか?そうである場合は、ビルドシステムを変更しないようにするか、インストール後に空のディレクトリを削除するdo_install_append()関数を追加することもできます。

10
Jussi Kukkonen

通常、<package name>はYoctoで${PN}変数を使用して既に定義されているため、ファイルの割り当ては簡単です。また、アスタリスク*は、サブツリー全体を追加する場合に正常に機能します。おそらく、最終的な画像ツリーのどこにデータを配置するかについて、いくつかの事前定義された変数を使用することを検討してください。

FILES_${PN} += "${nonarch_base_libdir}/<your package folder>/*"

0
Oleg Kokorin