DESCRIPTION = "Linux kernel for various NetModule hardware" COMPATIBLE_MACHINE = "cn9131-nitroc" inherit kernel SRC_URI = "git://git@bitbucket.gad.local:7999/nm-nsp/netmodule-linux.git;protocol=ssh;user=git;branch=nitroc-v6.6.y" SRCREV ?= "0b8f8f81ab0ec015002357820f50bfc2924390fe" PV = "v6.6.y+git${SRCPV}" LICENSE = "GPL-2.0-only" LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46" S = "${WORKDIR}/git" #If a KERNEL_DEFCONFIG is specified, the defconfig specified in SRC_URI will be overwritten! do_configure:append(){ if [ "${KERNEL_DEFCONFIG}" != "" ]; then oe_runmake ${KERNEL_DEFCONFIG} fi configs="${@" ".join(find_cfgs(d))}" if [ ! -z "${configs}" ]; then ${S}/scripts/kconfig/merge_config.sh -m -O ${WORKDIR}/build ${WORKDIR}/build/.config ${WORKDIR}/*.cfg fi } # The default kenrel.bbclass expects it can remove the source symlink, # newer kernels don't have this symlink so we need to override kernel_do_install kernel_do_install() { # # First install the modules # unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS MACHINE if (grep -q -i -e '^CONFIG_MODULES=y$' .config); then oe_runmake DEPMOD=echo MODLIB=${D}${nonarch_base_libdir}/modules/${KERNEL_VERSION} INSTALL_FW_PATH=${D}${nonarch_base_libdir}/firmware modules_install rm "${D}${nonarch_base_libdir}/modules/${KERNEL_VERSION}/build" # Remove empty module directories to prevent QA issues find "${D}${nonarch_base_libdir}/modules/${KERNEL_VERSION}/kernel" -type d -empty -delete else bbnote "no modules to install" fi # # Install various kernel output (zImage, map file, config, module support files) # install -d ${D}/${KERNEL_IMAGEDEST} # # When including an initramfs bundle inside a FIT image, the fitImage is created after the install task # by do_assemble_fitimage_initramfs. # This happens after the generation of the initramfs bundle (done by do_bundle_initramfs). # So, at the level of the install task we should not try to install the fitImage. fitImage is still not # generated yet. # After the generation of the fitImage, the deploy task copies the fitImage from the build directory to # the deploy folder. # for imageType in ${KERNEL_IMAGETYPES} ; do if [ $imageType != "fitImage" ] || [ "${INITRAMFS_IMAGE_BUNDLE}" != "1" ] ; then install -m 0644 ${KERNEL_OUTPUT_DIR}/$imageType ${D}/${KERNEL_IMAGEDEST}/$imageType-${KERNEL_VERSION} fi done install -m 0644 System.map ${D}/${KERNEL_IMAGEDEST}/System.map-${KERNEL_VERSION} install -m 0644 .config ${D}/${KERNEL_IMAGEDEST}/config-${KERNEL_VERSION} install -m 0644 vmlinux ${D}/${KERNEL_IMAGEDEST}/vmlinux-${KERNEL_VERSION} [ -e Module.symvers ] && install -m 0644 Module.symvers ${D}/${KERNEL_IMAGEDEST}/Module.symvers-${KERNEL_VERSION} install -d ${D}${sysconfdir}/modules-load.d install -d ${D}${sysconfdir}/modprobe.d } # Must be ran no earlier than after do_kernel_checkout or else Makefile won't be in ${S}/Makefile do_kernel_version_sanity_check() { if [ "x${KERNEL_VERSION_SANITY_SKIP}" = "x1" ]; then exit 0 fi # The Makefile determines the kernel version shown at runtime # Don't use KERNEL_VERSION because the headers it grabs the version from aren't generated until do_compile VERSION=$(grep "^VERSION =" ${S}/Makefile | sed s/.*=\ *//) PATCHLEVEL=$(grep "^PATCHLEVEL =" ${S}/Makefile | sed s/.*=\ *//) SUBLEVEL=$(grep "^SUBLEVEL =" ${S}/Makefile | sed s/.*=\ *//) EXTRAVERSION=$(grep "^EXTRAVERSION =" ${S}/Makefile | sed s/.*=\ *//) # Build a string for regex and a plain version string reg="^${VERSION}\.${PATCHLEVEL}" vers="${VERSION}.${PATCHLEVEL}" if [ -n "${SUBLEVEL}" ]; then # Ignoring a SUBLEVEL of zero is fine if [ "${SUBLEVEL}" = "0" ]; then reg="${reg}(\.${SUBLEVEL})?" else reg="${reg}\.${SUBLEVEL}" vers="${vers}.${SUBLEVEL}" fi fi vers="${vers}${EXTRAVERSION}" reg="${reg}${EXTRAVERSION}" if [ -z `echo ${PV} | grep -E "${reg}"` ]; then bbfatal "Package Version (${PV}) does not match of kernel being built (${vers}). Please update the PV variable to match the kernel source or set KERNEL_VERSION_SANITY_SKIP=\"1\" in your recipe." fi exit 0 } require recipes-kernel/linux/linux-yocto-coreos-efi.inc