目次: Yocto
Yocto Scarthgap(5.0.1)のメモです。Yoctoの使い方は以下の2手でした。
$ source oe-init-build-env $ bitbake core-image-sato
テンプレートディレクトリを元にしてビルドディレクトリ(正確にはbuild/confディレクトリ)を作成します。Yoctoのドキュメント(Creating a Custom Template Configuration Directory - The Yocto Project)によると、テンプレートディレクトリのパスはTEMPLATECONF環境変数で指定できるとあります。
もし何も設定しないと.templateconfファイル内に書かれた設定をデフォルトの設定として使います。内容はこんな感じです。
$ less .templateconf # Template settings TEMPLATECONF=${TEMPLATECONF:-meta-poky/conf/templates/default}
テンプレートディレクトリの中にあるファイルはこんな感じ。
$ ls meta-poky/conf/templates/default/ bblayers.conf.sample conf-summary.txt local.conf.sample.extended conf-notes.txt local.conf.sample site.conf.sample
テンプレートファイルからビルドディレクトリを作成する際は、単なるコピーではなく##OEROOT##のような変数をパスに展開した内容がコピーされます。下記はOEROOTの展開例です。
$ diff -u meta-poky/conf/templates/default/bblayers.conf.sample build/conf/bblayers.conf
--- meta-poky/conf/templates/default/bblayers.conf.sample 2024-05-30 13:17:58.926938821 +0900
+++ build/conf/bblayers.conf 2024-05-31 14:58:51.741378271 +0900
@@ -6,7 +6,7 @@
BBFILES ?= ""
BBLAYERS ?= " \
- ##OEROOT##/meta \
- ##OEROOT##/meta-poky \
- ##OEROOT##/meta-yocto-bsp \
+ /home/katsuhiro/share/projects/oss/poky/meta \
+ /home/katsuhiro/share/projects/oss/poky/meta-poky \
+ /home/katsuhiro/share/projects/oss/poky/meta-yocto-bsp \
"
ぱっと見だとテンプレートディレクトリの場所はどこでも良さそうですがそんなことはありません。テンプレートがpoky/meta-poky/conf/templates/defaultだとしたら、
poky/meta-poky/conf/templates/ の2つ上のディレクトリの下のconf/layer.confすなわち、 poky/meta-poky/conf/layer.conf が必要です。
一言で言えばテンプレートがあるディレクトリの2つ上(Yoctoを例にすればmeta-poky)にconf/layer.confが存在しないエラーですが、そんな制約知らんわー……。
ちなみにテンプレートディレクトリを作成する場合は手で作成するのではなく、bitbake-layers save-build-confコマンドを使用するそうです(ドキュメント参照)。
セットアップディレクトリによって、ビルドディレクトリbuildが生成され、BBPATHとBUILDDIRがビルドディレクトリを指すようになります。ビルドディレクトリ下には、テンプレートディレクトリからbuild/confディレクトリが生成されます。ファイルの中身を見ると、
#### build/conf/bblayers.conf # POKY_BBLAYERS_CONF_VERSION is increased each time build/conf/bblayers.conf # changes incompatibly POKY_BBLAYERS_CONF_VERSION = "2" BBPATH = "${TOPDIR}" BBFILES ?= "" BBLAYERS ?= " \ /home/katsuhiro/share/projects/oss/poky/meta \ /home/katsuhiro/share/projects/oss/poky/meta-poky \ /home/katsuhiro/share/projects/oss/poky/meta-yocto-bsp \ " #### build/conf/conf-notes.txt ### Shell environment set up for builds. ### You can now run 'bitbake <target>' Common targets are: core-image-minimal core-image-full-cmdline core-image-sato core-image-weston meta-toolchain meta-ide-support You can also run generated qemu images with a command like 'runqemu qemux86-64'. Other commonly useful commands are: - 'devtool' and 'recipetool' handle common recipe tasks - 'bitbake-layers' handles common layer tasks - 'oe-pkgdata-util' handles common target package tasks #### build/conf/conf-summary.txt This is the default build configuration for the Poky reference distribution. #### build/conf/local.conf (設定項目がたくさんある、ここでは省略) #### build/conf/templateconf.cfg meta-poky/conf/templates/default
セットアップスクリプトの時点でもシステムの複雑さの片鱗が見え隠れしています。まともにコードで追うのを諦めて正解でした。そんなことしていたら日が暮れてしまいます。今回登場したファイル、ディレクトリは、
こんなもんでしょうか。次回はいよいよbitbakeに突入です。
< | 2024 | > | ||||
<< | < | 05 | > | >> | ||
日 | 月 | 火 | 水 | 木 | 金 | 土 |
- | - | - | 1 | 2 | 3 | 4 |
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 | - |
合計:
本日: