106 lines
4.1 KiB
BlitzBasic
106 lines
4.1 KiB
BlitzBasic
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
|