====== Tips ====== * [[https://stackoverflow.com/questions/51002891/overwriting-yocto-classes-through-meta-layer|Overwriting Yocto Classes through meta-layer]] ===== 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.bb'' * ''src/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 [[https://docs.yoctoproject.org/ref-manual/variables.html?highlight=machineoverrides#term-MACHINEOVERRIDES|MACHINEOVERRIDES]] can be used: [[https://github.com/Freescale/meta-freescale/blob/master/classes/machine-overrides-extender.bbclass|machine-overrides-extender.bbclass]] ===== logging ===== inherit logging bb.debug("HELLO = %s" % HELLO)