This service is available only in Japanese-language.
linuxkernel上の新規DTBファイルを作成、追加する方法を教えて下さい。
dtsファイルを記述し、make dtbsで使用する
arch/arm64/boot/dts/freescale/Makefile
にdtbファイル名を追加しても、bitbake時には無視されます。
***/meta-bsp/conf/machine/<machine名>.conf
に
KERNEL_DEVICETREE += "<file_path>/<新規dtb名>.dtb
と追記すると、構築出来ます。
しかし、build下のlocal.confに
KERNEL_DEVICETREE += "<file_path>/<新規dtb名>.dtb
を記載しても、構築されません。
元のrecipeに手を加える事なく、新たなDTBを構築するには、どうしたら良いでしょうか?
yakuhito
2019/9/4 (水) 10:59
local.conf で指定した値は、machine.conf の読み込みで上書きされます
元のマシン定義ファイルは、local.conf 等で追加されることを想定していない作りですね。
マシン定義ファイルを変更することなく、新たなDTBを構築する場合には、元のマシン定義ファイルをrequire で指定した
新規のマシン定義ファイルを、conf/machine/ 以下に作成することで可能かと。
=============================================
require conf/machine/<machine名>.conf
KERNEL_DEVICETREE += "<file_path>/<新規dtb名>.dtb
=============================================
上記マシン定義ファイルを指定して、カーネルレシピに対してbitbake -e を実行した際に
新規DTBファイルがKERNEL_DEVICETREE変数に追加されることを確認しております。
iwanami
2019/9/4 (水) 11:50
build配下のconf/machine/に
build配下のconf/machine/に<machine名>.conf
を作成、内容は
require conf/machine/<machine名>.conf
KERNEL_DEVICETREE += "<file_path>/<新規dtb名>.dtb"
ということでしょうか?
yakuhito
2019/9/4 (水) 12:07
追加したレイヤー内に作成します
マシンコンフィグレーションファイルの検索パスはconf/bblayers.conf に記載されたレイヤー内となります。
新規に追加するマシンですので、bitbake-layers create-layer で作成したレイヤーの conf/machine 以下に作成します。
iwanami
2019/9/4 (水) 14:18
build下のconf/local.confで
build下のconf/local.confで
MACHINE ??= '<新規machine名>'
と変更
作成したレイヤーのconf下にmachineディレクトリを作成、
<新規machine名>.conf ファイルを作成し、
require conf/machine/<旧Machine名>
KERNEL_DEVICETREE += ""<file_path>/<新規dtb名>.dtb"
を記述したところ、新規dtbが追加されました。