2016-11-01 6 views
1

私はYoctoを使用してARMボードのLinuxビルドを作成しています。ルート作成中にYoctoに新しいレシピを追加できない

私は手動でアプリケーションのアドオンをクロスコンパイルしていました。今私たちは素晴らしい統合されたビルドをしたいので、yoctoにカスタムレシピを追加し始めました。

私はARMビルド(同じコードを持つx86ビルドは問題ありません)に苦労しています。

でも基本的な 'Hello Worldの' かなりのカットや開発マニュアルから貼り付けるには、ここ(http://www.yoctoproject.org/docs/current/dev-manual/dev-manual.html#new-recipe-writing-a-new-recipe

動作しないレシピです:ここでは

SUMMARY = "Simple helloworld application" 
SECTION = "examples" 
LICENSE = "MIT" 
LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302" 

RPROVIDES_${PN} = "helloworld" 

FILES_${PN} += "${bindir}" 

SRC_URI = "file://helloworld.c" 

S = "${WORKDIR}" 

do_compile() { 
     ${CC} helloworld.c -o helloworld ${LDFLAGS} 
} 

do_install() { 
     install -d ${D}${bindir} 
     install -m 0755 helloworld ${D}${bindir} 
} 

は誤りです:

ERROR: helloworld not found in the base feeds (smarc_samx6i cortexa9t2hf-vfp-neon-mx6qdl cortexa9hf-vfp-neon-mx6qdl cortexa9t2hf-vfp-neon cortexa9t2hf-vfp cortexa9hf-vfp-neon cortexa9hf-vfp armv7at2hf-vfp-neon armv7ahf-vfp-neon armv7at2hf-vfp armv7ahf-vfp armv6thf-vfp armv6hf-vfp armv5tehf-vfp armv5ehf-vfp armv5thf-vfp armv5hf-vfp noarch any all). 
ERROR: Function failed: do_rootfs 

このエラーの原因は何ですか?

パッケージは正しく構築されます。問題はrootfsのためにそれを見つけることに孤立しているようです。

ありがとうございます!

EDIT: 長期的には理想的ではありませんが、私はうまくいくと思われる解決方法があります。

IMAGE_INSTALLの下のパッケージ名をhelloworldからhelloworld-0.0.1に変更すると、問題が解決されます。もちろん、トップレシピの各パッケージのバージョンをハードコードするのではなく、他のパッケージではこれを必要としないので、うまくいけば別の解決策があります。

EDIT 2: レシピの名前を変更してバージョン文字列を削除すると、問題が解決されます。もう一度、これは長期的には理想的ではないようです。

+0

レシピ(どのディレクトリ)を保存しましたか?ファイル名はどのようになっていますか? – h0ch5tr4355

+0

私はソースに「メタテスト」の場所を、その下に「レシピテスト」の場所を作成しました。メタテストのためのlayers.confがあります。 – Dan

+0

bblayers.confに 'meta-test'を追加しましたか? – h0ch5tr4355

答えて

0

[OK]をもう一度テストしたところ、これはレシピの命名の問題であることがわかりました。

名前はhelloworld-0.0.1.bb(私はこの単純なテストを試してみるために私が一緒に入れた他のレシピと同じフォーマットです)と命名されました。

他の誰かがこれに遭遇した場合、単に ' - 'を '_'で置き換えるとこれが解決されます。

1

1.Renameあなたのレシピ名などhello-0.1.bbのみ最後の行の下に

2.Addをhello_0.1.bbします

FILES_${PN} = "${bindir}/*" 

Abvoeラインはあなたのバイナリをコピーすることができますrootfs。

関連する問題