2016-05-09 6 views
1

ツリーの外にあるカーネルモジュールをビルドするときに、より多くのファイルを配送する方法はありますか?カーネルモジュールのレシピで余分なファイルを配送する

私はこのような何か試してみました:

FILES_${PN} += "${bindir}/my_program" 
do_install_append() { 
    install -d ${D}${bindir} 
    install -m 0755 ${D}/my_program ${D}${bindir}/my_program 
} 

をそして、このように:

FILES_kernel-module-${PN} += "${bindir}/my_program" 
do_install_append() { 
    install -d ${D}${bindir} 
    install -m 0755 ${D}/my_program ${D}${bindir}/my_program 
} 

しかし、まだ文句を言う:

ERROR: QA Issue: my-module: Files/directories were installed but not shipped in any package: 
    /usr 
    /usr/bin 
    /usr/bin/my_program 
Please set FILES such that these items are packaged. Alternatively if they are unneeded, avoid installing them or delete them within do_install. 
my-module: 3 installed and not shipped files. [installed-vs-shipped] 

答えて

0

FILES _ $ {PN}は使用できません。少なくともデフォルトで$ {PN}はカーネルのためにパッケージには現れないので、カーネルのレシピのために。 "kernel-module - $ {PN}"も有効ではありません。私はあなたがそうのようなカーネルベースパッケージにファイルを追加したいと思います推測している:

FILES_kernel-base += "${bindir}/my_program"

+0

私たちがさらに助ける前に、あなたはレシピ全体を見る必要があると思います。 – bluelightning

3

をこれは非常に一般的な状況である - あなたは追加のバイナリをインストールしましたが、それは出力に追加されていませんパッケージ(がインストールされていますが、出荷されていません。)。

解決方法は、出力イメージに追加する必要があるファイルの種類に基づいている必要があります。

チェックこのスレッド:2 step solution to ERROR: QA Issue: Files/directories were installed but not shipped

また、あなたは、ファイルが正しくなどを構築した場合はすぐに確認する必要がある場合には(すでにそれらをインストールしているように)、あなたは自分のビルド/ local.confにこの行を追加することができます:

IMAGE_INSTALL + = "{binary_name}"

編集:

下に加えOPからのコメント: 私の誤解には申し訳ありません。module.bbclassをレシピに継承する必要があると思われますので、文書:Yocto Mega Manual - module.bbclassをチェックしてください。 Howto build a kernel module out of the kernel tree

+0

リンクをありがとうございますが、その解決策はカーネルモジュールでは機能しません(レシピに 'includeモジュール 'を追加すると)。その解決策は基本的に私が今までやろうとしていたものです。 – XNor

+0

XNor - 私は自分の答えを編集しました。どうぞご覧ください。 – iksajotien

0

module.bbclassが$ {PN}をPACKAGESから削除するとは思いませんが、ファイル_ $ {PN}はクリアされます。したがって、パッケージにファイルを追加する場合は、モジュールを継承するの後にFILES _ $ {PN} を設定する必要があります。

関連する問題