2016-06-29 99 views
0

Yocto版のFreescale/NXP SDK v1.0を使用している場合、Yocto版のFreescale/NXP SDK v1.8で正常に機能したLinuxカーネル・モジュール・レシピは、do_package_qaにエラーを発生させます。エラーを次のように:Yocto Linuxモジュールのレシピdo_package_qaエラー

ERROR: QA Issue: FILES in kernel-module-r8168 recipe should not contain the ${D} variable as it references the local build directory not the target filesystem, best solution is to remove the ${D} reference [expanded-d]
ERROR: QA run found fatal errors. Please consider fixing them.
ERROR: Function failed: do_package_qa

カーネルモジュールレシピ自体は$ {D}を含んでいないが、それは私のモジュールレシピを次のように私のモジュールレシピは

を継承するmodule.bbclassに使用される。

SUMMARY = "Realtek r8168 family driver Linux kernel module" 
LICENSE = "GPLv2" 
LIC_FILES_CHKSUM = "file://COPYING;md5=d7810fab7487fb0aad327b76f1be7cd7" 

inherit module 

PN = "r8168" 
PV = "8.041.01" 

SRC_URI = "file://r8168-8.041.01.tgz \ 
      file://COPYING \ 
      " 

SRC_URI[md5sum] = "f3fd1530132ed1b64345698f89beea0f" 

S = "${WORKDIR}" 

KERNEL_MODULE_AUTOLOAD += "r8168" 

SDK 1.8 Yoctoバージョンと比較して、SDK 2.0 Yoctoバージョンのinsane.bbclassに$ {D}変数チェックが追加されています。

I持って、次の質問:

  1. これはYoctoのバグですか?
  2. どうすれば回避できますか?

log.do_package_qa.526:

DEBUG: Executing python function sstate_task_prefunc 
DEBUG: Python function sstate_task_prefunc finished 
DEBUG: Executing python function do_package_qa 
NOTE: DO PACKAGE QA 
DEBUG: Executing python function read_subpackage_metadata 
DEBUG: Python function read_subpackage_metadata finished 
NOTE: Checking Package: r8168 
NOTE: Checking Package: r8168-doc 
NOTE: Checking Package: r8168-dbg 
NOTE: Checking Package: r8168-staticdev 
NOTE: Checking Package: r8168-locale 
NOTE: Checking Package: r8168-dev 
NOTE: Checking Package: kernel-module-r8168 
NOTE: arm-fsl-linux-gnueabi-objdump -p /local/ctrommel/QorIQ-SDK-V2.0-20160527-yocto/build_ls1021atwr/tmp/work/ls1021at 
wr-fsl-linux-gnueabi/r8168/8.041.01-r0/packages-split/kernel-module-r8168/lib/modules/4.1.8-rt8+gbd51baf/local/ctrommel 
/QorIQ-SDK-V2.0-20160527-yocto/build_ls1021atwr/tmp/work/ls1021atwr-fsl-linux-gnueabi/r8168/8.041.01-r0/image/r8168.ko 
ERROR: QA Issue: FILES in kernel-module-r8168 recipe should not contain the ${D} variable as it references the local bu 
ild directory not the target filesystem, best solution is to remove the ${D} reference [expanded-d] 
ERROR: QA run found fatal errors. Please consider fixing them. 
DEBUG: Python function do_package_qa finished 
ERROR: Function failed: do_package_qa 
+0

フリースケールNXP SDKへのリンクを教えてください。可能であれば、git repoを使用することをお勧めします。私が知っている標準のYP 2.0リリースに外部カーネルモジュールを作る価値はありません。 – Anders

+0

関連するレシピのログファイル:log.do_package_qaの内容も提供できますか? – iksajotien

+0

QorIQ SDKは、NXPに登録した後、NXPのWebサイトからダウンロードできます。私はリンクを提供することはできません、私たちがダウンロードページを見つけるためには、 "QorIQ SDK"を検索しなければなりません。 –

答えて

0

どこかは、あなたがパッケージのいずれかのFILESの値で${D}への参照があるでしょう - これは間違っています。 FILESは、ターゲットに表示されるパスを指定するためのものです。そのため、一時的なインストールディレクトリ${D}の接頭辞は使用しないでください。

これはどこにあるのかはっきりと言うことはできません.Yoctoプロジェクトのメタデータの一部になる可能性は低いですが、bitbake -e yourrecipe | ( '/'を使用して)\$\{D\}を検索し、問題のある値が設定されている場所を正確に確認する必要があります。

+0

$ {D}は、私のr8168_8.041.01.bbによって継承されたmodule.bbclassで使用されます。 module.bbclassは、標準のpokyクラスです(NXP SDK固有のものではありません)。 –

+0

この問題は "YP Core - Krogoth 2.1"で再現できます。だから$ {D}はYoctoのメタデータによって何らかの形で提供されなければなりません。 "bitbake -e"の出力は役に立ちませんでした。 –

0

モジュールレシピに次の行がこの問題を回避します追加:

INSANE_SKIP_kernel-module-${PN} = "expanded-d" 

ビルドが成功したので(モジュールが画像に追加された)QAチェックをスキップした後、私はこれがあることをより確信していますバグ。

+0

ナー、それは問題を回避するだろう、それを隠すだけです。 – Anders

+0

「回避する」という私の定義は、次のとおりです。問題を隠しているが、達成したい目標に到達できるソリューション。それは、機能的なドライバを備えたイメージをもたらすので、私のために働くのは「回避」です。だから私はそれが問題を隠していることに同意するが、私はそれが周りの仕事ではないことに同意しない:) –

+0

公正な、私は(何らかの理由で私が書いたつもりだった)、それは解決策ではなかった...そのような問題を隠すことは、非常にうまく問題を引き起こす可能性があります。 – Anders

0

Yoctoバグではありません。追加されたモジュールのMakefileに問題がありました。このMakefileは、デバイスのベンダーが提供するドライバのMakefileの修正版です。元のMakefileにはmakeフラグINSTALL_MOD_DIRがあり、その値はINSTALL_MOD_DIR = $(INSTALL_MOD_PATH)に変更されています。 INSTALL_MOD_PATHがターゲットモジュールのインストールパスであると仮定していましたが、$ {D}を含むホストモジュールのインストールパスです。したがって、Yoctoによって発生したエラーは正しいです。 Makefileからmakeフラグを削除すると、問題が解決しました。

関連する問題