This service is available only in Japanese-language.

レイヤ

kernel configの変更の際のターゲット名

kernel configの変更の際、公式マニュアルにはターゲット名がlinux-yoctoとありますが、
とあるボードのBSPが与えられた時、ここに入るターゲット名はどのようにすれば分かりますか?

BSPのlayerを探してそれっぽい名前を見つけてくることが多いのですが、正直それで正しいのか確証が持てないので
正式なやり方が無いか探しています。
コマンドなどでターゲット名に書くべき名前を抽出する方法があれば教えてください。

参考:https://www.yoctoproject.org/docs/1.6.1/kernel-dev/kernel-dev.html

bitbake linux-yocto -c kernel_configme -f
bitbake linux-yocto -c menuconfig
bitbake linux-yocto -c diffconfig

COMPAT変数をbitbakeコマンドで追加する方法

layerを自作した後、layer.conf内にCOMPAT変数をいつも手動で書き込んでいますが、
bitbakeのコマンドでこの変数を追加できるものはございますか?

LAYERSERIES_COMPAT_meta-sample = "sumo"

bitbake-layers create-layerで生成されるlayer名

下記のようにbitbake-layers create-layer ../meta-sample でlayerを追加すると「../」の部分もlayer名に含まれているように見受けられます(layer.conf参照)。
buildの1つ上の階層にlayerを作りたいが、layer名に「../」を入れたくない場合、どのようにコマンドを発行すればよろしいでしょうか?

~$ export WORK=yocto_sample
~$ cd ~/${WORK}
~/yocto_sample$ source poky/oe-init-build-env
~/yocto_sample/build$ bitbake-layers create-layer ../meta-sample

~/yocto_sample/build$cat ~/${WORK}/meta-sample/conf/layer.conf
...
BBFILE_COLLECTIONS += "../meta-sample"
BBFILE_PATTERN_../meta-sample = "^${LAYERDIR}/"
BBFILE_PRIORITY_../meta-sample = "6"
...

bbappendによって追加したファイルの上書きについて

usbotg-gadget-config.bbという既存のレシピに対し,
レイヤー(meta-aaa)にてaaa.incというファイル(コンパイル不要なスクリプトのファイル)を追加し,
別レイヤー(meta-bbb)にてaaa.incを上書きしようとしています(パッチではなくファイルそのものの入れ替えです)
しかしどうしてもビルド結果はmeta-aaaの方のaaa.incが格納されています。

bitbake-layers show-layersで確認できる,レイヤーの優先順位は以下のようになっています。(数字が大きいほど優先度が高いものと認識しています)
meta-aaa (パス省略) 6
meta-bbb (パス省略) 8

各bbappendの内容は以下のとおりです。

◆meta-aaa内,usbotg-gadget-config.bbappend

FILESEXTRAPATHS_prepend += "${THISDIR}/${PN}:"

SRC_URI += "file://. "
do_install_append() {
if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
install -m 0755 ${WORKDIR}/aaa.inc ${D}${base_sbindir}
fi
}

◆meta-bbb内,usbotg-gadget-config.bbappend

FILESEXTRAPATHS_prepend += "${THISDIR}/${PN}:"

SRC_URI += "file://. "
do_install_append() {
if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
rm -fr ${D}${base_sbindir}/aaa.inc
install -m 0755 ${WORKDIR}/aaa.inc ${D}${base_sbindir}
fi
}

格納しているパスに誤りないかも見直していますが,正しいものと思われます。
なにかmeta-bbb内のaaa.incを格納するためのアドバイスをいただけますと幸いです。

devtoolのlocal fileに対する使用

meta-aaaとmeta-bbbが存在し,双方ともbitbake(内で実行されるgitダウンロード等)とは別の方法で入手したソースを
ローカルに展開し使用しています。

devtoolによってmeta-bbbのソースへの変更をパッチとして作成し,meta-aaaにbbappendとして追加しようとしています。
debtool modify (レシピ名ccc)を行うと,出力先に以下のように展開されます。
(レシピcccはmeta-bbbの下にあります)

ccc
├── ccc_1.3
├── oe-local-files
└── source-date-epoch

ソースコードはccc_1.3とoe-local-filesに入っているように見えます。
しかし,ccc_1.3の中のファイルは全て破損(壊れたリンク?)となっているようです。
oe-local-filesには壊れていないソースコードが入っていますが,通常devtoolはgitリポジトリのように展開され変更がコミットできるようになるところ,
oe-local-files内のファイルはgit管理下にないようです。

本件,devtoolをこの条件下で使用するにあたり情報ございましたらご教授いただけますと幸いです。

ヘッダーオンリーなレシピの更新の認識について

ヘッダーオンリーライブラリのように,複数のレシピで一つのヘッダーを扱うために,以下のようなレシピを作成し運用しています。
(レシピ名:libaaa.bb)
SECTION = "libs"
LICENSE = "CLOSED"

FILES_${PN}-dev += "${includedir}/*.h "
INHIBIT_PACKAGE_DEBUG_SPLIT = "1"

ALLOW_EMPTY_${PN} = "1"
SRC_URI = "file://."
S = "${WORKDIR}"

do_install() {
install -d ${D}${includedir}
install -m 0755 *.h ${D}${includedir}/
}

これを使用するレシピでDEPENDS += " libaaa"と記載することでビルドに成功しています。
しかしヘッダの内容(例えばenumのメンバの割当変更)等を行うと,更新が認識されていないのか,エラーは出ないものの実行結果が旧ヘッダファイル相当となってしまうことがございます。
特にビルドPCとは別のPCで作成し,(複数の独自レシピ・ソースをを一つのgitで管理している状態で)また別のPCでビルドすると発生するように見受けられます。
レシピの記載に不足点ないか,ご回答いただけますでしょうか。
(追記)bitbake -c cleanall (libaaaを参照するレシピ名)とし,ビルドし直すことで新ヘッダファイルが適用されますが,毎回cleanすることも困難なため,bitbakeの仕組みの方で更新を認識できるようにしたいです。l

raspberrypi用のimageにmeta-browserによってfirefoxを追加したい。

件について、meta-browserにより、firefoxを追加したいため、local.confを以下のように変更しました。

== local.conf ==

MACHINE ?= "raspberrypi2"
..
LICENSE_FLAGS_WHITELIST += "commercial commercial_faad2 commercial_gstreamer1.0-plugins-ugly"
IMAGE_INSTALL_append = " firefox"

また、bitbake-layers add-layerを用いて、各レイヤを追加しました。
firefoxを利用するためには、meta-rustも必要とのことでしたので、meta-rustも追加しました。

== bblayers.conf ==

BBLAYERS ?= " \
/home/masato/home/poky/meta \
/home/masato/home/poky/meta-poky \
/home/masato/home/poky/meta-yocto-bsp \
/home/masato/home/poky/meta-raspberrypi \
/home/masato/home/poky/meta-openembedded/meta-oe \
/home/masato/home/poky/meta-clang \
/home/masato/home/poky/meta-rust \
/home/masato/home/poky/meta-openembedded/meta-python \
/home/masato/home/poky/meta-openembedded/meta-networking \
/home/masato/home/poky/meta-openembedded/meta-multimedia \
/home/masato/home/poky/meta-browser \

このあと、bitbake core-image-satoを実行したのですが、以下のエラーが生じて解決できずにいます。
ERROR: ParseError at ~/meta-browser/dynamic-layers/rust-layer/recipes-browser/mozilla-devscripts/mozilla-devscripts_git.bb:15: Could not inherit file classes/distutils.bbclass

なお、meta-browserを省き、 IMAGE_INSTALL_appendの行も省いたところ、buildはパスしました。
このあと、どこを修正する必要があるかお教えいただけませんでしょうか。
宜しくお願い致します。

wireless-toolsを最新のpokyで使用する方法

お世話になっております。掲題の件につきましてお尋ねいたします。
かねてよりpokyからwireless-toolsが削除されておりますが、最新のpokyでwireless-toolsを使用したい場合
方法はありますでしょうか。

イメージに組み込むアプリケーションでwireless-toolsのライブラリを使用しているため、引き続き使用したく考えております。

一応、wireless-toolsの後継となっているiwをRDPENDSやCORE_IMAGE_EXTRA_INSTALLに追記しているのですが、iwlib.hが存在せずビルドエラーとなっている状態です。
もちろん、今後のことを考えるとwireless-toolsをiwに置き換えたほうが良いとは思うのですが、wireless-toolsを使用する方法があればご教示いただけますと幸いです。

よろしくお願いいたします。

wireless-toolsを最新のpokyで使用する方法

お世話になっております。掲題の件につきましてお尋ねいたします。
かねてよりpokyからwireless-toolsが削除されておりますが、最新のpokyでwireless-toolsを使用したい場合
方法はありますでしょうか。

イメージに組み込むアプリケーションでwireless-toolsのライブラリを使用しているため、引き続き使用したく考えております。

一応、wireless-toolsの後継となっているiwをRDPENDSやCORE_IMAGE_EXTRA_INSTALLに追記しているのですが、iwlib.hが存在せずビルドエラーとなっている状態です。
もちろん、今後のことを考えるとwireless-toolsをiwに置き換えたほうが良いとは思うのですが、wireless-toolsを使用する方法があればご教示いただけますと幸いです。

よろしくお願いいたします。

デバイスツリーの追加方法

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を構築するには、どうしたら良いでしょうか?

ページ