2017-06-01 7 views
0

現在、私は、巨人の枝を使って、ビーグルボーンブラックのためのyocto画像を作成しています。私はチュートリアルhereに続き、ほとんど成功しました。いくつかの時点で私は、次のようなエラーが発生しました:バージョンブランチに含まれていないバグの修正プログラムはどのように扱いますか?

Fetcher failure for URL: ' http://www.lartmaker.nl/lartware/port/devmem2.c '. Checksum mismatch! File: '/home/user/bbb/downloads/devmem2.c' has md5 checksum e23f236e94be4c429aa1ceac0f01544b when be12c0132a1ae118cbf5e79d98427c1d was expected [...]

私はいくつかの研究を行ったが、この問題は、メタいるOpenEmbeddedレポにthis commitで知られ、固定されていることがわかった - それが原因devmem2コードの変更により発生しました。 マスターブランチに対して修正コミットが行われたので、私はdevmem2.bbの地元の死亡コピーを無効にすることに決めました。 うまくいきました。bitbake qt5-imageを使ってコマンドラインから画像をダウンロードしてコンパイルできました。

これを実行した後、私はToasterを出すことにしました。必要なレイヤーを新しいToasterプロジェクトに追加し、qt5-image(メタbbbレイヤーの一部)のビルドを実行しました。しかし、Toasterはリポジトリの独自のコピーをダウンロードするため、以前と同じエラーが発生しました。 devmem2.bbを上書きして以前と同じようにしてみました - Toasterは現在のバージョンをVCSからチェックアウトし、変更を元に戻します。

私が知りたいことは、正しい行動方法とは何か、あるいは私の選択肢は何ですか?

Openembedded advisesチェックサムエラーの場合はメーリングリストに書き込みます。しかし、これは本当にオープンな問題ではなく、私がしていることを正確には分かっていないので、私はこれに躊躇しています。しかし、手動でレシピを無効にすることは危険であり、まったく間違っていると感じます。働いている間も。

私はまだヨーコに新しく、さらにトースターには新しいので、この問題は初心者のエラー(実際はかなり確かです)かもしれません。

+1

.bbappendファイルを使って変更しましたか?そうでない場合は、変更が上書きされます。 bbappend内で行われた変更は、フェッチ後に考慮され、チェックサムエラーにつながるべきではありません。またはビットビットエラーではありませんか? –

+0

@ guenni_90ありがとうございました。 –

答えて

1

ミラーhttp://www.lartmaker.nl/lartware/port/devmem2.cが利用できないため、ブランチクロゴスのレシピdevmem2.bbが壊れています。

この問題を解決する最も簡単な方法は、別のレイヤーを作成することです。 meta-openembedded/meta-oe/recipes-support/devmem2~meta-newlayer/recipes-support/devmem2にコピーしてください。 devmem2.bbapendmeta-newlayer/recipes-support/devmem2/devmem2.bbの名前を変更し、でその中にすべてのものを置き換える :私のために問題を修正し

SUMMARY = "Simple program to read/write from/to any location in memory" 
LICENSE = "GPLv2+" 
LIC_FILES_CHKSUM = "file://devmem2.c;endline=28;md5=dd68f2b0a5184b3db3dc25c99e0bd0cd" 
PR = "r7" 

SRC_URI = "https://raw.githubusercontent.com/radii/devmem2/master/devmem2.c \ 
      file://devmem2-fixups-2.patch;apply=yes;striplevel=0" 
S = "${WORKDIR}" 

CFLAGS += "-DFORCE_STRICT_ALIGNMENT" 

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

do_install() { 
    install -d ${D}${bindir} 
    install devmem2 ${D}${bindir} 
} 

SRC_URI[md5sum] = "be12c0132a1ae118cbf5e79d98427c1d" 
SRC_URI[sha256sum] = "ec382c90af3ef2f49695ff14a4d6521e58ac482c4e29d6c9ebca8768f699c191" 

+0

ありがとうジェローム、これは私がやったことに似ていますが、私はmeta-oeレイヤー全体をコピーしなかったのですが、bbappendで新しいものを作成しました。レイヤー全体をコピーする利点はありますか?不要です。 –

+0

meta-openembedded/meta-oe/recipes-support/devmem2からmeta-newlayer/recipes-support/devmem2は、meta-oe全体をコピーすることを意味せず、devmem2パスのみをコピーします。レイヤ全体をコピーすることは実際には不要です。 –

+0

私はそれを誤解しました。あなたの答えは正しいです。同様の問題を抱える他の人には少しヒントがあり、私は[yocto-layer](http://www.yoctoproject.org/docs/1.8/dev-manual/dev-manual.html#creating-a-general-layer -using-the-yocto-layer-script)スクリプトは、レイヤを作成するのに本当に便利です。物事を楽にし、私のやり方で私を安心させました。私はこの新しいレイヤーを自分のイメージの追加と変更に使用します。 –

関連する問題