This service is available only in Japanese-language.
bitbakeのCI/CDへの導入を検討しているのですが、bitbakeコマンド具体的な内部処理の流れがわからず困っております。
bitbakeコマンド実行時の、タスク処理について伺わせてください。
・bitbakeコマンドを実行するとdo_fetch、do_unpack、dopatchなどのタスクが順で処理がされていくと考えているのですが、
各タスクの実行順番と処理内容について教えて頂けませんか?
・各タスクによって、どのディレクトリにどのようなファイルができあがるのか、教えて頂けませんか?
yakuhito
2019/12/9 (月) 22:00
こちらで紹介するドキュメントを一読ください
Yocto2.5から追加された以下のドキュメントの当該章がお役に立てるかと思います。
https://www.yoctoproject.org/docs/3.0/overview-manual/overview-manual.ht...
実行するタスクや実行順序は、レシピ毎に異なっています。
個々のレシピのタスクの実行順序はレシピのbuild ディレクトリのtemp/log.task_order ファイルに記録されています。
N.F.
2019/12/10 (火) 10:04
ご対応ありがとうございます、追加で質問をさせてください
bitbakeコマンドで、コンパイルまではせず、ソースコード取得作業(poky標準ではbuild/tmp/work or /workshareに格納だと思いますが)までを実施したいとのですが、bitbakeへのオプションなどで実現することはできますでしょうか。
また、workディレクトリ以下は、ソースコードと中間ファイルが混ざって格納されているように見えます。
取得したソースコードのみを参照したい場合に良い方法はございませんか。
yakuhito
2019/12/10 (火) 10:16
bitbake では -c オプションに続けて指定したタスクを実行することが可能です。
お使いのバージョンによりますが、
bitbake world --runall=fetch -k
又は
bitbake world -c fetchall -k
で、使用中のレイヤーに含まれるbuild対象の全レシピに対してのfetchタスクが実行され、DL_DIRで指定されたディレクトリに
取得したソースが保存されます。
-k オプションを付加することで、特定のレシピでfetch時にファイルの取得エラーが発生しても、未実施のタスクは
実行を継続します。
-k オプションを付けない場合は、エラー発生後、未実施のタスクは実行されないことに注意してください。
> また、workディレクトリ以下は、ソースコードと中間ファイルが混ざって格納されているように見えます。
> 取得したソースコードのみを参照したい場合に良い方法はございませんか。
bitbake <レシピ名> -c clean 実施後に、bitbake <レシピ名> -c patch でパッチ適用まで実施されます。
N.F.
2019/12/10 (火) 11:44
ご対応ありがとうございます、前回答に質問させてください。
度々の質問、申し訳ありません。
<https://elinux.org/images/6/61/Celfjtj42_poky.pdf>を参考にしており、
・fecth時には、DL_DIR上にgitコードをパッケージ単位でまとめた圧縮ファイル(tar.gzipなど)を格納
・unpackとbulid時に、上記圧縮ファイルの解凍結果(~.cなど)を build/tmp/work以降に格納
といった認識をいだいておりました。
圧縮形式ではなく、ソースコードまでの処理を実現したい場合には、どのような-cオプションがございますでしょうか。
また、前のご回答を踏まえると -c pathで、work以下にソースコードが展開されるといった認識でよろしいのでしょうか。
yakuhito
2019/12/10 (火) 13:48
上記資料は少し古くなっています。
do_fetch 実行時、git で取得する場合は、DL_DIRの下にgit cloneしたものが保存されます。
do_unpack で、DL_DIR に保存されたファイルから、ソースコードをbuild/tmp/work/[ARCH]/ 以下に展開。
do_patch で、パッチを適応。
となります。
configureなど実行前のソースコードは
bitbake world --runall=patch 又は bitbake world -c patch で、各レシピのパッチ適応後のソースがbuild/tmp/work/ 以下に
展開されます。