This service is available only in Japanese-language.

yocto BSPに含まれるカーネルの変更

https://yoctobbq.lineo.co.jp/?q=node/80
を参考に、カーネルバージョンの変更を試みています。
レシピ
~/yocto/sources/meta-freescale-3rdparty/recipes-kernel/linux/linux-congatec_4.9.88.bb

レシピ内で指定しているファイル
~/yocto/sources/meta-freescale-3rdparty/recipes-kernel/linux/linux-congatec-4.9.88

このカーネル4.9.88と同位置にカーネル4.1.15が存在しています。
(提供されているBSPがこの構成になっています)
linux-boundary-rt_4.1.15.bb
linux-boundary-rt-4.1.15

そこで、PREFERRED_VERSIONにてカーネルバージョン変更(4.9.88から4.1.15へ変更)を試みました。
local.conf内に下記の1行を追加してbitbakeを実行しました。

PREFERRED_VERSION_lnux-boundary-rt=“4.1%"

結果はエラーが起きまして、下記のメッセージでした。
---------------------------------------------------------------------------------------------------------------
test1234@test1234:~/yocto/build$ bitbake fsl-image-machine-test
ERROR: Unable to start bitbake server
ERROR: Server log for this session (/home/test1234/yocto/build/bitbake-cookerdaemon.log):
--- Starting bitbake server pid 9596 at 2019-09-12 18:22:54.974762 ---
ERROR: ParseError at /home/test1234/yocto/build/conf/local.conf:23: unparsed line: 'PREFERRED_VERSION_lnux-boundary-rt = “4.1%"'

test1234@test1234:~/yocto/build$
----------------------------------------------------------------------------------------------------------------
bitbake-cookerdaemon.logを見てみても、上記のエラーメッセージが載っているだけでした。
考えられる原因と対策は何でしょうか?

エラーメッセージにあるように
> ERROR: ParseError at /home/test1234/yocto/build/conf/local.conf:23: unparsed line: 'PREFERRED_VERSION_lnux-boundary-rt = “4.1%"'
と、PREFERED_VERSION_ の後に記述されたレシピに該当するものが見つからないためエラーとなっています。
conf/bblayers.conf に記載された各レイヤーディレクトリのconf/layer.conf では、このレイヤー内のbbファイルやbbappendファイルがどこにあるか定義してあり、bbファイル、bbappendファイルの名称をデータベース化しています。
このデータベースに登録されているレシピ名に合致しなかったため、ParseErrorが発生しています。

PREFERRED_VERSION_linux-boundary-rt=“4.1%"
として漏れていた「i」を入れて試してみましたが、それでもエラーが発生しました。
下記の内容を見て頂いて、原因と対策をご教示頂けますでしょうか?

conf/bblayers.conf の内容が下記です。
-----------------------------------------------------------------------------------
LCONF_VERSION = "7"

BBPATH = "${TOPDIR}"
BSPDIR := "${@os.path.abspath(os.path.dirname(d.getVar('FILE', True)) + '/../..')}"

BBFILES ?= ""
BBLAYERS = " \
${BSPDIR}/sources/poky/meta \
${BSPDIR}/sources/poky/meta-poky \
\
${BSPDIR}/sources/meta-openembedded/meta-oe \
${BSPDIR}/sources/meta-openembedded/meta-multimedia \
\
${BSPDIR}/sources/meta-freescale \
${BSPDIR}/sources/meta-freescale-3rdparty \
${BSPDIR}/sources/meta-freescale-distro \
-----------------------------------------------------------------------------------
そして、conf/layer.confは、
meta-freescale-3rdparty/conf/layer.confの内容が下記です。
-----------------------------------------------------------------------------------
# We have a conf and classes directory, add to BBPATH
BBPATH .= ":${LAYERDIR}"

# We have a packages directory, add to BBFILES
BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \
${LAYERDIR}/recipes-*/*/*.bbappend"

BBFILE_COLLECTIONS += "fsl-arm-extra"
BBFILE_PATTERN_fsl-arm-extra := "^${LAYERDIR}/"
BBFILE_PRIORITY_fsl-arm-extra = "4"

LAYERSERIES_COMPAT_fsl-arm-extra = "sumo"
LAYERDEPENDS_fsl-arm-extra = "core freescale-layer"
-----------------------------------------------------------------------------------
となっています。

レシピファイル等の構成は、下記のようになっています。
test1234@test1234:~/yocto/sources/meta-freescale-3rdparty/recipes-kernel/linux$ ls
linux-advantech-4.9 linux-fslc_%.bbappend
linux-advantech_4.9.bb linux-gateworks-imx-3.14
linux-boundary-4.9.x linux-gateworks-imx_3.14.bb
linux-boundary-rt-4.1.15 linux-karo-3.16
linux-boundary-rt_4.1.15.bb linux-karo_3.16.bb
linux-boundary-rt_4.1.15.bb_org linux-timesys-3.13
linux-boundary_4.9.x.bb linux-timesys_3.13.bb
linux-compulab-3.14.28 linux-toradex-4.1
linux-compulab_3.14.28.bb linux-toradex-4.1-2.0.x
linux-congatec-4.9.88 linux-toradex-4.4
linux-congatec_4.9.88.bb linux-toradex_4.1-2.0.x.bb
linux-congatec_4.9.88.bb_org linux-toradex_4.1.bb
linux-denx linux-toradex_4.4.bb
linux-denx.inc linux-variscite-4.1.15
linux-denx_3.9.bb linux-variscite_4.1.15.bb

layer.confの構成は、
test1234@test1234:~/yocto/sources/meta-freescale-3rdparty/conf$ ls
layer.conf machine

bblayers.conは、
test1234@test1234:~/yocto/build/conf$ ls
bblayers.conf local.conf.sample sanity_info
local.conf local.conf_org templateconf.cfg

何卒宜しくお願い致します。

linux kernel に関しては、複数のレシピが存在するため、どのレシピを使用するのか指定するため、linux-boundary-rt_4.1.15
を使用する場合は PREFERED_PROVIDER 変数の virtual/kernel の項目に "linux-boundary-rt" が指定されている必要があります。

~yocto/sources/meta-freescale-3rdparty/conf/machineの中にある、cgtimx6.conf を編集しましてbitbakeを実行したところ、
エラーが発生しました。

原因と対策方法をご教示願います。

bitbake時のメッセージを示します。
---------------------------------------------------------------------------------------
DEBUG: Executing shell function do_compile
/home/test1234/yocto/build/tmp/work/cgtimx6-fslc-linux-gnueabi/linux-boundary-rt/4.1.15-r0/temp/run.do_compile.23564: 247: /home/test1234/yocto/build/tmp/work/cgtimx6-fslc-linux-gnueabi/linux-boundary-rt/4.1.15-r0/temp/run.do_compile.23564: arm-fslc-linux-gnueabi-gcc: not found
NOTE: make -j 8 HOSTCC=gcc -isystem/home/test1234/yocto/build/tmp/work/cgtimx6-fslc-linux-gnueabi/linux-boundary-rt/4.1.15-r0/recipe-sysroot-native/usr/include -O2 -pipe -L/home/test1234/yocto/build/tmp/work/cgtimx6-fslc-linux-gnueabi/linux-boundary-rt/4.1.15-r0/recipe-sysroot-native/usr/lib -L/home/test1234/yocto/build/tmp/work/cgtimx6-fslc-linux-gnueabi/linux-boundary-rt/4.1.15-r0/recipe-sysroot-native/lib -Wl,-rpath-link,/home/test1234/yocto/build/tmp/work/cgtimx6-fslc-linux-gnueabi/linux-boundary-rt/4.1.15-r0/recipe-sysroot-native/usr/lib -Wl,-rpath-link,/home/test1234/yocto/build/tmp/work/cgtimx6-fslc-linux-gnueabi/linux-boundary-rt/4.1.15-r0/recipe-sysroot-native/lib -Wl,-rpath,/home/test1234/yocto/build/tmp/work/cgtimx6-fslc-linux-gnueabi/linux-boundary-rt/4.1.15-r0/recipe-sysroot-native/usr/lib -Wl,-rpath,/home/test1234/yocto/build/tmp/work/cgtimx6-fslc-linux-gnueabi/linux-boundary-rt/4.1.15-r0/recipe-sysroot-native/lib -Wl,-O1 -Wl,--allow-shlib-undefined -Wl,--dynamic-linker=/home/test1234/yocto/build/tmp/sysroots-uninative/x86_64-linux/lib/ld-linux-x86-64.so.2 HOSTCPP=gcc -E uImage CC=arm-fslc-linux-gnueabi-gcc -mno-thumb-interwork -marm -fuse-ld=bfd -fdebug-prefix-map=/home/test1234/yocto/build/tmp/work/cgtimx6-fslc-linux-gnueabi/linux-boundary-rt/4.1.15-r0=/usr/src/debug/linux-boundary-rt/4.1.15-r0 -fdebug-prefix-map=/home/test1234/yocto/build/tmp/work/cgtimx6-fslc-linux-gnueabi/linux-boundary-rt/4.1.15-r0/recipe-sysroot= -fdebug-prefix-map=/home/test1234/yocto/build/tmp/work/cgtimx6-fslc-linux-gnueabi/linux-boundary-rt/4.1.15-r0/recipe-sysroot-native= -fdebug-prefix-map=/home/test1234/yocto/build/tmp/work-shared/cgtimx6/kernel-source=/usr/src/kernel LD=arm-fslc-linux-gnueabi-ld.bfd LOADADDR=0x10008000
/home/test1234/yocto/build/tmp/work-shared/cgtimx6/kernel-source/Makefile:664: Cannot use CONFIG_CC_STACKPROTECTOR_STRONG: -fstack-protector-strong not supported by compiler
make[2]: arm-fslc-linux-gnueabi-gcc: Command not found
CHK include/config/kernel.release
GEN ./Makefile
CHK include/generated/uapi/linux/version.h
CC scripts/mod/empty.o
/bin/sh: 1: arm-fslc-linux-gnueabi-gcc: not found
make[4]: *** [scripts/mod/empty.o] Error 127
make[3]: *** [scripts/mod] Error 2
make[3]: *** Waiting for unfinished jobs....
make[2]: *** [scripts] Error 2
make[1]: *** [sub-make] Error 2
make: *** [__sub-make] Error 2
ERROR: oe_runmake failed
WARNING: exit code 1 from a shell command.
ERROR: Function failed: do_compile (log file is located at /home/test1234/yocto/build/tmp/work/cgtimx6-fslc-linux-gnueabi/linux-boundary-rt/4.1.15-r0/temp/log.do_compile.23564)
------------------------------------------------------------------------------------------------------------------
log.do_compile.23564を参照しても、上記のメッセージと同じ内容でした。

次に、
cgtimx6.confの変更前と変更後を以下に示します。
変更箇所は3箇所でして、次の3点を変えました。( -> の右側が変更後の記述です)
PREFERRED_PROVIDER_virtual/kernel = "linux-congatec" -> linux-boundary-rt
PREFERRED_PROVIDER_kernel = "linux-congatec" -> linux-boundary-rt
PREFERRED_VERSION_linux-congatec = "4.9.88" -> PREFERRED_VERSION_linux-boundary-rt = "4.1.15"

<cgtimx6.conf編集前全体>
#@TYPE: Machine
#@NAME: Congatec QMX6 Evaluation board
#@SOC: i.MX6 Q/DL
#@DESCRIPTION: Machine configuration for Congatec QMX6 Evaluation board
#@MAINTAINER: Alex de Cabo <alejandro.de-cabo-garcia@congatec.com>

MACHINEOVERRIDES =. "mx6:mx6dl:mx6q:"

include conf/machine/include/imx-base.inc
include conf/machine/include/tune-cortexa9.inc

PREFERRED_PROVIDER_u-boot ?= "u-boot-congatec"
PREFERRED_PROVIDER_virtual/bootloader_cgtimx6 ?= "u-boot-congatec"
UBOOT_MAKE_TARGET = ""
UBOOT_SUFFIX = "img"
SPL_BINARY = "SPL"
UBOOT_CONFIG ??= " \
cgtumx6 \
cgtqmx6 \
"

UBOOT_CONFIG[cgtumx6] = "cgtumx6_defconfig"
UBOOT_CONFIG[cgtqmx6] = "cgtqmx6eval_defconfig"
WKS_FILE = "imx-uboot-spl-bootpart.wks"

# Use linux kernel QMX6
PREFERRED_PROVIDER_virtual/kernel = "linux-congatec"
PREFERRED_PROVIDER_kernel = "linux-congatec"
KERNEL_DEVICETREE = "imx6q-qmx6.dtb imx6dl-qmx6.dtb imx6q-umx6.dtb imx6dl-umx6.dtb"
KERNEL_IMAGETYPE = "uImage"
PREFERRED_VERSION_linux-congatec = "4.9.88"

SERIAL_CONSOLE = "115200 ttymxc1"

MACHINE_FEATURES += " pci"
MACHINE_HAS_VIVANTE_KERNEL_DRIVER_SUPPORT = "1"
MACHINE_USES_VIVANTE_KERNEL_DRIVER_MODULE = "0"

#Create only tar.bz2 image
IMAGE_FSTYPES = "tar.bz2"

IMAGE_INSTALL_append += " kernel-modules kernel-image kernel-devicetree cgt-addons-btevent cgt-addons-gpio e2fsprogs-mke2fs rpm pciutils util-linux-sfdisk can-utils libsocketcan cpuburn-neon cpufrequtils "

<cgtimx6.conf編集後全体>
#@TYPE: Machine
#@NAME: Congatec QMX6 Evaluation board
#@SOC: i.MX6 Q/DL
#@DESCRIPTION: Machine configuration for Congatec QMX6 Evaluation board
#@MAINTAINER: Alex de Cabo <alejandro.de-cabo-garcia@congatec.com>

MACHINEOVERRIDES =. "mx6:mx6dl:mx6q:"

include conf/machine/include/imx-base.inc
include conf/machine/include/tune-cortexa9.inc

PREFERRED_PROVIDER_u-boot ?= "u-boot-congatec"
PREFERRED_PROVIDER_virtual/bootloader_cgtimx6 ?= "u-boot-congatec"
UBOOT_MAKE_TARGET = ""
UBOOT_SUFFIX = "img"
SPL_BINARY = "SPL"
UBOOT_CONFIG ??= " \
cgtumx6 \
cgtqmx6 \
"

UBOOT_CONFIG[cgtumx6] = "cgtumx6_defconfig"
UBOOT_CONFIG[cgtqmx6] = "cgtqmx6eval_defconfig"
WKS_FILE = "imx-uboot-spl-bootpart.wks"

# Use linux kernel QMX6
PREFERRED_PROVIDER_virtual/kernel = "linux-boundary-rt"
PREFERRED_PROVIDER_kernel = "linux-boundary-rt"
KERNEL_DEVICETREE = "imx6q-qmx6.dtb imx6dl-qmx6.dtb imx6q-umx6.dtb imx6dl-umx6.dtb"
KERNEL_IMAGETYPE = "uImage"
PREFERRED_VERSION_linux-boundary-rt = "4.1.15"

SERIAL_CONSOLE = "115200 ttymxc1"

MACHINE_FEATURES += " pci"
MACHINE_HAS_VIVANTE_KERNEL_DRIVER_SUPPORT = "1"
MACHINE_USES_VIVANTE_KERNEL_DRIVER_MODULE = "0"

#Create only tar.bz2 image
IMAGE_FSTYPES = "tar.bz2"

IMAGE_INSTALL_append += " kernel-modules kernel-image kernel-devicetree cgt-addons-btevent cgt-addons-gpio e2fsprogs-mke2fs rpm pciutils util-linux-sfdisk can-utils libsocketcan cpuburn-neon cpufrequtils "

---------------------------------------------------------------
.bbファイルも参考までに示します。

<linux-boundary-rt_4.1.15.bb>
# Adapted from linux-imx.inc, copyright (C) 2013, 2014 O.S. Systems Software LTDA
# Released under the MIT license (see COPYING.MIT for the terms)

require recipes-kernel/linux/linux-imx.inc

SUMMARY = "Linux kernel for Boundary Devices boards"

SRC_URI = "git://github.com/boundarydevices/linux-imx6.git;branch=${SRCBRANCH} \
https://www.kernel.org/pub/linux/kernel/projects/rt/4.1/older/patch-4.1.... \
file://0001-fix-build.patch \
file://0002-no-split-ptlocks.patch \
file://0003-Work-around-CPU-stalls-in-the-imx-sdma-driver.patch \
file://0004-export-swait-locked-functions.patch \
file://defconfig \
"

SRC_URI[rt-patch.md5sum] = "4763c22c4dcf49ba07cdf60984732fe4"
SRC_URI[rt-patch.sha256sum] = "a317242e5e79fccc204f170328469e79d1aa663501dc4ec5e425199fb0ac9605"

LOCALVERSION = "-2.0.0_ga+yocto"
SRCBRANCH = "boundary-imx_4.1.15_2.0.0_ga"
SRCREV = "ff4e28b95115d7021c3ea6209b7c2b0b849874e1"
DEPENDS += "lzop-native bc-native"
#COMPATIBLE_MACHINE = "(nitrogen6x|nitrogen6x-lite|nitrogen6sx|nitrogen7)" -> オリジナルlinux-boundary-rt_4.1.15.bbの記述を注釈文に変更しました。
COMPATIBLE_MACHINE = "(cgtqmx6|cgtumx6|cgtimx6)" -> linux-congatec_4.9.88.bb内に書かれていた記述を入れました。(下記参照願います)

< linux-congatec_4.9.88.bbの内容>
# Congatec QMX6 Linux/kernel
LICENSE = "GPLv2"
require recipes-kernel/linux/linux-imx.inc
DEPENDS += "lzop-native bc-native"
SRCBRANCH = "cgt_imx_4.9.88_2.0.0"
SRC_URI = "git://git.congatec.com/arm/imx6_kernel_4.9.git;protocol=http;branch=${SRCBRANCH} \
file://defconfig \
"
SRCREV = "97493919ce796c79d60133b6bd79437db29b4660"
COMPATIBLE_MACHINE = "(cgtqmx6|cgtumx6|cgtimx6)"

先の書き込みで、.bbファイルは直接変更してはいけないことを知りました。すみません。
bbappendを生成する必要があると思いますが、
~/yocto/sources/meta-freescale-3rdparty/recipes-kernel/linux/
にbbappendファイルを置く必要があるという認識で合ってますでしょうか?
合っていましたら、linux-boundary-rt-4.1.15を指定するbbappendファイルの作り方を教えてください。

BSPのアップデート時に、変更を行った部分を再度反映させる必要があるためです。
Yoctoのbuild systemでは、カスタマイズを行うため自身でレイヤーを作成し、作成したレイヤーをconf/bblayers.conf に追加する方法が強く推奨されています。
bitbake-layers コマンドのサブコマンドcreate-layer にて新規レイヤーを作成し、作成したレイヤーをbitbake-layers のサブコマンド add-layer を使用して conf/bblayeres.conf に追記を行い、この中のディレクトリに変更内容を保存します。
上記で説明した内容は、弊社で実施しております「Yocto超実践紺座」のなかで実際にマシンに触りながら実習をおこなっておりますので、よろしければ受講をご検討下さい。
https://www.lineo.co.jp/products_services/services/schedule.html
#講座内ではQAの時間を設けており、講座内で扱っていない内容に関する質問も可能となっています。

cgtimx6.confの修正でして、 変更箇所は下記になります。

格納されているディレクトリ
~yocto/sources/meta-freescale-3rdparty/conf/machine/

<変更前>
PREFERED_PROVIDER_virtual/kernel = "linux-congatec"
PREFERED_PROVIDER_kernel = "linux-congatec"
KERNEL_DEVICETREE = "imx6q-qmx6.dtb imx6dl-qmx6.dtb imx6q-umx6.dtb imx6dl-umx6.dtb"
KERNEL_IMAGETYPE = "uImage"
PREFERED_VERSION_linux-congatec = "4.9.88"

<変更後>
PREFERED_PROVIDER_virtual/kernel = "linux-boundary-rt"
PREFERED_PROVIDER_kernel = "linux-boundary-rt"
KERNEL_DEVICETREE = "imx6q-qmx6.dtb imx6dl-qmx6.dtb imx6q-umx6.dtb imx6dl-umx6.dtb"
KERNEL_IMAGETYPE = "uImage"
PREFERED_VERSION_linux-boundary-rt = "4.1.15"

実は、上記の「PREFERED」のところの最後から3文字目のとろに「R」が1つ多く入っていまして、
「PREFERRED」となっていて、bitbakeが走らない状態でした。
それをRを1つにしてみたところbitbakeが走りまして、終盤でエラーが発生しました。

新たに出てきたエラーメッセージとしては、
do_compileのログでは、
ERROR: Function failed: do_compile (log file is located at /home/paltek/yocto/build/tmp/work/cgtimx6-fslc-linux-gnueabi/linux-fslc-imx/4.9-1.0.x+gitAUTOINC+953c6e30c9-r0/temp/log.do_compile.23058)

そしてターミナル端末上にlog.do_compile.23058と同じ内容のログ表示の後に表示されたのが、

ERROR: Task (/home/paltek/yocto/sources/meta-freescale/recipes-kernel/linux/linux-fslc-imx_4.9-1.0.x.bb:do_compile) failed with exit code '1'
NOTE: Tasks Summary: Attempted 5138 tasks of which 5128 didn't need to be rerun and 1 failed.
NOTE: Writing buildhistory

でした。
sourcesディレクトリの下の ~/meta-freescale/recipes-kernel/linux/linux-fslc-imx_4.9-1.0.x.bb に原因があるように見えます。

しかし、これまでやってきた中でレシピは、~/sources/meta-freescale-3rdparty 配下でしたので、
なぜこのようなエラーになるのか見当が付かないのですが、
この状態から考えれれる原因は何か教えていただけますでしょうか?

ERROR: Task (/home/paltek/yocto/sources/meta-freescale/recipes-kernel/linux/linux-fslc-imx_4.9-1.0.x.bb:do_compile) failed with exit code '1'
上記エラーから推測できるのは、bitbake linux-fslc-imx が実行されているように見えます。
bitbake linux-boundary-rt を実行可能かどうかご確認ください。

bitbake linux-boundary-rt とせずに、
bitbake fsl-image-machine-test としていました。(BSPのマニュアルに記載されていた形で実行してました)

しかし、
bitbake linux-boundary-rt で実行したところ、
下記のエラーメッセージが表示されました。

ERROR: Nothing PROVIDES 'linux-boundary-rt'
linux-boundary-rt was skipped: PREFERRED_PROVIDER_virtual/kernel set to linux-fslc-imx, not linux-boundary-rt

ちなみに、~yocto/sources/meta-freescale-3rdparty/conf/machine/ にある、
cgtimx6.confの「PREFERRED」ですが、「PREFERED」にしても同じエラーメッセージが表示されます。
「PREFERRED」の最後から3文字目と4文字目はRが正しいスペルでしょうか?

cgtimx6.conf内の変更箇所を改めて示しますと下記の3箇所です。
PREFERRED_PROVIDER_virtual/kernel = "linux-boundary-rt"
PREFERRED_PROVIDER_kernel = "linux-boundary-rt"
PREFERRED_VERSION_linux-boundary-rt = "4.1.15"

linux-fslc-imxの方へ行ってしまう要因としては、何が考えられるでしょうか?

local.confとlayer.confの中身を下記に示します。

~yocto/build/conf/local.conf
MACHINE ??= 'cgtimx6'
DISTRO ?= 'fslc-wayland'
PACKAGE_CLASSES ?= "package_rpm"
EXTRA_IMAGE_FEATURES ?= "debug-tweaks"
USER_CLASSES ?= "buildstats image-mklibs image-prelink"
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"
PACKAGECONFIG_append_pn-qemu-native = " sdl"
PACKAGECONFIG_append_pn-nativesdk-qemu = " sdl"
CONF_VERSION = "1"

DL_DIR ?= "${BSPDIR}/downloads/"
ACCEPT_FSL_EULA = "1"

PREFERRED_VERSION_lnux-boundary-rt=“4.1.15"

~yocto/sources/meta-freescale-3rdparty/conf/layer.conf
# We have a conf and classes directory, add to BBPATH
BBPATH .= ":${LAYERDIR}"

# We have a packages directory, add to BBFILES
BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \
${LAYERDIR}/recipes-*/*/*.bbappend"

BBFILE_COLLECTIONS += "fsl-arm-extra"
BBFILE_PATTERN_fsl-arm-extra := "^${LAYERDIR}/"
BBFILE_PRIORITY_fsl-arm-extra = "4"

LAYERSERIES_COMPAT_fsl-arm-extra = "sumo"
LAYERDEPENDS_fsl-arm-extra = "core freescale-layer"

bitbake コマンドを実行した時に最初に表示されるBuild Configuration の中でMACHINE には何が設定されているでしょうか?
?= で設定されるものは、weak default という扱いとなり、その後読み込まれたファイルの中で ?= で同じ変数に別の値が
指定された場合、後で読み込まれるふぁいるの値が有効となります。