meta data for this page
Tips
manual patching
According to src/poky/meta/classes-recipe/kernel-yocto.bbclass kernel patches are skipped if 'patchdir' exists.
``kernel-yocto.bbclass`` cannot handle this special case so patches needs to be applied manually.
OVERLAY_PREFIX="${SOURCE_PREFIX}/linux_5_15/overlay" SRC_URI:append = " \ file://0003-xxx.patch;patchdir=${OVERLAY_PREFIX};subdir=${OVERLAY_PREFIX} \ file://0004-xxx.patch;patchdir=${OVERLAY_PREFIX};subdir=${OVERLAY_PREFIX} \ " do_patch:prepend() { patch -b -d ${OVERLAY_PREFIX} -p 1 -i 0003-xxx.patch patch -b -d ${OVERLAY_PREFIX} -p 1 -i 0004-xxx.patch }
It is possible to use generic Yocto patcher and call
bb.build.exec_func('patch_do_patch', d)
as it is performed by recipes:
src/meta-openembedded/meta-oe/recipes-multimedia/id3lib/id3lib_3.8.3.bbsrc/meta-openembedded/meta-networking/recipes-support/netcat/netcat-openbsd_1.195.bb
black list recipe
- create bbappend and set
COMPATIBLE_MACHINE = “x”to prevent use of recipe - BBMASK
BBMASK += "meta-rity/meta/recipes-core/init-ifupdown/init-ifupdown_%.bbappend"
Pass env variables to bitbake
To control additional or user defined recipe's variables from env (usefull for CI) add variables to BB_ENV_PASSTHROUGH_ADDITIONS:
export foo="BAR" export BB_ENV_PASSTHROUGH_ADDITIONS="${BB_ENV_PASSTHROUGH_ADDITIONS} foo BUILD_VERSION CI_COMMIT_BRANCH CI_COMMIT_SHORT_SHA" bitbake ...
add files to rootfs
IMAGE_PREPROCESS_COMMAND += “rsync -a –exclude=.git ${FILE_SRC}/rootfs/* ${WORKDIR}/rootfs;”
override .conf
No override or appends mechanism. But some workaround possible:
- override variables in
local.conf - create new conf file and inherit old one with
require - create new conf file with the same name to mask old file (take care of layer priority)
MACHINEOVERRIDES
When creatung new machine.conf based on existing one MACHINEOVERRIDES can be used:
logging
inherit logging bb.debug("HELLO = %s" % HELLO)