This service is available only in Japanese-language.

bitbake中の停電

bitbake中にPCの電源が落ちてしまい、再度bitbakeしたところエラーがでてしまいました。
bitbakeの途中から復帰するにはどうすればよろしいのでしょうか?

$ bitbake core-image-weston
Loading cache: 100% |############################################| Time: 0:00:06
Loaded 3033 entries from dependency cache.
ERROR: Execution of event handler 'sstate_eventhandler2' failed
Traceback (most recent call last):
File "/home/sa/user_work/build/../poky/meta/classes/sstate.bbclass", line 1033, in sstate_eventhandler2(e=<bb.event.ReachableStamps object at 0x7fe5f66def98>):
for l in lines:
> (stamp, manifest, workdir) = l.split()
if stamp not in stamps and stamp not in preservestamps:
ValueError: not enough values to unpack (expected 3, got 1)

ERROR: Command execution failed: Traceback (most recent call last):
File "/home/sa/user_work/poky/bitbake/lib/bb/command.py", line 113, in runAsyncCommand
self.cooker.updateCache()
File "/home/sa/user_work/poky/bitbake/lib/bb/cooker.py", line 1539, in updateCache
bb.event.fire(event, self.databuilder.mcdata[mc])
File "/home/sa/user_work/poky/bitbake/lib/bb/event.py", line 222, in fire
fire_class_handlers(event, d)
File "/home/sa/user_work/poky/bitbake/lib/bb/event.py", line 134, in fire_class_handlers
execute_handler(name, handler, event, d)
File "/home/sa/user_work/poky/bitbake/lib/bb/event.py", line 106, in execute_handler
ret = handler(event)
File "/home/sa/user_work/build/../poky/meta/classes/sstate.bbclass", line 1033, in sstate_eventhandler2
(stamp, manifest, workdir) = l.split()
ValueError: not enough values to unpack (expected 3, got 1)

Summary: There were 2 ERROR messages shown, returning a non-zero exit code.

SSTATEや、STAMPSといった構築を効率化する仕組みの中で生成するファイルの不整合が原因と
考えられますので、本ログの前後に記載されているエラーが発生しているレシピに対して
bitbake レシピ名 -c cleansstate
を実行することで、当該レシピに対するキャッシュはクリアされます。
その後
bitbake core-image-weston を実行することで
エラーとなっていたレシピに対しては最初から(ファイルの取得動作から)の構築となりますが、
電源断発生前に正常に処理が行われたその他のレシピのタスクに影響を与えることなく再開が可能と
なります。

yakuhito様
回答ありがとうございます。

ログの末尾を参考にエラー前レシピを見つけてコマンドを実行したところエラーとなってしまいました。
【ログ末尾】
qemuwrapper-cross_1.0.bb:do_configure)
NOTE: recipe qemuwrapper-cross-1.0-r0: task do_configure: Started
NOTE: recipe qemuwrapper-cross-1.0-r0: task do_configure: Succeeded
NOTE: Running task 3112 of 5512 (/home/sa/user_work/build/../poky/meta/recipes-graphics/ttf-fonts/liberation-fonts_2.00.1.bb:do_packagedata)
\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\

【実行したコマンド】$ bitbake recipes-graphics -c cleansstate
$ bitbake recipes-graphics -c cleansstate
Loading cache: 100% |############################################| Time: 0:00:06
Loaded 3033 entries from dependency cache.
ERROR: Execution of event handler 'sstate_eventhandler2' failed
Traceback (most recent call last):
File "/home/sa/user_work/build/../poky/meta/classes/sstate.bbclass", line 1033, in sstate_eventhandler2(e=<bb.event.ReachableStamps object at 0x7f098b523eb8>):
for l in lines:
> (stamp, manifest, workdir) = l.split()
if stamp not in stamps and stamp not in preservestamps:
ValueError: not enough values to unpack (expected 3, got 1)

ERROR: Command execution failed: Traceback (most recent call last):
File "/home/sa/user_work/poky/bitbake/lib/bb/command.py", line 113, in runAsyncCommand
self.cooker.updateCache()
File "/home/sa/user_work/poky/bitbake/lib/bb/cooker.py", line 1539, in updateCache
bb.event.fire(event, self.databuilder.mcdata[mc])
File "/home/sa/user_work/poky/bitbake/lib/bb/event.py", line 222, in fire
fire_class_handlers(event, d)
File "/home/sa/user_work/poky/bitbake/lib/bb/event.py", line 134, in fire_class_handlers
execute_handler(name, handler, event, d)
File "/home/sa/user_work/poky/bitbake/lib/bb/event.py", line 106, in execute_handler
ret = handler(event)
File "/home/sa/user_work/build/../poky/meta/classes/sstate.bbclass", line 1033, in sstate_eventhandler2
(stamp, manifest, workdir) = l.split()
ValueError: not enough values to unpack (expected 3, got 1)

Summary: There were 2 ERROR messages shown, returning a non-zero exit code.

レシピ名が間違っているかとも思い次も実行しましたがエラーになりました。
実行したコマンド:$ bitbake liberation-fonts_2.00.1 -c cleansstate
実行したコマンド:$ bitbake qemuwrapper-cross-1.0-r0 -c cleansstate

今回のケースでは
bitbake liberation-fonts -c cleansstate
bitbake qemuwrapper-cross -c cleansstate
で、ダウンロードしたファイル以外のレシピの構築時の生成物はすべて消去されと考えます。

直前のログに記載されているレシピキャッシュをクリアしてもエラーがでてしまいます。
消す対象のレシピが間違っているのか、他に対処方法ありませんでしょうか?
bitbakeで50%進捗するのに36h程度費やしていたのでやり直しはしたくないですが
最悪作業ディレクトリを全消去して最初からやり直すしかないのかなと考えています。

50%の進捗に36h という環境ですと、bitbakeの実行で発生するエラーログを見て、地道に消す方が早いと考えます。
bitbakeの実行ですが、最低限のスペックとして論理コア数は4Core 以上、メモリ4GB以上とマニュアルに記載されています。
仮想マシンで実行の場合は、仮想マシンに割り当てるコア数やメモリ量を増やすことで、実行速度を早くすることは可能かと。
また、ネットワーク関連で速度の低下がみられる場合は、先にfetch動作のみ行ってから実際の構築を実行すること、DL_DIRを
共有するといった手法で、二度目以降の構築を高速化することも可能です。
・fetchのみ先行して実施
  bitbake -k イメージレシピ名 --runall=fetch

・一度ダウンロードしたファイルを共有する方法
conf/local.conf 内で DL_DIRの指定する場所をデフォルトから変更して、各プロジェクトで共通の場所に変更する。
  弊社で講習で使用しているマシンでは
 DL_DIR ?= "${TOPDIR}/../downloads"
 と、oe-init-build-env で生成されたディレクトリより一段上に指定を行い、他のプロジェクトと共用が行いやすい
 場所を指定しています。

 

yakuhito様
回答ありがとうございます。

現在のスペック
windows10、仮想環境(メモリ5G コア数1)の中にubuntu16.04
(仮想環境windows10のディスク容量が少なかったので外付けのSSD(USB接続)に入れました)

自作のものをbitbakeしようとしているのではなく、評価ボードドキュメントに沿ってコマンドを打っているレベルの者です。
説明いただいたfetchのみ先行で実施する場合下記項目がわかりません。
・ネットワークからダウンロードするもの(必要なURL)はどこに記述されていますか?
・ダウンロードしたデータはどのディレクトリへ移動しておく必要がありますか?
・bitbake -k イメージレシピ名の「イメージレシピ名」は具体的にどこに記述されていますか?

また、CPUコア数に関してはドキュメントに指定がなかったので気にしていませんでした。
コア数4を割けるPCが弊社にはなくコア数2が限界なのですがやはり問題になりますか?
改めて下記スペックで進めようとしています。
windows7、メモリ5G、コア数2にubuntu16.04デュアルブート

順番を変えての回答となります。
> ・bitbake -k イメージレシピ名の「イメージレシピ名」は具体的にどこに記述されていますか?
本質問の最初の例ではcore-image-weston となります。

> ・ネットワークからダウンロードするもの(必要なURL)はどこに記述されていますか?
取得するソースコードのURLは、後述するソフトウェアレシピファイル内のSRC_URIという変数で指定されています。

bitbake コマンドの処理対象となるレシピには大きく分けて3種類あります。
1) ソフトウェアレシピ
  パッケージを生成するための情報が記載されたファイル
2)イメージレシピ
  生成されたパッケージを元に、ターゲットボード上にインストールする形式のファイルを生成するための情報が
  記載されたファイル
3) パッケージグループレシピ
  複数のパッケージをグループ化して、イメージレシピに一括登録できるように記載されたファイル

bitbake core-image-weston を実行した場合、core-image-weston を構築するのに必要なパッケージを調べ、
それらのパッケージを構築するのに必要なソースコードをソフトウェアレシピに記載された場所から取得して
構築を行います。

> ・ダウンロードしたデータはどのディレクトリへ移動しておく必要がありますか?

事前にbitbake -k イメージレシピ --runall=fetch で取得したファイルは移動の必要はありません。
bitbakeコマンドを実行したディレクトリのconfの下に、local.conf というファイルがあり、その中でDL_DIR
に関する指定があると思います。
DL_DIRの記述箇所で、先頭に#が付いていればコメントとなり、BSPのデフォルトの設定の場所に保存されています。
先頭に#、が付いていない場合は、その変数に設定されたディレクトリに保存されています。
YoctoProjectから入手したpokyの場合、DL_DIRはbitbakeを実行したディレクトリのdownloads がデフォルトの
設定となりますが、BSPによってデフォルトが一段上のディレクトリを指定しているものもあります。

bitbake の実行時間は、同時に処理を行えるCore(Thread)数に影響をうけます。
デフォルトでは、論理コア(Thread)数の処理を並行実行が可能であり、ファイルの取得も並行して実施可能と
なります。
4Core以上、8Core以上推奨とYoctoProjectのドキュメントに記載されていますが、時間はかかってしまいますが
構築は可能です。現状のコア数を倍増することで、構築時間も半減すると考えられます。

yakuhito様
回答ありがとうございます。

レシピについて何もわからなかったので非常に勉強になります。ありがとうございます。
電源断によって消すべきだったレシピについてはログを見てもわからなかった(いろいろ消してもエラーだった)ので結局、
PCスペックを見直し最初からbitbakeをやりなおしました。
無事10h以内に終了できました。
しかし下記の様にWARNINGが35個もでてしまいました。

WARNING: libmpc-native-1.0.3-r0 do_fetch: Failed to fetch URL http://www.multiprecision.org/mpc/download/mpc-1.0.3.tar.gz, attempting MIRRORS if available
WARNING: bzip2-1.0.6-r5 do_fetch: Checksum mismatch for local file /home/sa/user_work/build/downloads/bzip2-1.0.6.tar.gz
Cleaning and trying again.
WARNING: bzip2-1.0.6-r5 do_fetch: Renaming /home/sa/user_work/build/downloads/bzip2-1.0.6.tar.gz to /home/sa/user_work/build/downloads/bzip2-1.0.6.tar.gz_bad-checksum_ce39c4c60f64756a23010c2718754245
WARNING: bzip2-1.0.6-r5 do_fetch: Checksum failure encountered with download of http://www.bzip.org/1.0.6/bzip2-1.0.6.tar.gz - will attempt other sources if available
WARNING: xtrans-native-1_1.3.5-r0 do_fetch: Failed to fetch URL http://xorg.freedesktop.org/releases/individual/lib/xtrans-1.3.5.tar.bz2, attempting MIRRORS if available
WARNING: popt-native-1.16-r3 do_fetch: Checksum mismatch for local file /home/sa/user_work/build/downloads/popt-1.16.tar.gz
Cleaning and trying again.
WARNING: popt-native-1.16-r3 do_fetch: Renaming /home/sa/user_work/build/downloads/popt-1.16.tar.gz to /home/sa/user_work/build/downloads/popt-1.16.tar.gz_bad-checksum_4dcc3c11d827f19d094fee8a8055fe46
WARNING: popt-native-1.16-r3 do_fetch: Checksum failure encountered with download of http://rpm5.org/files/popt/popt-1.16.tar.gz - will attempt other sources if available
WARNING: libpng-native-1.6.31-r0 do_fetch: Failed to fetch URL http://downloads.sourceforge.net/project/libpng/libpng16/1.6.31/libpng-1..., attempting MIRRORS if available
WARNING: shadow-4.2.1-r0 do_fetch: Failed to fetch URL http://pkg-shadow.alioth.debian.org/releases/shadow-4.2.1.tar.xz, attempting MIRRORS if available
WARNING: icu-native-59.1-r0 do_fetch: Checksum mismatch for local file /home/sa/user_work/build/downloads/icu4c-59_1-src.tgz
Cleaning and trying again.
WARNING: icu-native-59.1-r0 do_fetch: Renaming /home/sa/user_work/build/downloads/icu4c-59_1-src.tgz to /home/sa/user_work/build/downloads/icu4c-59_1-src.tgz_bad-checksum_a2c29232e885a878dff3d47d77d83c65
WARNING: icu-native-59.1-r0 do_fetch: Checksum failure encountered with download of http://download.icu-project.org/files/icu4c/59.1/icu4c-59_1-src.tgz - will attempt other sources if available
WARNING: chrpath-native-0.16-r0 do_fetch: Failed to fetch URL https://alioth.debian.org/frs/download.php/file/3979/chrpath-0.16.tar.gz, attempting MIRRORS if available
WARNING: mesa-2_17.1.7-r0 do_fetch: Failed to fetch URL https://mesa.freedesktop.org/archive/mesa-17.1.7.tar.xz, attempting MIRRORS if available
WARNING: iso-codes-3.75-r0 do_fetch: Failed to fetch URL https://pkg-isocodes.alioth.debian.org/downloads/iso-codes-3.75.tar.xz, attempting MIRRORS if available
WARNING: util-linux-2.30-r0 do_package: util-linux: alternative target (/usr/bin/chrt or /usr/bin/chrt.util-linux) does not exist, skipping...
WARNING: util-linux-2.30-r0 do_package: util-linux: NOT adding alternative provide /usr/bin/chrt: /usr/bin/chrt.util-linux does not exist
WARNING: util-linux-2.30-r0 do_package: util-linux: alt_link == alt_target: /usr/bin/chrt == /usr/bin/chrt
WARNING: coreutils-8.27-r0 do_fetch: Failed to fetch URL http://distfiles.gentoo.org/distfiles/coreutils-8.27-man.tar.xz;name=man..., attempting MIRRORS if available
WARNING: openobex-1.5-r0 do_fetch: Failed to fetch URL http://www.kernel.org/pub/linux/bluetooth/openobex-1.5.tar.gz, attempting MIRRORS if available
WARNING: stress-1.0.4-r0 do_fetch: Failed to fetch URL http://people.seas.harvard.edu/~apw/stress/stress-1.0.4.tar.gz, attempting MIRRORS if available
WARNING: minicom-2.7.1-r0 do_fetch: Failed to fetch URL https://alioth.debian.org/frs/download.php/latestfile/3/minicom-2.7.1.ta..., attempting MIRRORS if available
WARNING: lttng-modules-2.7.7+gitAUTOINC+1b027915cd-r0 do_package: lttng-modules: no modules were created; this may be due to CONFIG_TRACEPOINTS not being enabled in your kernel.
WARNING: glmark2-2017.07+AUTOINC+ed20c633f1-r0 do_configure: Unable to execute waf --version, exit code 1. Assuming waf version without bindir/libdir support.
WARNING: core-image-weston-1.0-r0 do_rootfs: [log_check] core-image-weston: found 18 warning messages in the logfile:
[log_check] Warn: update-alternatives: init has multiple providers with the same priority, please check /home/sa/user_work/build/tmp/work/iwg20m_g1m-poky-linux-gnueabi/core-image-weston/1.0-r0/rootfs/usr/lib/opkg/alternatives/init for details
[log_check] WARNING: Hellenic_Academic_and_Research_Institutions_ECC_RootCA_2015.pem does not contain a certificate or CRL: skipping
[log_check] WARNING: OpenTrust_Root_CA_G1.pem does not contain a certificate or CRL: skipping
[log_check] WARNING: OpenTrust_Root_CA_G2.pem does not contain a certificate or CRL: skipping
[log_check] WARNING: TUBITAK_Kamu_SM_SSL_Kok_Sertifikasi_-_Surum_1.pem does not contain a certificate or CRL: skipping
[log_check] WARNING: Certum_Trusted_Network_CA_2.pem does not contain a certificate or CRL: skipping
[log_check] WARNING: ISRG_Root_X1.pem does not contain a certificate or CRL: skipping
[log_check] WARNING: Hellenic_Academic_and_Research_Institutions_RootCA_2015.pem does not contain a certificate or CRL: skipping
[log_check] WARNING: SZAFIR_ROOT_CA2.pem does not contain a certificate or CRL: skipping
[log_check] WARNING: Amazon_Root_CA_4.pem does not contain a certificate or CRL: skipping
[log_check] WARNING: Amazon_Root_CA_2.pem does not contain a certificate or CRL: skipping
[log_check] WARNING: Certplus_Root_CA_G2.pem does not contain a certificate or CRL: skipping
[log_check] WARNING: Amazon_Root_CA_1.pem does not contain a certificate or CRL: skipping
[log_check] WARNING: LuxTrust_Global_Root_2.pem does not contain a certificate or CRL: skipping
[log_check] WARNING: Amazon_Root_CA_3.pem does not contain a certificate or CRL: skipping
[log_check] WARNING: Certplus_Root_CA_G1.pem does not contain a certificate or CRL: skipping
[log_check] WARNING: AC_RAIZ_FNMT-RCM.pem does not contain a certificate or CRL: skipping
[log_check] WARNING: OpenTrust_Root_CA_G3.pem does not contain a certificate or CRL: skipping

WARNING: demos-1.0-r0 do_package_qa: QA Issue: demos rdepends on glib-2.0, but it isn't a build dependency, missing glib-2.0 in DEPENDS or PACKAGECONFIG? [build-deps]
WARNING: demos-1.0-r0 do_package_qa: QA Issue: demos rdepends on gstreamer1.0, but it isn't a build dependency, missing gstreamer1.0 in DEPENDS or PACKAGECONFIG? [build-deps]
WARNING: launcher-taskbar-1.0-r0 do_package_qa: QA Issue: launcher-taskbar rdepends on pixman, but it isn't a build dependency, missing pixman in DEPENDS or PACKAGECONFIG? [build-deps]
WARNING: launcher-taskbar-1.0-r0 do_package_qa: QA Issue: launcher-taskbar rdepends on libwayland-egl, but it isn't a build dependency, missing mesa in DEPENDS or PACKAGECONFIG? [build-deps]
WARNING: launcher-taskbar-1.0-r0 do_package_qa: QA Issue: launcher-taskbar rdepends on libegl, but it isn't a build dependency, missing libegl in DEPENDS or PACKAGECONFIG? [build-deps]
WARNING: launcher-taskbar-1.0-r0 do_package_qa: QA Issue: launcher-taskbar rdepends on wayland, but it isn't a build dependency, missing wayland in DEPENDS or PACKAGECONFIG? [build-deps]
WARNING: launcher-taskbar-1.0-r0 do_package_qa: QA Issue: launcher-taskbar rdepends on cairo, but it isn't a build dependency, missing cairo in DEPENDS or PACKAGECONFIG? [build-deps]
WARNING: launcher-taskbar-1.0-r0 do_package_qa: QA Issue: launcher-taskbar rdepends on libxkbcommon, but it isn't a build dependency, missing libxkbcommon in DEPENDS or PACKAGECONFIG? [build-deps]
WARNING: launcher-taskbar-1.0-r0 do_package_qa: QA Issue: launcher-taskbar rdepends on libpng, but it isn't a build dependency, missing libpng in DEPENDS or PACKAGECONFIG? [build-deps]
NOTE: Tasks Summary: Attempted 5512 tasks of which 8 didn't need to be rerun and all succeeded.

Summary: There were 35 WARNING messages shown.

もう一度ビルドするときは同じコマンドを使うのかと思いますが、下記の場合もまた数時間要しますでしょうか?
$bitbake core-image-weston
・今回の様にWARNINGを取るため細々とビルドしたい時
・基板のポート機能を変更したい時
・自作アプリケーションを追加したい時

何かと照らし合わせて差分だけをビルドしてくれるような仕組みになっているのでしょうか?

SSTATEというメカニズムによって、過去の構築結果を最大限再利用が可能です。

bitbakeで実行するファイル出力を伴うタスクの実行時の環境を元にシグネチャを
生成し、次に同じレシピに対して同じタスクを実行する際のシグネチャが同一の
値だった場合には、過去に実行したタスクの保存された出力を再利用する仕掛けです。

WARNINGに関してですが、
・SRCURIに記載されたサイトにアクセスできず、MIRRORとなっているところから落としているケース
・証明書ファイル等、有効期間のあるファイルに関する問題
・依存関係の記述が誤っている
といった原因で発生していますね。

これらの修正方法ですが、「決して既存のレシピの修正は行わないで下さい」
yocto-layer コマンドのサブコマンド create
又は
bitbake-layers create-layer
を使用して、カスタマイズ用のレイヤを作成し、その中でエラーが発生している
レシピに対するbbappendファイルを作成して、変数の上書きなどを行なう方法が
一般的な手法となります。

yakuhito様
回答ありがとうございます。

bitbakeに関して圧倒的に知識がなく丁寧に説明いただいてもついていけない現状がもどかしい限りです。
レシピ、レイヤー等々インターネットで検索してはいるものの消化できず、
何をしたい時に何を変更するのか道筋が立てれません。

今回はルネサスのRZ/G評価ボードを購入してマニュアル通りコマンドを打ち、bitbakeをしたところWARNINGが多数発生。
ルネサスへは開発方法やyoctoに関する質問を以前からしていますが回答がなく、暗礁に乗り上げています。

会社で経験者もなくはじめた案件なので、相談の上今後どうするか決めようと思います。
この場で初心者の問い合わせをエンドレスにしては申し訳ない気がしてきました。
どこかでセミナーがあれば参加したいと思います。ありがとうございました。

セミナーに関してですが、今月末に以下のWebinarを開催予定です。
組込みLinuxの初心者の方を対象に、Linuxとは何か?から説明する内容なので、tororoimo様が聞きたい内容の前段階となってしまうかもしれませんが。
https://www.lineo.co.jp/products_services/services/basic_st_webinar.html

また、現在は休止中ですが弊社ではYocto初心者の方を対象に以下の講座を実施しております。
https://www.lineo.co.jp/products_services/services/yocto-ultra-practical...

弊社で発行するメールニュースを購読いただきますと、これら講座の案内も行っておりますので、
ご希望でしたら登録いたします。

なお、質問事項に関してですが、誰もが使い始めは初心者です。
疑問に思ったことに関して質問いただきますと、次に使い始めた人の役にも立ちますので、
気軽にお問合せください。

yakuhito様
セミナー紹介していただきありがとうございます。
組込みLinux超入門セミナー in Webinarは参加させていただきます。
休止中のYocto 超実践講座はまさに習得したい内容そのものでした。
休止中ということで残念ですが開催する際は参加を考えたいのでメールニュース登録お願いします。

また、質問に関してな寛大なお言葉ありがとうございます。
社内でできるところまで情報を収集して、不明なところはまた別のトピックで質問させていただきます。
本当にありがとうございました。