2020年10月26日月曜日

petalinuxの設定内容を読むその1,local.conf

petalinuxが何を設定しているのかを調査していく。

こちらのサイトで紹介されている方法で作成したものを便宜上vanilla-petalinuxと呼び、petalinuxツールで--get-hw-descriptionで生成したプロジェクトをcustom-petalinuxと呼ぶ。

目的はvanila-petalinuxに対してどのような設定を付加するとcustom-petalinux相当のデータが生成されるのかを明らかにすること。 petalinuxのコンフィグファイル、meta-plnx-generated、meta-userを追加すれば良いのだろうけど、何をしているのかがわかればpetalinuxのインストール自体不要となりそうなので調べてみる。 yoctoの理解につながるだろうし。

最初はそれぞれのbuild/conf/local.confを比較していく。 コメントは除き、以下は同じとなっている。

MACHINE ??= "qemuzynq"
PATCHRESOLVE = "noop"
BB_DISKMON_DIRS = "\
    STOPTASKS,${TMPDIR},1G,100K \
    STOPTASKS,${DL_DIR},1G,100K \
    STOPTASKS,${SSTATE_DIR},1G,100K \
    STOPTASKS,/tmp,100M,100K \
    ABORT,${TMPDIR},100M,1K \
    ABORT,${DL_DIR},100M,1K \
    ABORT,${SSTATE_DIR},100M,1K \
    ABORT,/tmp,10M,1K"
XILINX_VER_MAIN = "2019.2"
PMU_FIRMWARE_DEPLOY_DIR = "${DEPLOY_DIR_IMAGE}"
PMU_FIRMWARE_IMAGE_NAME = "pmu-firmware-${MACHINE}"
CONF_VERSION = "1"

特に気になる内容は含まれていない。バージョンの指定、PMU_FIRMWAREの出力先、イメージ名が設定されているのが分かる。

異なっているのは以下の内容でいずれもcustom-petalinuxにのみ記載されている。

INHERIT += "rm_work"

TMPDIR = "${TOPDIR}/tmp"
TCLIBCAPPEND = ""
DL_DIR = "${TOPDIR}/downloads"
INHERIT += "uninative"
UNINATIVE_CHECKSUM[x86_64] = "c6954563dad3c95608117c6fc328099036c832bbd924ebf5fdccb622fc0a8684"

INHERIT_remove = "buildhistory icecc"
CONNECTIVITY_CHECK_URIS = ""

SIGGEN_LOCKEDSIGS_SSTATE_EXISTS_CHECK = "none"

SIGGEN_LOCKEDSIGS_TASKSIG_CHECK = "warn"

BB_HASHCONFIG_WHITELIST_append = " SIGGEN_UNLOCKED_RECIPES"

BB_SETSCENE_ENFORCE_WHITELIST = "%:* *:do_shared_workdir *:do_rm_work wic-tools:* *:do_addto_recipe_sysroot"

BUILDCFG_HEADER = ""

# Provide a flag to indicate we are in the EXT_SDK Context
WITHIN_EXT_SDK = "1"


USE_XSCT_TARBALL = "0"
require conf/locked-sigs.inc
require conf/unlocked-sigs.inc

# Extra settings from environment:
MACHINE = "zynqmp-generic"

include conf/plnxtool.conf
include conf/petalinuxbsp.conf

INHERIT += "rm_work"はpackageのビルド後に不要なファイル等削除するオプション。
TMPDIRはtmpキャッシュ等の保存場所の指定。
TCLIBCAPPENDはlibcの識別に使用するようだけど良く分かっていない。
DL_DIRはダウンロードデータ保存先の指定。
UNINATIVE_CHECKSUMはチェック用。
INHERIT_remove = "buildhistory icecc"はビルド履歴を残す機能や分散ビルドの機能を無効化している。
CONNECTIVITY_CHECK_URIS = ""はpokyでネットワークチェックのために使用する機能をoffにしている。
SIGGEN_LOCKEDSIGS_SSTATE_EXISTS_CHECK = "none"はlockされたタスクのsstateをチェックするかどうかの設定?
SIGGEN_LOCKEDSIGS_TASKSIG_CHECK = "warn"はlockされたタスクでチェックするかとチェック結果をどう扱うかの設定。ミスマッチしてもwarningとする設定と思われる。
BB_HASHCONFIG_WHITELIST_append = " SIGGEN_UNLOCKED_RECIPES"はcache利用するかどうかの判定にSIGGEN_UNLOCKED_RECIPESを含まないことを指定
BB_SETSCENE_ENFORCE_WHITELIST = ...はSDK生成に関連する設定ぽいけど詳細はよくわからなかった。 WITHIN_EXT_SDK = "1"はxsctを供給するかどうかの設定。petalinux同梱のxsctを使用するのでcustom-petalinuxでは1となっていると思われる。 meta-xilinx-tools/classes/xsct-tarball.bbclassにて使用している。
USE_XSCT_TARBALL = "0"はxsctを取得するかどうかの設定。custom-petalinuxではインストール済のxsctを使用するため0となっている。
require conf/locked-sigs.inc,require conf/unlocked-sigs.incはビルド結果を固定するものしないものの指定。
MACHINE = "zynqmp-generic"はMACHINE設定の上書き。
vanilla-petalinuxはコマンドラインで同様の指定を行っている。
include conf/plnxtool.confはcustom-petalinuxの設定を行っている。build/conf/plnxtool.confに記載。中身は別途確認する。
include conf/petalinuxbsp.confはdeploy_imageを設定している模様。project-spec/meta-user/conf/petalinuxbsp.confに記載。中身は別途確認する。

参考ページ
https://www.yoctoproject.org/docs/1.8/ref-manual/ref-manual.html
https://git.yoctoproject.org/cgit.cgi/poky/plain/meta/classes/sstate.bbclass
https://yoctobbq.lineo.co.jp/?q=node/171

0 件のコメント:

コメントを投稿