0
1

More than 1 year has passed since last update.

【yocto】デバッグログを仕込む方法

Last updated at Posted at 2022-06-09

はじめに

  • yoctoのデバッグをしたい人向け

方法

  • .bb/.bbappendには、以下のような文を挿入する
    • 1はログレベル。任意の数字を指定可能。
bbdebug 1 "message"
  • .bbclassには、以下のような文を挿入する
    • 1はログレベル。任意の数字を指定可能。
bb.debug(1, "message")
  • bitbakeに-Dオプションを指定することでデバッグログが出力される
    • Dの数で出力するログレベルが指定できる
      • -D=ログレベル1。ログレベル1以下のデバッグログを表示する。
      • -DD=ログレベル2。ログレベル2以下のデバッグログを表示する。
    • recipe-nameは任意のrecipe名
bitbake -D recipe-name
bitbake -DD recipe-name

  • 適当なbbファイルにデバッグ文を追記する
    • ca-certificates_20190110.bbにログレベル1のデバッグ文を追記する
    • do_install_append()は、do_installの後に処理するための関数
takeshi@X250:~/yocto/poky/build$ cat ../meta/recipes-support/ca-certificates/ca-certificates_20190110.bb | tail -n 3
do_install_append() {
    bbdebug 1 "bb: hello"
}
  • 適当なbbclassにデバッグ文を追記する
    • kernelsrc.bbclassにログレベル2のデバッグ文を追記する
takeshi@X250:~/yocto/poky/build$ cat ../meta/classes/kernelsrc.bbclass | tail -n 3
python () {
    bb.debug(2, "bbclass: hello")
}
  • bitbake
    • -Dと-DDでデバッグ出力が違う
      • -Dでは、ログレベル1のデバッグ文が出力された
      • -DDでは、ログレベル1とログレベル2のデバッグ文が出力された
takeshi@X250:~/yocto/poky/build$ bitbake -D core-image-minimal | grep "hello"
DEBUG: ca-certificates-20190110-r0 do_install: bb: hello
takeshi@X250:~/yocto/poky/build$ bitbake -DD core-image-minimal | grep "hello"
DEBUG: /home/takeshi/yocto/poky/meta/recipes-kernel/perf/perf.bb: bbclass: hello
DEBUG: ca-certificates-20190110-r0 do_install: bb: hello

注意

  • .bb/.bbappendにはbbdebugを使用すると説明したが、正確にはシェルスクリプトで処理を記載する場合にbbdebugを使用する。
  • .bbclassにはbb.debugを使用すると説明したが、正確にはpythonスクリプトで処理を記載する場合にbb.debugを使用する。
  • yoctoでは、pythonスクリプト/シェルスクリプトを選択して利用できるが、多くの場合、.bb/.bbappendはシェルスクリプト、.bbclassはpythonスクリプトで記述されている。
  • sstate-cacheを使用している場合、前回ビルドの一部使用するため、デバッグログが出力されない場合がある。
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1