作成者:kazpy 作成日:2016/12/17 (土) 14:41
レイヤーの優先度を一覧表示するコマンドはありますか?
作成者:みつきん 作成日:2025/3/25 (火) 18:14
Yocto Project 公式実践講座 (LFD461-JP)の講座中よくいただく質問について紹介します。
■ レイヤ間のパッチの適用順序について
1つのレシピ(bb)に対して複数のレイヤにアペンドファイル(bbappend)が存在する場合の
do_patchの適用順序についてよく質問されます。
作成者:mackey 作成日:2022/11/11 (金) 10:53
perlスクリプトを/usr/binに格納するだけの自作レシピ(aaa.bb)があり,これはgit等ではなくローカルにファイルが存在します。
当該スクリプトの一部値をレイヤーごと切り替えたいため,
別途自作レイヤーを用意しました。
試しにdevtoolでパッチ作成を試みたところ,問題なさそうなaaa.bbappendとパッチが用意できたため,
ビルドを試行しました。
しかし,以下のようなエラーが発生します。
Applying patch aaa.patch
can't find file to patch at input line 14
Perhaps you used the wrong -p or --strip option?
patch内記載のpathが悪いのかと,見直したり変更したりしましたが,効果がなく,
おそらくpathの記載以外の原因でこのようになっていると思われます。
なにか本件解決するための情報がございましたら,ご教示いただけますと幸いです。
なお,エラーが発生するのはdevtool finishした後だけであり,devtool modify+編集だけではエラーが発生しません,
作成者:may 作成日:2022/9/27 (火) 14:20
とあるパッケージで、.profileをinstallしています。
その.profileを変更したく、ローカルのレイヤにbbappendファイルを以下のように作成しました。
---
FILESEXTRAPATHS_prepend := "${THISDIR}/${BPN}:"
SRC_URI += "file://dot.profile"
do_install_append() {
install -m 0644 ${WORKDIR}/dot.profile ${D}/home/root/.profile
}
---
bitbakeすると、とあるパッケージのパス/dot.profile': No such file or directory
と出てしまい、ビルドできませんでした。
${THISDIR},${WORKDIR}などを試しましたが状況は変わりませんでした。
${WORKDIR}が元のパッケージ側に引っ張られていると考えています。
FILESEXTRAPATHS_prependで、現在のパスに設定されると考えていたのですが、記述の不足などがありますでしょうか。
ご教授いただけましたら幸いです。
作成者:mackey 作成日:2022/8/4 (木) 11:42
現在,bitbakeで生成されるdebとイメージの双方を使用しています。
systemdのserviceが存在するパッケージを新規に作成し,inherit systemd,SYSTEMD_AUTO_ENABLE_${PN} = "enable"
等記載することで,起動時に自動実行されるようにしています。
しかし,イメージ書き込み・Linux起動後にdebをインストールする際,systemdのdeamon-reloadやrestartが発生することを防ぎたいです。
systemd.bbclass内,systemd_postinst()を編集すればよいかとも考えましたが(未試行)
影響範囲があまりにも広いため,他になにか良い方法がございましたらご教示いただけますと幸いです。
作成者:SO 作成日:2022/5/25 (水) 08:31
Yoctoイメージに、ntp, ntpdataアプリケーションをインストールしたく、
bblayers.conf に下記レイヤーを追加してbitbakeしましたが、Yoctoイメージにはインストールされていませんでした。
${TOPDIR}/../meta-openembedded/meta-networking \
${TOPDIR}/../meta-openembedded/meta-python \
** Yocto imageでの実行結果:コマンドなし
~# ntp
-sh: ntp: command not found
~# ntpdata
-sh: ntpdata: command not found
meta-networking下には確かにntpレシピは存在するので、meta-networkingを追加すれば自然とinstallされると期待しておりました。
ntpレシピ:meta-openembedded/meta-networking/recipes-support/ntp/ntp_4.2.8p11.bb
また、downloadフォルダには、レシピに書いてあるようなntp-${PV}.tar.gz は存在しておらず、レシピが実行されていないのでは、と考えております。
解決方法をご教授いただければ幸いです。
よろしくお願い致します。
作成者:SO 作成日:2022/3/3 (木) 16:38
あるボードのbspに対して、kernel configの変更を加えましたが、変更が反映されていないようです。
元のbspのレイヤーより優先度を上げた自作レイヤーにて、パッチを用意しkernel部分のみbitbakeして確認しましたが、
menuconfigで確認すると変更が反映されていませんでした。
間違い、確認事項があればご教授いただければ幸いです。
よろしくおねがいします。
---------------------------------手順----------------------------------------------------
# kernel configの差分 fragment.cfg の生成
bitbake virtual/kernel -c kernel_configme -f
bitbake virtual/kernel -c menuconfig
bitbake virtual/kernel -c diffconfig
# 自作レイヤー準備
bitbake-layers create-layer meta-sample
BBFILE_PRIORITY_meta-sample = "7" #bspのvirtual/kernelが含まれるレイヤー優先度は"6"だったので"7"へ
LAYERSERIES_COMPAT_meta-sample = "sumo"
bitbake-layers add-layer ../meta-sample/
# kernel configのパッチを自作レイヤーにて作成
cp fragment.cfg ~/${WORK}/meta-sample/meta-<board-bsp>/recipes-kernel/linux/linux-<board>/
touch ~/${WORK}/meta-sample/meta-<board-bsp>/recipes-kernel/linux/linux-<board>_%.bb
FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
SRC_URI += "file://fragment.cfg"
# kernel のみbuild
bitbake virtual/kernel -c kernel_configme -f
# kernel のみbuild後、menuconfig確認
bitbake virtual/kernel -c menuconfig
--> 反映されておらず。
作成者:SO 作成日:2022/3/3 (木) 13:40
実機でのmenuconfigの確認 (https://yoctobbq.lineo.co.jp/?q=node/394)
でご質問させていただいた者です。
bitbake後、host PCにてmenuconfigの変更点が反映されているか確認する方法はありますでしょうか?
build/tmp/work-shared/<board>/kernel-source/ 直下にて
$ make menuconfig
としましたが、host pcのmenuconfigが出てきているようです。
作成者:SO 作成日:2022/3/2 (水) 21:01
下記のコマンドにて、menuconfig設定を変更し、パッチを当ててbitbakeを実施しました。
bitbake linux-yocto -c kernel_configme -f
bitbake linux-yocto -c menuconfig
bitbake linux-yocto -c diffconfig
実施後、実機にてきちんと設定が反映されているか確認がしたいのですが、下記試したところmenuconfigはできませんでした。
root@board:/usr/src# make menuconfig
make: *** No rule to make target 'menuconfig'. Stop.
実機にて確認する方法はありますか?
作成者:SO 作成日:2022/3/2 (水) 16:47
bitbake virtual/kernel -c menuconfig の箇所でmenuconfigの変更を行ったときについて
①変更内容を確認するため、.configファイルを直接見たい場合、変更後の.configはどこのdirectoryに生成されますか?
公式リファレンスでは、
${WORKDIR} under the linux-${MACHINE}-${KTYPE}-build directory.
とありますが、${WORKDIR}、${MACHINE}、${KTYPE}はどのように確認すればよろしいでしょうか?
②bitbake virtual/kernel -c diffconfig で差分を取る際、その差分は”直前に上書きした内容で差分を取っている”ように見えますが正しいでしょうか?念押しでmenuconfigを何回か立ち上げて保存を繰り返すと、fragment.cfgが生成されないため。
③bitbake virtual/kernel -c menuconfig で行った変更内容を元に戻すにはどうすればよろしいでしょうか?
参考:https://www.yoctoproject.org/docs/1.6.1/kernel-dev/kernel-dev.html
bitbake virtual/kernel -c kernel_configme -f
bitbake virtual/kernel -c menuconfig
bitbake virtual/kernel -c diffconfig
ページ