| Submitter | Khem Raj |
|---|---|
| Date | Sept. 12, 2012, 6:03 a.m. |
| Message ID | <1347429815-19634-1-git-send-email-raj.khem@gmail.com> |
| Download | mbox | patch |
| Permalink | /patch/36407/ |
| State | Accepted, archived |
| Headers | show |
Comments
On Tue, Sep 11, 2012 at 11:03:34PM -0700, Khem Raj wrote: > Not needed anymore meta-smartphone BSPs were updated 2 months ago https://github.com/shr-distribution/meta-smartphone/commit/c35ec94cf7ed05d0d030c75325a65aa5f5c55ca7 Acked-By: Martin Jansa <Martin.Jansa@gmail.com> > > Signed-off-by: Khem Raj <raj.khem@gmail.com> > --- > meta-oe/classes/kernel.bbclass | 556 ---------------------------------------- > 1 file changed, 556 deletions(-) > delete mode 100644 meta-oe/classes/kernel.bbclass > > diff --git a/meta-oe/classes/kernel.bbclass b/meta-oe/classes/kernel.bbclass > deleted file mode 100644 > index 2bb1b5b..0000000 > --- a/meta-oe/classes/kernel.bbclass > +++ /dev/null > @@ -1,556 +0,0 @@ > -inherit linux-kernel-base module_strip > - > -PROVIDES += "virtual/kernel" > -DEPENDS += "virtual/${TARGET_PREFIX}gcc kmod-native virtual/${TARGET_PREFIX}gcc${KERNEL_CCSUFFIX} update-modules" > - > -# we include gcc above, we dont need virtual/libc > -INHIBIT_DEFAULT_DEPS = "1" > - > -KERNEL_IMAGETYPE ?= "zImage" > -INITRAMFS_IMAGE ?= "" > -INITRAMFS_TASK ?= "" > - > -python __anonymous () { > - kerneltype = d.getVar('KERNEL_IMAGETYPE', True) or '' > - if kerneltype == 'uImage': > - depends = d.getVar("DEPENDS", True) > - depends = "%s u-boot-mkimage-native" % depends > - d.setVar("DEPENDS", depends) > - > - image = d.getVar('INITRAMFS_IMAGE', True) > - if image: > - d.setVar('INITRAMFS_TASK', '${INITRAMFS_IMAGE}:do_rootfs') > - > - machine_kernel_pr = d.getVar('MACHINE_KERNEL_PR', True) > - > - if machine_kernel_pr: > - d.setVar('PR', machine_kernel_pr) > -} > - > -inherit kernel-arch deploy > - > -PACKAGES_DYNAMIC += "kernel-module-*" > -PACKAGES_DYNAMIC += "kernel-image-*" > -PACKAGES_DYNAMIC += "kernel-firmware-*" > - > -export OS = "${TARGET_OS}" > -export CROSS_COMPILE = "${TARGET_PREFIX}" > - > -KERNEL_PRIORITY ?= "${@int(d.getVar('PV',1).split('-')[0].split('+')[0].split('.')[0]) * 10000 + \ > - int(d.getVar('PV',1).split('-')[0].split('+')[0].split('.')[1]) * 100 + \ > - int(d.getVar('PV',1).split('-')[0].split('+')[0].split('.')[-1])}" > - > -KERNEL_RELEASE ?= "${KERNEL_VERSION}" > - > -KERNEL_CCSUFFIX ?= "" > -KERNEL_LDSUFFIX ?= "" > - > -# Set TARGET_??_KERNEL_ARCH in the machine .conf to set architecture > -# specific options necessary for building the kernel and modules. > -#FIXME: should be this: TARGET_CC_KERNEL_ARCH ?= "${TARGET_CC_ARCH}" > -TARGET_CC_KERNEL_ARCH ?= "" > -HOST_CC_KERNEL_ARCH ?= "${TARGET_CC_KERNEL_ARCH}" > -TARGET_LD_KERNEL_ARCH ?= "" > -HOST_LD_KERNEL_ARCH ?= "${TARGET_LD_KERNEL_ARCH}" > - > -KERNEL_CC = "${CCACHE}${HOST_PREFIX}gcc${KERNEL_CCSUFFIX} ${HOST_CC_KERNEL_ARCH}${TOOLCHAIN_OPTIONS}" > -KERNEL_LD = "${HOST_PREFIX}ld${KERNEL_LDSUFFIX} ${HOST_LD_KERNEL_ARCH}${TOOLCHAIN_OPTIONS}" > - > -# Where built kernel lies in the kernel tree > -KERNEL_OUTPUT ?= "arch/${ARCH}/boot/${KERNEL_IMAGETYPE}" > -KERNEL_IMAGEDEST = "boot" > - > -# > -# configuration > -# > -export CMDLINE_CONSOLE = "console=${@d.getVar("KERNEL_CONSOLE",1) or "ttyS0"}" > - > -KERNEL_VERSION = "${@get_kernelversion('${B}')}" > - > -KERNEL_LOCALVERSION ?= "" > - > -# kernels are generally machine specific > -PACKAGE_ARCH = "${MACHINE_ARCH}" > - > -# U-Boot support > -UBOOT_ENTRYPOINT ?= "20008000" > -UBOOT_LOADADDRESS ?= "${UBOOT_ENTRYPOINT}" > - > -# For the kernel, we don't want the '-e MAKEFLAGS=' in EXTRA_OEMAKE. > -# We don't want to override kernel Makefile variables from the environment > -EXTRA_OEMAKE = "" > - > -KERNEL_ALT_IMAGETYPE ??= "" > - > -# Define where the kernel headers are installed on the target as well as where > -# they are staged. > -KERNEL_SRC_PATH = "/usr/src/kernel" > - > -KERNEL_IMAGETYPE_FOR_MAKE = "${@(lambda s: s[:-3] if s[-3:] == ".gz" else s)(d.getVar('KERNEL_IMAGETYPE', True))}" > - > -kernel_do_compile() { > - unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS MACHINE > - oe_runmake include/linux/version.h CC="${KERNEL_CC}" LD="${KERNEL_LD}" > - oe_runmake ${KERNEL_IMAGETYPE_FOR_MAKE} ${KERNEL_ALT_IMAGETYPE} CC="${KERNEL_CC}" LD="${KERNEL_LD}" > - if test "${KERNEL_IMAGETYPE_FOR_MAKE}.gz" = "${KERNEL_IMAGETYPE}"; then > - gzip -9c < "${KERNEL_IMAGETYPE_FOR_MAKE}" > "${KERNEL_OUTPUT}" > - fi > -} > - > -do_compile_kernelmodules() { > - unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS MACHINE > - if (grep -q -i -e '^CONFIG_MODULES=y$' .config); then > - oe_runmake ${PARALLEL_MAKE} modules CC="${KERNEL_CC}" LD="${KERNEL_LD}" > - else > - bbnote "no modules to compile" > - fi > -} > -addtask compile_kernelmodules after do_compile before 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 INSTALL_MOD_PATH="${D}" modules_install > - rm -f "${D}/lib/modules/${KERNEL_VERSION}/modules.order" > - rm -f "${D}/lib/modules/${KERNEL_VERSION}/modules.builtin" > - rm "${D}/lib/modules/${KERNEL_VERSION}/build" > - rm "${D}/lib/modules/${KERNEL_VERSION}/source" > - else > - bbnote "no modules to install" > - fi > - > - # > - # Install various kernel output (zImage, map file, config, module support files) > - # > - install -d ${D}/${KERNEL_IMAGEDEST} > - install -d ${D}/boot > - install -m 0644 ${KERNEL_OUTPUT} ${D}/${KERNEL_IMAGEDEST}/${KERNEL_IMAGETYPE}-${KERNEL_VERSION} > - install -m 0644 System.map ${D}/boot/System.map-${KERNEL_VERSION} > - install -m 0644 .config ${D}/boot/config-${KERNEL_VERSION} > - install -m 0644 vmlinux ${D}/boot/vmlinux-${KERNEL_VERSION} > - [ -e Module.symvers ] && install -m 0644 Module.symvers ${D}/boot/Module.symvers-${KERNEL_VERSION} > - install -d ${D}/etc/modules-load.d > - install -d ${D}/etc/modprobe.d > - > - # > - # Support for external module building - create a minimal copy of the > - # kernel source tree. > - # > - kerneldir=${D}${KERNEL_SRC_PATH} > - install -d $kerneldir > - > - # > - # Store the kernel version in sysroots for module-base.bbclass > - # > - > - echo "${KERNEL_VERSION}" > $kerneldir/kernel-abiversion > - > - # > - # Store kernel image name to allow use during image generation > - # > - > - echo "${KERNEL_IMAGE_BASE_NAME}" >$kerneldir/kernel-image-name > - > - # > - # Copy the entire source tree. In case an external build directory is > - # used, copy the build directory over first, then copy over the source > - # dir. This ensures the original Makefiles are used and not the > - # redirecting Makefiles in the build directory. > - # > - # work and sysroots can be on different partitions, so we can't rely on > - # hardlinking, unfortunately. > - # > - cp -fR * $kerneldir > - cp .config $kerneldir > - if [ "${S}" != "${B}" ]; then > - cp -fR ${S}/* $kerneldir > - fi > - install -m 0644 ${KERNEL_OUTPUT} $kerneldir/${KERNEL_IMAGETYPE} > - install -m 0644 System.map $kerneldir/System.map-${KERNEL_VERSION} > - > - # > - # Clean and remove files not needed for building modules. > - # Some distributions go through a lot more trouble to strip out > - # unecessary headers, for now, we just prune the obvious bits. > - # > - # We don't want to leave host-arch binaries in /sysroots, so > - # we clean the scripts dir while leaving the generated config > - # and include files. > - # > - oe_runmake -C $kerneldir CC="${KERNEL_CC}" LD="${KERNEL_LD}" clean > - make -C $kerneldir _mrproper_scripts > - find $kerneldir -path $kerneldir/lib -prune -o -path $kerneldir/tools -prune -o -path $kerneldir/scripts -prune -o -name "*.[csS]" -exec rm '{}' \; > - find $kerneldir/Documentation -name "*.txt" -exec rm '{}' \; > - > - # As of Linux kernel version 3.0.1, the clean target removes > - # arch/powerpc/lib/crtsavres.o which is present in > - # KBUILD_LDFLAGS_MODULE, making it required to build external modules. > - if [ ${ARCH} = "powerpc" ]; then > - cp arch/powerpc/lib/crtsavres.o $kerneldir/arch/powerpc/lib/crtsavres.o > - fi > - > - # Necessary for building modules like compat-wireless. > - cp include/generated/bounds.h $kerneldir/include/generated/bounds.h > - > - # Remove the following binaries which cause strip or arch QA errors > - # during do_package for cross-compiled platforms > - bin_files="arch/powerpc/boot/addnote arch/powerpc/boot/hack-coff \ > - arch/powerpc/boot/mktree scripts/kconfig/zconf.tab.o \ > - scripts/kconfig/conf.o scripts/kconfig/kxgettext.o" > - for entry in $bin_files; do > - rm -f $kerneldir/$entry > - done > -} > - > -sysroot_stage_all_append() { > - sysroot_stage_dir ${D}${KERNEL_SRC_PATH} ${SYSROOT_DESTDIR}${KERNEL_SRC_PATH} > -} > - > -kernel_do_configure() { > - # fixes extra + in /lib/modules/2.6.37+ > - # $ scripts/setlocalversion . => + > - # $ make kernelversion => 2.6.37 > - # $ make kernelrelease => 2.6.37+ > - touch ${B}/.scmversion ${S}/.scmversion > - > - # Copy defconfig to .config if .config does not exist. This allows > - # recipes to manage the .config themselves in do_configure_prepend(). > - if [ -f "${WORKDIR}/defconfig" ] && [ ! -f "${B}/.config" ]; then > - cp "${WORKDIR}/defconfig" "${B}/.config" > - fi > - yes '' | oe_runmake oldconfig > - > - if [ ! -z "${INITRAMFS_IMAGE}" ]; then > - for img in cpio.gz cpio.lzo cpio.lzma cpio.xz; do > - if [ -e "${DEPLOY_DIR_IMAGE}/${INITRAMFS_IMAGE}-${MACHINE}.$img" ]; then > - cp "${DEPLOY_DIR_IMAGE}/${INITRAMFS_IMAGE}-${MACHINE}.$img" initramfs.$img > - fi > - done > - fi > -} > - > -do_configure[depends] += "${INITRAMFS_TASK}" > - > -do_savedefconfig() { > - oe_runmake savedefconfig > -} > -do_savedefconfig[nostamp] = "1" > -addtask savedefconfig after do_configure > - > -pkg_postinst_kernel-base () { > - cd /${KERNEL_IMAGEDEST}; update-alternatives --install /${KERNEL_IMAGEDEST}/${KERNEL_IMAGETYPE} ${KERNEL_IMAGETYPE} ${KERNEL_IMAGETYPE}-${KERNEL_VERSION} ${KERNEL_PRIORITY} || true > -} > - > -pkg_postrm_kernel-base () { > - cd /${KERNEL_IMAGEDEST}; update-alternatives --remove ${KERNEL_IMAGETYPE} ${KERNEL_IMAGETYPE}-${KERNEL_VERSION} || true > -} > - > -inherit cml1 > - > -EXPORT_FUNCTIONS do_compile do_install do_configure > - > -# kernel-base becomes kernel-${KERNEL_VERSION} > -# kernel-image becomes kernel-image-${KERNEL_VERISON} > -PACKAGES = "kernel kernel-base kernel-vmlinux kernel-image kernel-dev" > -FILES = "" > -FILES_kernel-image = "/boot/${KERNEL_IMAGETYPE}*" > -FILES_kernel-dev = "/boot/System.map* /boot/Module.symvers* /boot/config* ${KERNEL_SRC_PATH}" > -FILES_kernel-vmlinux = "/boot/vmlinux*" > -RDEPENDS_kernel = "kernel-base" > -# Allow machines to override this dependency if kernel image files are > -# not wanted in images as standard > -RDEPENDS_kernel-base ?= "kernel-image" > -PKG_kernel-image = "kernel-image-${@legitimize_package_name('${KERNEL_VERSION}')}" > -PKG_kernel-base = "kernel-${@legitimize_package_name('${KERNEL_VERSION}')}" > -RPROVIDES_kernel-base += "kernel-${KERNEL_VERSION}" > -ALLOW_EMPTY_kernel = "1" > -ALLOW_EMPTY_kernel-base = "1" > -ALLOW_EMPTY_kernel-image = "1" > - > -pkg_postinst_kernel-image () { > -if [ ! -e "$D/lib/modules/${KERNEL_VERSION}" ]; then > - mkdir -p $D/lib/modules/${KERNEL_VERSION} > -fi > -if [ -n "$D" ]; then > - depmod -a -b $D -F ${STAGING_KERNEL_DIR}/System.map-${KERNEL_VERSION} ${KERNEL_VERSION} > -else > - depmod -a ${KERNEL_VERSION} > -fi > -} > - > -pkg_postinst_modules () { > -if [ -z "$D" ]; then > - depmod -a ${KERNEL_VERSION} > - update-modules || true > -fi > -} > - > -pkg_postrm_modules () { > -update-modules || true > -} > - > -autoload_postinst_fragment() { > -if [ x"$D" = "x" ]; then > - modprobe %s || true > -fi > -} > - > -# autoload defaults (alphabetically sorted) > -module_autoload_hidp = "hidp" > -module_autoload_ipv6 = "ipv6" > -module_autoload_ipsec = "ipsec" > -module_autoload_ircomm-tty = "ircomm-tty" > -module_autoload_rfcomm = "rfcomm" > -module_autoload_sa1100-rtc = "sa1100-rtc" > -# sa1100-rtc was renamed in 2.6.23 onwards > -module_autoload_rtc-sa1100 = "rtc-sa1100" > - > -# alias defaults (alphabetically sorted) > -module_conf_af_packet = "alias net-pf-17 af_packet" > -module_conf_bluez = "alias net-pf-31 bluez" > -module_conf_bnep = "alias bt-proto-4 bnep" > -module_conf_hci_uart = "alias tty-ldisc-15 hci_uart" > -module_conf_l2cap = "alias bt-proto-0 l2cap" > -module_conf_sco = "alias bt-proto-2 sco" > -module_conf_rfcomm = "alias bt-proto-3 rfcomm" > - > -python populate_packages_prepend () { > - def extract_modinfo(file): > - import tempfile, re, subprocess > - tempfile.tempdir = d.getVar("WORKDIR", True) > - tf = tempfile.mkstemp() > - tmpfile = tf[1] > - cmd = "PATH=\"%s\" %sobjcopy -j .modinfo -O binary %s %s" % (d.getVar("PATH", True), d.getVar("HOST_PREFIX", True) or "", file, tmpfile) > - subprocess.call(cmd, shell=True) > - f = open(tmpfile) > - l = f.read().split("\000") > - f.close() > - os.close(tf[0]) > - os.unlink(tmpfile) > - exp = re.compile("([^=]+)=(.*)") > - vals = {} > - for i in l: > - m = exp.match(i) > - if not m: > - continue > - vals[m.group(1)] = m.group(2) > - return vals > - > - def parse_depmod(): > - import re > - > - dvar = d.getVar('PKGD', True) > - if not dvar: > - bb.error("PKGD not defined") > - return > - > - kernelver = d.getVar('KERNEL_VERSION', True) > - kernelver_stripped = kernelver > - m = re.match('^(.*-hh.*)[\.\+].*$', kernelver) > - if m: > - kernelver_stripped = m.group(1) > - path = d.getVar("PATH", True) > - > - cmd = "PATH=\"%s\" depmod -n -a -b %s -F %s/boot/System.map-%s %s" % (path, dvar, dvar, kernelver, kernelver_stripped) > - f = os.popen(cmd, 'r') > - > - deps = {} > - pattern0 = "^(.*\.k?o):..*$" > - pattern1 = "^(.*\.k?o):\s*(.*\.k?o)\s*$" > - pattern2 = "^(.*\.k?o):\s*(.*\.k?o)\s*\\\$" > - pattern3 = "^\t(.*\.k?o)\s*\\\$" > - pattern4 = "^\t(.*\.k?o)\s*$" > - > - line = f.readline() > - while line: > - if not re.match(pattern0, line): > - line = f.readline() > - continue > - m1 = re.match(pattern1, line) > - if m1: > - deps[m1.group(1)] = m1.group(2).split() > - else: > - m2 = re.match(pattern2, line) > - if m2: > - deps[m2.group(1)] = m2.group(2).split() > - line = f.readline() > - m3 = re.match(pattern3, line) > - while m3: > - deps[m2.group(1)].extend(m3.group(1).split()) > - line = f.readline() > - m3 = re.match(pattern3, line) > - m4 = re.match(pattern4, line) > - deps[m2.group(1)].extend(m4.group(1).split()) > - line = f.readline() > - f.close() > - return deps > - > - def get_dependencies(file, pattern, format): > - # file no longer includes PKGD > - file = file.replace(d.getVar('PKGD', True) or '', '', 1) > - # instead is prefixed with /lib/modules/${KERNEL_VERSION} > - file = file.replace("/lib/modules/%s/" % d.getVar('KERNEL_VERSION', True) or '', '', 1) > - > - if module_deps.has_key(file): > - import re > - dependencies = [] > - for i in module_deps[file]: > - m = re.match(pattern, os.path.basename(i)) > - if not m: > - continue > - on = legitimize_package_name(m.group(1)) > - dependency_pkg = format % on > - dependencies.append(dependency_pkg) > - return dependencies > - return [] > - > - def frob_metadata(file, pkg, pattern, format, basename): > - import re > - vals = extract_modinfo(file) > - > - dvar = d.getVar('PKGD', True) > - > - # If autoloading is requested, output /etc/modules-load.d/<name>.conf and append > - # appropriate modprobe commands to the postinst > - autoload = d.getVar('module_autoload_%s' % basename, True) > - if autoload: > - name = '%s/etc/modules-load.d/%s.conf' % (dvar, basename) > - f = open(name, 'w') > - for m in autoload.split(): > - f.write('%s\n' % m) > - f.close() > - postinst = d.getVar('pkg_postinst_%s' % pkg, True) > - if not postinst: > - bb.fatal("pkg_postinst_%s not defined" % pkg) > - postinst += d.getVar('autoload_postinst_fragment', True) % autoload > - d.setVar('pkg_postinst_%s' % pkg, postinst) > - > - # Write out any modconf fragment > - modconf = d.getVar('module_conf_%s' % basename, True) > - if modconf: > - name = '%s/etc/modprobe.d/%s.conf' % (dvar, basename) > - f = open(name, 'w') > - f.write("%s\n" % modconf) > - f.close() > - > - files = d.getVar('FILES_%s' % pkg, True) > - files = "%s /etc/modules-load.d/%s.conf /etc/modprobe.d/%s.conf" % (files, basename, basename) > - d.setVar('FILES_%s' % pkg, files) > - > - if vals.has_key("description"): > - old_desc = d.getVar('DESCRIPTION_' + pkg, True) or "" > - d.setVar('DESCRIPTION_' + pkg, old_desc + "; " + vals["description"]) > - > - rdepends_str = d.getVar('RDEPENDS_' + pkg, True) > - if rdepends_str: > - rdepends = rdepends_str.split() > - else: > - rdepends = [] > - rdepends.extend(get_dependencies(file, pattern, format)) > - d.setVar('RDEPENDS_' + pkg, ' '.join(rdepends)) > - > - module_deps = parse_depmod() > - module_regex = '^(.*)\.k?o$' > - module_pattern = 'kernel-module-%s' > - > - postinst = d.getVar('pkg_postinst_modules', True) > - postrm = d.getVar('pkg_postrm_modules', True) > - do_split_packages(d, root='/lib/firmware', file_regex='^(.*)\.bin$', output_pattern='kernel-firmware-%s', description='Firmware for %s', recursive=True, extra_depends='') > - do_split_packages(d, root='/lib/firmware', file_regex='^(.*)\.fw$', output_pattern='kernel-firmware-%s', description='Firmware for %s', recursive=True, extra_depends='') > - do_split_packages(d, root='/lib/firmware', file_regex='^(.*)\.cis$', output_pattern='kernel-firmware-%s', description='Firmware for %s', recursive=True, extra_depends='') > - do_split_packages(d, root='/lib/modules', file_regex=module_regex, output_pattern=module_pattern, description='%s kernel module', postinst=postinst, postrm=postrm, recursive=True, hook=frob_metadata, extra_depends='update-modules kernel-%s' % d.getVar("KERNEL_VERSION", True)) > - > - # If modules-load.d and modprobe.d are empty at this point, remove them to > - # avoid warnings. removedirs only raises an OSError if an empty > - # directory cannot be removed. > - dvar = d.getVar('PKGD', True) > - for dir in ["%s/etc/modprobe.d" % (dvar), "%s/etc/modules-load.d" % (dvar), "%s/etc" % (dvar)]: > - if len(os.listdir(dir)) == 0: > - os.rmdir(dir) > - > - import re > - metapkg = "kernel-modules" > - d.setVar('ALLOW_EMPTY_' + metapkg, "1") > - d.setVar('FILES_' + metapkg, "") > - blacklist = [ 'kernel-dev', 'kernel-image', 'kernel-base', 'kernel-vmlinux' ] > - for l in module_deps.values(): > - for i in l: > - pkg = module_pattern % legitimize_package_name(re.match(module_regex, os.path.basename(i)).group(1)) > - blacklist.append(pkg) > - metapkg_rdepends = [] > - packages = d.getVar('PACKAGES', True).split() > - for pkg in packages[1:]: > - if not pkg in blacklist and not pkg in metapkg_rdepends: > - metapkg_rdepends.append(pkg) > - d.setVar('RDEPENDS_' + metapkg, ' '.join(metapkg_rdepends)) > - d.setVar('DESCRIPTION_' + metapkg, 'Kernel modules meta package') > - packages.append(metapkg) > - d.setVar('PACKAGES', ' '.join(packages)) > -} > - > -# Support checking the kernel size since some kernels need to reside in partitions > -# with a fixed length or there is a limit in transferring the kernel to memory > -do_sizecheck() { > - if [ ! -z "${KERNEL_IMAGE_MAXSIZE}" ]; then > - size=`ls -l ${KERNEL_OUTPUT} | awk '{ print $5}'` > - if [ $size -ge ${KERNEL_IMAGE_MAXSIZE} ]; then > - rm ${KERNEL_OUTPUT} > - die "This kernel (size=$size > ${KERNEL_IMAGE_MAXSIZE}) is too big for your device. Please reduce the size of the kernel by making more of it modular." > - fi > - fi > -} > - > -addtask sizecheck before do_install after do_compile > - > -KERNEL_IMAGE_BASE_NAME ?= "${KERNEL_IMAGETYPE}-${PV}-${PR}-${MACHINE}-${DATETIME}" > -# Don't include the DATETIME variable in the sstate package signatures > -KERNEL_IMAGE_BASE_NAME[vardepsexclude] = "DATETIME" > -KERNEL_IMAGE_SYMLINK_NAME ?= "${KERNEL_IMAGETYPE}-${MACHINE}" > - > -do_uboot_mkimage() { > - if test "x${KERNEL_IMAGETYPE}" = "xuImage" ; then > - if test "x${KEEPUIMAGE}" = "x" ; then > - ENTRYPOINT=${UBOOT_ENTRYPOINT} > - if test -n "${UBOOT_ENTRYSYMBOL}"; then > - ENTRYPOINT=`${HOST_PREFIX}nm ${S}/vmlinux | \ > - awk '$3=="${UBOOT_ENTRYSYMBOL}" {print $1}'` > - fi > - if test -e arch/${ARCH}/boot/compressed/vmlinux ; then > - ${OBJCOPY} -O binary -R .note -R .comment -S arch/${ARCH}/boot/compressed/vmlinux linux.bin > - uboot-mkimage -A ${UBOOT_ARCH} -O linux -T kernel -C none -a ${UBOOT_LOADADDRESS} -e $ENTRYPOINT -n "${DISTRO_NAME}/${PV}/${MACHINE}" -d linux.bin arch/${ARCH}/boot/uImage > - rm -f linux.bin > - else > - ${OBJCOPY} -O binary -R .note -R .comment -S vmlinux linux.bin > - rm -f linux.bin.gz > - gzip -9 linux.bin > - uboot-mkimage -A ${UBOOT_ARCH} -O linux -T kernel -C gzip -a ${UBOOT_LOADADDRESS} -e $ENTRYPOINT -n "${DISTRO_NAME}/${PV}/${MACHINE}" -d linux.bin.gz arch/${ARCH}/boot/uImage > - rm -f linux.bin.gz > - fi > - fi > - fi > -} > - > -addtask uboot_mkimage before do_install after do_compile > - > -kernel_do_deploy() { > - install -m 0644 ${KERNEL_OUTPUT} ${DEPLOYDIR}/${KERNEL_IMAGE_BASE_NAME}.bin > - if (grep -q -i -e '^CONFIG_MODULES=y$' .config); then > - tar -cvzf ${DEPLOYDIR}/modules-${KERNEL_VERSION}-${PR}-${MACHINE}.tgz -C ${D} lib > - fi > - > - cd ${DEPLOYDIR} > - rm -f ${KERNEL_IMAGE_SYMLINK_NAME}.bin > - ln -sf ${KERNEL_IMAGE_BASE_NAME}.bin ${KERNEL_IMAGE_SYMLINK_NAME}.bin > - ln -sf ${KERNEL_IMAGE_BASE_NAME}.bin ${KERNEL_IMAGETYPE} > - > - cp ${COREBASE}/meta/files/deploydir_readme.txt ${DEPLOYDIR}/README_-_DO_NOT_DELETE_FILES_IN_THIS_DIRECTORY.txt > -} > -do_deploy[dirs] = "${DEPLOYDIR} ${B}" > - > -addtask deploy before do_build after do_install > - > -EXPORT_FUNCTIONS do_deploy > - > -- > 1.7.9.5 > > > _______________________________________________ > Openembedded-devel mailing list > Openembedded-devel@lists.openembedded.org > http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-devel
ping^ On Wed, Sep 26, 2012 at 1:08 PM, Martin Jansa <martin.jansa@gmail.com> wrote: > On Tue, Sep 11, 2012 at 11:03:34PM -0700, Khem Raj wrote: >> Not needed anymore > > meta-smartphone BSPs were updated 2 months ago > https://github.com/shr-distribution/meta-smartphone/commit/c35ec94cf7ed05d0d030c75325a65aa5f5c55ca7 > > Acked-By: Martin Jansa <Martin.Jansa@gmail.com> > >> >> Signed-off-by: Khem Raj <raj.khem@gmail.com> >> --- >> meta-oe/classes/kernel.bbclass | 556 ---------------------------------------- >> 1 file changed, 556 deletions(-) >> delete mode 100644 meta-oe/classes/kernel.bbclass >> >> diff --git a/meta-oe/classes/kernel.bbclass b/meta-oe/classes/kernel.bbclass >> deleted file mode 100644 >> index 2bb1b5b..0000000 >> --- a/meta-oe/classes/kernel.bbclass >> +++ /dev/null >> @@ -1,556 +0,0 @@ >> -inherit linux-kernel-base module_strip >> - >> -PROVIDES += "virtual/kernel" >> -DEPENDS += "virtual/${TARGET_PREFIX}gcc kmod-native virtual/${TARGET_PREFIX}gcc${KERNEL_CCSUFFIX} update-modules" >> - >> -# we include gcc above, we dont need virtual/libc >> -INHIBIT_DEFAULT_DEPS = "1" >> - >> -KERNEL_IMAGETYPE ?= "zImage" >> -INITRAMFS_IMAGE ?= "" >> -INITRAMFS_TASK ?= "" >> - >> -python __anonymous () { >> - kerneltype = d.getVar('KERNEL_IMAGETYPE', True) or '' >> - if kerneltype == 'uImage': >> - depends = d.getVar("DEPENDS", True) >> - depends = "%s u-boot-mkimage-native" % depends >> - d.setVar("DEPENDS", depends) >> - >> - image = d.getVar('INITRAMFS_IMAGE', True) >> - if image: >> - d.setVar('INITRAMFS_TASK', '${INITRAMFS_IMAGE}:do_rootfs') >> - >> - machine_kernel_pr = d.getVar('MACHINE_KERNEL_PR', True) >> - >> - if machine_kernel_pr: >> - d.setVar('PR', machine_kernel_pr) >> -} >> - >> -inherit kernel-arch deploy >> - >> -PACKAGES_DYNAMIC += "kernel-module-*" >> -PACKAGES_DYNAMIC += "kernel-image-*" >> -PACKAGES_DYNAMIC += "kernel-firmware-*" >> - >> -export OS = "${TARGET_OS}" >> -export CROSS_COMPILE = "${TARGET_PREFIX}" >> - >> -KERNEL_PRIORITY ?= "${@int(d.getVar('PV',1).split('-')[0].split('+')[0].split('.')[0]) * 10000 + \ >> - int(d.getVar('PV',1).split('-')[0].split('+')[0].split('.')[1]) * 100 + \ >> - int(d.getVar('PV',1).split('-')[0].split('+')[0].split('.')[-1])}" >> - >> -KERNEL_RELEASE ?= "${KERNEL_VERSION}" >> - >> -KERNEL_CCSUFFIX ?= "" >> -KERNEL_LDSUFFIX ?= "" >> - >> -# Set TARGET_??_KERNEL_ARCH in the machine .conf to set architecture >> -# specific options necessary for building the kernel and modules. >> -#FIXME: should be this: TARGET_CC_KERNEL_ARCH ?= "${TARGET_CC_ARCH}" >> -TARGET_CC_KERNEL_ARCH ?= "" >> -HOST_CC_KERNEL_ARCH ?= "${TARGET_CC_KERNEL_ARCH}" >> -TARGET_LD_KERNEL_ARCH ?= "" >> -HOST_LD_KERNEL_ARCH ?= "${TARGET_LD_KERNEL_ARCH}" >> - >> -KERNEL_CC = "${CCACHE}${HOST_PREFIX}gcc${KERNEL_CCSUFFIX} ${HOST_CC_KERNEL_ARCH}${TOOLCHAIN_OPTIONS}" >> -KERNEL_LD = "${HOST_PREFIX}ld${KERNEL_LDSUFFIX} ${HOST_LD_KERNEL_ARCH}${TOOLCHAIN_OPTIONS}" >> - >> -# Where built kernel lies in the kernel tree >> -KERNEL_OUTPUT ?= "arch/${ARCH}/boot/${KERNEL_IMAGETYPE}" >> -KERNEL_IMAGEDEST = "boot" >> - >> -# >> -# configuration >> -# >> -export CMDLINE_CONSOLE = "console=${@d.getVar("KERNEL_CONSOLE",1) or "ttyS0"}" >> - >> -KERNEL_VERSION = "${@get_kernelversion('${B}')}" >> - >> -KERNEL_LOCALVERSION ?= "" >> - >> -# kernels are generally machine specific >> -PACKAGE_ARCH = "${MACHINE_ARCH}" >> - >> -# U-Boot support >> -UBOOT_ENTRYPOINT ?= "20008000" >> -UBOOT_LOADADDRESS ?= "${UBOOT_ENTRYPOINT}" >> - >> -# For the kernel, we don't want the '-e MAKEFLAGS=' in EXTRA_OEMAKE. >> -# We don't want to override kernel Makefile variables from the environment >> -EXTRA_OEMAKE = "" >> - >> -KERNEL_ALT_IMAGETYPE ??= "" >> - >> -# Define where the kernel headers are installed on the target as well as where >> -# they are staged. >> -KERNEL_SRC_PATH = "/usr/src/kernel" >> - >> -KERNEL_IMAGETYPE_FOR_MAKE = "${@(lambda s: s[:-3] if s[-3:] == ".gz" else s)(d.getVar('KERNEL_IMAGETYPE', True))}" >> - >> -kernel_do_compile() { >> - unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS MACHINE >> - oe_runmake include/linux/version.h CC="${KERNEL_CC}" LD="${KERNEL_LD}" >> - oe_runmake ${KERNEL_IMAGETYPE_FOR_MAKE} ${KERNEL_ALT_IMAGETYPE} CC="${KERNEL_CC}" LD="${KERNEL_LD}" >> - if test "${KERNEL_IMAGETYPE_FOR_MAKE}.gz" = "${KERNEL_IMAGETYPE}"; then >> - gzip -9c < "${KERNEL_IMAGETYPE_FOR_MAKE}" > "${KERNEL_OUTPUT}" >> - fi >> -} >> - >> -do_compile_kernelmodules() { >> - unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS MACHINE >> - if (grep -q -i -e '^CONFIG_MODULES=y$' .config); then >> - oe_runmake ${PARALLEL_MAKE} modules CC="${KERNEL_CC}" LD="${KERNEL_LD}" >> - else >> - bbnote "no modules to compile" >> - fi >> -} >> -addtask compile_kernelmodules after do_compile before 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 INSTALL_MOD_PATH="${D}" modules_install >> - rm -f "${D}/lib/modules/${KERNEL_VERSION}/modules.order" >> - rm -f "${D}/lib/modules/${KERNEL_VERSION}/modules.builtin" >> - rm "${D}/lib/modules/${KERNEL_VERSION}/build" >> - rm "${D}/lib/modules/${KERNEL_VERSION}/source" >> - else >> - bbnote "no modules to install" >> - fi >> - >> - # >> - # Install various kernel output (zImage, map file, config, module support files) >> - # >> - install -d ${D}/${KERNEL_IMAGEDEST} >> - install -d ${D}/boot >> - install -m 0644 ${KERNEL_OUTPUT} ${D}/${KERNEL_IMAGEDEST}/${KERNEL_IMAGETYPE}-${KERNEL_VERSION} >> - install -m 0644 System.map ${D}/boot/System.map-${KERNEL_VERSION} >> - install -m 0644 .config ${D}/boot/config-${KERNEL_VERSION} >> - install -m 0644 vmlinux ${D}/boot/vmlinux-${KERNEL_VERSION} >> - [ -e Module.symvers ] && install -m 0644 Module.symvers ${D}/boot/Module.symvers-${KERNEL_VERSION} >> - install -d ${D}/etc/modules-load.d >> - install -d ${D}/etc/modprobe.d >> - >> - # >> - # Support for external module building - create a minimal copy of the >> - # kernel source tree. >> - # >> - kerneldir=${D}${KERNEL_SRC_PATH} >> - install -d $kerneldir >> - >> - # >> - # Store the kernel version in sysroots for module-base.bbclass >> - # >> - >> - echo "${KERNEL_VERSION}" > $kerneldir/kernel-abiversion >> - >> - # >> - # Store kernel image name to allow use during image generation >> - # >> - >> - echo "${KERNEL_IMAGE_BASE_NAME}" >$kerneldir/kernel-image-name >> - >> - # >> - # Copy the entire source tree. In case an external build directory is >> - # used, copy the build directory over first, then copy over the source >> - # dir. This ensures the original Makefiles are used and not the >> - # redirecting Makefiles in the build directory. >> - # >> - # work and sysroots can be on different partitions, so we can't rely on >> - # hardlinking, unfortunately. >> - # >> - cp -fR * $kerneldir >> - cp .config $kerneldir >> - if [ "${S}" != "${B}" ]; then >> - cp -fR ${S}/* $kerneldir >> - fi >> - install -m 0644 ${KERNEL_OUTPUT} $kerneldir/${KERNEL_IMAGETYPE} >> - install -m 0644 System.map $kerneldir/System.map-${KERNEL_VERSION} >> - >> - # >> - # Clean and remove files not needed for building modules. >> - # Some distributions go through a lot more trouble to strip out >> - # unecessary headers, for now, we just prune the obvious bits. >> - # >> - # We don't want to leave host-arch binaries in /sysroots, so >> - # we clean the scripts dir while leaving the generated config >> - # and include files. >> - # >> - oe_runmake -C $kerneldir CC="${KERNEL_CC}" LD="${KERNEL_LD}" clean >> - make -C $kerneldir _mrproper_scripts >> - find $kerneldir -path $kerneldir/lib -prune -o -path $kerneldir/tools -prune -o -path $kerneldir/scripts -prune -o -name "*.[csS]" -exec rm '{}' \; >> - find $kerneldir/Documentation -name "*.txt" -exec rm '{}' \; >> - >> - # As of Linux kernel version 3.0.1, the clean target removes >> - # arch/powerpc/lib/crtsavres.o which is present in >> - # KBUILD_LDFLAGS_MODULE, making it required to build external modules. >> - if [ ${ARCH} = "powerpc" ]; then >> - cp arch/powerpc/lib/crtsavres.o $kerneldir/arch/powerpc/lib/crtsavres.o >> - fi >> - >> - # Necessary for building modules like compat-wireless. >> - cp include/generated/bounds.h $kerneldir/include/generated/bounds.h >> - >> - # Remove the following binaries which cause strip or arch QA errors >> - # during do_package for cross-compiled platforms >> - bin_files="arch/powerpc/boot/addnote arch/powerpc/boot/hack-coff \ >> - arch/powerpc/boot/mktree scripts/kconfig/zconf.tab.o \ >> - scripts/kconfig/conf.o scripts/kconfig/kxgettext.o" >> - for entry in $bin_files; do >> - rm -f $kerneldir/$entry >> - done >> -} >> - >> -sysroot_stage_all_append() { >> - sysroot_stage_dir ${D}${KERNEL_SRC_PATH} ${SYSROOT_DESTDIR}${KERNEL_SRC_PATH} >> -} >> - >> -kernel_do_configure() { >> - # fixes extra + in /lib/modules/2.6.37+ >> - # $ scripts/setlocalversion . => + >> - # $ make kernelversion => 2.6.37 >> - # $ make kernelrelease => 2.6.37+ >> - touch ${B}/.scmversion ${S}/.scmversion >> - >> - # Copy defconfig to .config if .config does not exist. This allows >> - # recipes to manage the .config themselves in do_configure_prepend(). >> - if [ -f "${WORKDIR}/defconfig" ] && [ ! -f "${B}/.config" ]; then >> - cp "${WORKDIR}/defconfig" "${B}/.config" >> - fi >> - yes '' | oe_runmake oldconfig >> - >> - if [ ! -z "${INITRAMFS_IMAGE}" ]; then >> - for img in cpio.gz cpio.lzo cpio.lzma cpio.xz; do >> - if [ -e "${DEPLOY_DIR_IMAGE}/${INITRAMFS_IMAGE}-${MACHINE}.$img" ]; then >> - cp "${DEPLOY_DIR_IMAGE}/${INITRAMFS_IMAGE}-${MACHINE}.$img" initramfs.$img >> - fi >> - done >> - fi >> -} >> - >> -do_configure[depends] += "${INITRAMFS_TASK}" >> - >> -do_savedefconfig() { >> - oe_runmake savedefconfig >> -} >> -do_savedefconfig[nostamp] = "1" >> -addtask savedefconfig after do_configure >> - >> -pkg_postinst_kernel-base () { >> - cd /${KERNEL_IMAGEDEST}; update-alternatives --install /${KERNEL_IMAGEDEST}/${KERNEL_IMAGETYPE} ${KERNEL_IMAGETYPE} ${KERNEL_IMAGETYPE}-${KERNEL_VERSION} ${KERNEL_PRIORITY} || true >> -} >> - >> -pkg_postrm_kernel-base () { >> - cd /${KERNEL_IMAGEDEST}; update-alternatives --remove ${KERNEL_IMAGETYPE} ${KERNEL_IMAGETYPE}-${KERNEL_VERSION} || true >> -} >> - >> -inherit cml1 >> - >> -EXPORT_FUNCTIONS do_compile do_install do_configure >> - >> -# kernel-base becomes kernel-${KERNEL_VERSION} >> -# kernel-image becomes kernel-image-${KERNEL_VERISON} >> -PACKAGES = "kernel kernel-base kernel-vmlinux kernel-image kernel-dev" >> -FILES = "" >> -FILES_kernel-image = "/boot/${KERNEL_IMAGETYPE}*" >> -FILES_kernel-dev = "/boot/System.map* /boot/Module.symvers* /boot/config* ${KERNEL_SRC_PATH}" >> -FILES_kernel-vmlinux = "/boot/vmlinux*" >> -RDEPENDS_kernel = "kernel-base" >> -# Allow machines to override this dependency if kernel image files are >> -# not wanted in images as standard >> -RDEPENDS_kernel-base ?= "kernel-image" >> -PKG_kernel-image = "kernel-image-${@legitimize_package_name('${KERNEL_VERSION}')}" >> -PKG_kernel-base = "kernel-${@legitimize_package_name('${KERNEL_VERSION}')}" >> -RPROVIDES_kernel-base += "kernel-${KERNEL_VERSION}" >> -ALLOW_EMPTY_kernel = "1" >> -ALLOW_EMPTY_kernel-base = "1" >> -ALLOW_EMPTY_kernel-image = "1" >> - >> -pkg_postinst_kernel-image () { >> -if [ ! -e "$D/lib/modules/${KERNEL_VERSION}" ]; then >> - mkdir -p $D/lib/modules/${KERNEL_VERSION} >> -fi >> -if [ -n "$D" ]; then >> - depmod -a -b $D -F ${STAGING_KERNEL_DIR}/System.map-${KERNEL_VERSION} ${KERNEL_VERSION} >> -else >> - depmod -a ${KERNEL_VERSION} >> -fi >> -} >> - >> -pkg_postinst_modules () { >> -if [ -z "$D" ]; then >> - depmod -a ${KERNEL_VERSION} >> - update-modules || true >> -fi >> -} >> - >> -pkg_postrm_modules () { >> -update-modules || true >> -} >> - >> -autoload_postinst_fragment() { >> -if [ x"$D" = "x" ]; then >> - modprobe %s || true >> -fi >> -} >> - >> -# autoload defaults (alphabetically sorted) >> -module_autoload_hidp = "hidp" >> -module_autoload_ipv6 = "ipv6" >> -module_autoload_ipsec = "ipsec" >> -module_autoload_ircomm-tty = "ircomm-tty" >> -module_autoload_rfcomm = "rfcomm" >> -module_autoload_sa1100-rtc = "sa1100-rtc" >> -# sa1100-rtc was renamed in 2.6.23 onwards >> -module_autoload_rtc-sa1100 = "rtc-sa1100" >> - >> -# alias defaults (alphabetically sorted) >> -module_conf_af_packet = "alias net-pf-17 af_packet" >> -module_conf_bluez = "alias net-pf-31 bluez" >> -module_conf_bnep = "alias bt-proto-4 bnep" >> -module_conf_hci_uart = "alias tty-ldisc-15 hci_uart" >> -module_conf_l2cap = "alias bt-proto-0 l2cap" >> -module_conf_sco = "alias bt-proto-2 sco" >> -module_conf_rfcomm = "alias bt-proto-3 rfcomm" >> - >> -python populate_packages_prepend () { >> - def extract_modinfo(file): >> - import tempfile, re, subprocess >> - tempfile.tempdir = d.getVar("WORKDIR", True) >> - tf = tempfile.mkstemp() >> - tmpfile = tf[1] >> - cmd = "PATH=\"%s\" %sobjcopy -j .modinfo -O binary %s %s" % (d.getVar("PATH", True), d.getVar("HOST_PREFIX", True) or "", file, tmpfile) >> - subprocess.call(cmd, shell=True) >> - f = open(tmpfile) >> - l = f.read().split("\000") >> - f.close() >> - os.close(tf[0]) >> - os.unlink(tmpfile) >> - exp = re.compile("([^=]+)=(.*)") >> - vals = {} >> - for i in l: >> - m = exp.match(i) >> - if not m: >> - continue >> - vals[m.group(1)] = m.group(2) >> - return vals >> - >> - def parse_depmod(): >> - import re >> - >> - dvar = d.getVar('PKGD', True) >> - if not dvar: >> - bb.error("PKGD not defined") >> - return >> - >> - kernelver = d.getVar('KERNEL_VERSION', True) >> - kernelver_stripped = kernelver >> - m = re.match('^(.*-hh.*)[\.\+].*$', kernelver) >> - if m: >> - kernelver_stripped = m.group(1) >> - path = d.getVar("PATH", True) >> - >> - cmd = "PATH=\"%s\" depmod -n -a -b %s -F %s/boot/System.map-%s %s" % (path, dvar, dvar, kernelver, kernelver_stripped) >> - f = os.popen(cmd, 'r') >> - >> - deps = {} >> - pattern0 = "^(.*\.k?o):..*$" >> - pattern1 = "^(.*\.k?o):\s*(.*\.k?o)\s*$" >> - pattern2 = "^(.*\.k?o):\s*(.*\.k?o)\s*\\\$" >> - pattern3 = "^\t(.*\.k?o)\s*\\\$" >> - pattern4 = "^\t(.*\.k?o)\s*$" >> - >> - line = f.readline() >> - while line: >> - if not re.match(pattern0, line): >> - line = f.readline() >> - continue >> - m1 = re.match(pattern1, line) >> - if m1: >> - deps[m1.group(1)] = m1.group(2).split() >> - else: >> - m2 = re.match(pattern2, line) >> - if m2: >> - deps[m2.group(1)] = m2.group(2).split() >> - line = f.readline() >> - m3 = re.match(pattern3, line) >> - while m3: >> - deps[m2.group(1)].extend(m3.group(1).split()) >> - line = f.readline() >> - m3 = re.match(pattern3, line) >> - m4 = re.match(pattern4, line) >> - deps[m2.group(1)].extend(m4.group(1).split()) >> - line = f.readline() >> - f.close() >> - return deps >> - >> - def get_dependencies(file, pattern, format): >> - # file no longer includes PKGD >> - file = file.replace(d.getVar('PKGD', True) or '', '', 1) >> - # instead is prefixed with /lib/modules/${KERNEL_VERSION} >> - file = file.replace("/lib/modules/%s/" % d.getVar('KERNEL_VERSION', True) or '', '', 1) >> - >> - if module_deps.has_key(file): >> - import re >> - dependencies = [] >> - for i in module_deps[file]: >> - m = re.match(pattern, os.path.basename(i)) >> - if not m: >> - continue >> - on = legitimize_package_name(m.group(1)) >> - dependency_pkg = format % on >> - dependencies.append(dependency_pkg) >> - return dependencies >> - return [] >> - >> - def frob_metadata(file, pkg, pattern, format, basename): >> - import re >> - vals = extract_modinfo(file) >> - >> - dvar = d.getVar('PKGD', True) >> - >> - # If autoloading is requested, output /etc/modules-load.d/<name>.conf and append >> - # appropriate modprobe commands to the postinst >> - autoload = d.getVar('module_autoload_%s' % basename, True) >> - if autoload: >> - name = '%s/etc/modules-load.d/%s.conf' % (dvar, basename) >> - f = open(name, 'w') >> - for m in autoload.split(): >> - f.write('%s\n' % m) >> - f.close() >> - postinst = d.getVar('pkg_postinst_%s' % pkg, True) >> - if not postinst: >> - bb.fatal("pkg_postinst_%s not defined" % pkg) >> - postinst += d.getVar('autoload_postinst_fragment', True) % autoload >> - d.setVar('pkg_postinst_%s' % pkg, postinst) >> - >> - # Write out any modconf fragment >> - modconf = d.getVar('module_conf_%s' % basename, True) >> - if modconf: >> - name = '%s/etc/modprobe.d/%s.conf' % (dvar, basename) >> - f = open(name, 'w') >> - f.write("%s\n" % modconf) >> - f.close() >> - >> - files = d.getVar('FILES_%s' % pkg, True) >> - files = "%s /etc/modules-load.d/%s.conf /etc/modprobe.d/%s.conf" % (files, basename, basename) >> - d.setVar('FILES_%s' % pkg, files) >> - >> - if vals.has_key("description"): >> - old_desc = d.getVar('DESCRIPTION_' + pkg, True) or "" >> - d.setVar('DESCRIPTION_' + pkg, old_desc + "; " + vals["description"]) >> - >> - rdepends_str = d.getVar('RDEPENDS_' + pkg, True) >> - if rdepends_str: >> - rdepends = rdepends_str.split() >> - else: >> - rdepends = [] >> - rdepends.extend(get_dependencies(file, pattern, format)) >> - d.setVar('RDEPENDS_' + pkg, ' '.join(rdepends)) >> - >> - module_deps = parse_depmod() >> - module_regex = '^(.*)\.k?o$' >> - module_pattern = 'kernel-module-%s' >> - >> - postinst = d.getVar('pkg_postinst_modules', True) >> - postrm = d.getVar('pkg_postrm_modules', True) >> - do_split_packages(d, root='/lib/firmware', file_regex='^(.*)\.bin$', output_pattern='kernel-firmware-%s', description='Firmware for %s', recursive=True, extra_depends='') >> - do_split_packages(d, root='/lib/firmware', file_regex='^(.*)\.fw$', output_pattern='kernel-firmware-%s', description='Firmware for %s', recursive=True, extra_depends='') >> - do_split_packages(d, root='/lib/firmware', file_regex='^(.*)\.cis$', output_pattern='kernel-firmware-%s', description='Firmware for %s', recursive=True, extra_depends='') >> - do_split_packages(d, root='/lib/modules', file_regex=module_regex, output_pattern=module_pattern, description='%s kernel module', postinst=postinst, postrm=postrm, recursive=True, hook=frob_metadata, extra_depends='update-modules kernel-%s' % d.getVar("KERNEL_VERSION", True)) >> - >> - # If modules-load.d and modprobe.d are empty at this point, remove them to >> - # avoid warnings. removedirs only raises an OSError if an empty >> - # directory cannot be removed. >> - dvar = d.getVar('PKGD', True) >> - for dir in ["%s/etc/modprobe.d" % (dvar), "%s/etc/modules-load.d" % (dvar), "%s/etc" % (dvar)]: >> - if len(os.listdir(dir)) == 0: >> - os.rmdir(dir) >> - >> - import re >> - metapkg = "kernel-modules" >> - d.setVar('ALLOW_EMPTY_' + metapkg, "1") >> - d.setVar('FILES_' + metapkg, "") >> - blacklist = [ 'kernel-dev', 'kernel-image', 'kernel-base', 'kernel-vmlinux' ] >> - for l in module_deps.values(): >> - for i in l: >> - pkg = module_pattern % legitimize_package_name(re.match(module_regex, os.path.basename(i)).group(1)) >> - blacklist.append(pkg) >> - metapkg_rdepends = [] >> - packages = d.getVar('PACKAGES', True).split() >> - for pkg in packages[1:]: >> - if not pkg in blacklist and not pkg in metapkg_rdepends: >> - metapkg_rdepends.append(pkg) >> - d.setVar('RDEPENDS_' + metapkg, ' '.join(metapkg_rdepends)) >> - d.setVar('DESCRIPTION_' + metapkg, 'Kernel modules meta package') >> - packages.append(metapkg) >> - d.setVar('PACKAGES', ' '.join(packages)) >> -} >> - >> -# Support checking the kernel size since some kernels need to reside in partitions >> -# with a fixed length or there is a limit in transferring the kernel to memory >> -do_sizecheck() { >> - if [ ! -z "${KERNEL_IMAGE_MAXSIZE}" ]; then >> - size=`ls -l ${KERNEL_OUTPUT} | awk '{ print $5}'` >> - if [ $size -ge ${KERNEL_IMAGE_MAXSIZE} ]; then >> - rm ${KERNEL_OUTPUT} >> - die "This kernel (size=$size > ${KERNEL_IMAGE_MAXSIZE}) is too big for your device. Please reduce the size of the kernel by making more of it modular." >> - fi >> - fi >> -} >> - >> -addtask sizecheck before do_install after do_compile >> - >> -KERNEL_IMAGE_BASE_NAME ?= "${KERNEL_IMAGETYPE}-${PV}-${PR}-${MACHINE}-${DATETIME}" >> -# Don't include the DATETIME variable in the sstate package signatures >> -KERNEL_IMAGE_BASE_NAME[vardepsexclude] = "DATETIME" >> -KERNEL_IMAGE_SYMLINK_NAME ?= "${KERNEL_IMAGETYPE}-${MACHINE}" >> - >> -do_uboot_mkimage() { >> - if test "x${KERNEL_IMAGETYPE}" = "xuImage" ; then >> - if test "x${KEEPUIMAGE}" = "x" ; then >> - ENTRYPOINT=${UBOOT_ENTRYPOINT} >> - if test -n "${UBOOT_ENTRYSYMBOL}"; then >> - ENTRYPOINT=`${HOST_PREFIX}nm ${S}/vmlinux | \ >> - awk '$3=="${UBOOT_ENTRYSYMBOL}" {print $1}'` >> - fi >> - if test -e arch/${ARCH}/boot/compressed/vmlinux ; then >> - ${OBJCOPY} -O binary -R .note -R .comment -S arch/${ARCH}/boot/compressed/vmlinux linux.bin >> - uboot-mkimage -A ${UBOOT_ARCH} -O linux -T kernel -C none -a ${UBOOT_LOADADDRESS} -e $ENTRYPOINT -n "${DISTRO_NAME}/${PV}/${MACHINE}" -d linux.bin arch/${ARCH}/boot/uImage >> - rm -f linux.bin >> - else >> - ${OBJCOPY} -O binary -R .note -R .comment -S vmlinux linux.bin >> - rm -f linux.bin.gz >> - gzip -9 linux.bin >> - uboot-mkimage -A ${UBOOT_ARCH} -O linux -T kernel -C gzip -a ${UBOOT_LOADADDRESS} -e $ENTRYPOINT -n "${DISTRO_NAME}/${PV}/${MACHINE}" -d linux.bin.gz arch/${ARCH}/boot/uImage >> - rm -f linux.bin.gz >> - fi >> - fi >> - fi >> -} >> - >> -addtask uboot_mkimage before do_install after do_compile >> - >> -kernel_do_deploy() { >> - install -m 0644 ${KERNEL_OUTPUT} ${DEPLOYDIR}/${KERNEL_IMAGE_BASE_NAME}.bin >> - if (grep -q -i -e '^CONFIG_MODULES=y$' .config); then >> - tar -cvzf ${DEPLOYDIR}/modules-${KERNEL_VERSION}-${PR}-${MACHINE}.tgz -C ${D} lib >> - fi >> - >> - cd ${DEPLOYDIR} >> - rm -f ${KERNEL_IMAGE_SYMLINK_NAME}.bin >> - ln -sf ${KERNEL_IMAGE_BASE_NAME}.bin ${KERNEL_IMAGE_SYMLINK_NAME}.bin >> - ln -sf ${KERNEL_IMAGE_BASE_NAME}.bin ${KERNEL_IMAGETYPE} >> - >> - cp ${COREBASE}/meta/files/deploydir_readme.txt ${DEPLOYDIR}/README_-_DO_NOT_DELETE_FILES_IN_THIS_DIRECTORY.txt >> -} >> -do_deploy[dirs] = "${DEPLOYDIR} ${B}" >> - >> -addtask deploy before do_build after do_install >> - >> -EXPORT_FUNCTIONS do_deploy >> - >> -- >> 1.7.9.5 >> >> >> _______________________________________________ >> Openembedded-devel mailing list >> Openembedded-devel@lists.openembedded.org >> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-devel > > -- > Martin 'JaMa' Jansa jabber: Martin.Jansa@gmail.com > > _______________________________________________ > Openembedded-devel mailing list > Openembedded-devel@lists.openembedded.org > http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-devel >
On Saturday 06 October 2012 11:10:16 Khem Raj wrote: > ping^ > > On Wed, Sep 26, 2012 at 1:08 PM, Martin Jansa <martin.jansa@gmail.com> wrote: > > On Tue, Sep 11, 2012 at 11:03:34PM -0700, Khem Raj wrote: > >> Not needed anymore > > > > meta-smartphone BSPs were updated 2 months ago > > https://github.com/shr-distribution/meta-smartphone/commit/c35ec94cf7ed05d > > 0d030c75325a65aa5f5c55ca7 > > > > Acked-By: Martin Jansa <Martin.Jansa@gmail.com> > > > >> Signed-off-by: Khem Raj <raj.khem@gmail.com> > >> --- > >> > >> meta-oe/classes/kernel.bbclass | 556 > >> ---------------------------------------- 1 file changed, 556 > >> deletions(-) > >> delete mode 100644 meta-oe/classes/kernel.bbclass ping++ Cheers, Paul
Patch
diff --git a/meta-oe/classes/kernel.bbclass b/meta-oe/classes/kernel.bbclass deleted file mode 100644 index 2bb1b5b..0000000 --- a/meta-oe/classes/kernel.bbclass +++ /dev/null @@ -1,556 +0,0 @@ -inherit linux-kernel-base module_strip - -PROVIDES += "virtual/kernel" -DEPENDS += "virtual/${TARGET_PREFIX}gcc kmod-native virtual/${TARGET_PREFIX}gcc${KERNEL_CCSUFFIX} update-modules" - -# we include gcc above, we dont need virtual/libc -INHIBIT_DEFAULT_DEPS = "1" - -KERNEL_IMAGETYPE ?= "zImage" -INITRAMFS_IMAGE ?= "" -INITRAMFS_TASK ?= "" - -python __anonymous () { - kerneltype = d.getVar('KERNEL_IMAGETYPE', True) or '' - if kerneltype == 'uImage': - depends = d.getVar("DEPENDS", True) - depends = "%s u-boot-mkimage-native" % depends - d.setVar("DEPENDS", depends) - - image = d.getVar('INITRAMFS_IMAGE', True) - if image: - d.setVar('INITRAMFS_TASK', '${INITRAMFS_IMAGE}:do_rootfs') - - machine_kernel_pr = d.getVar('MACHINE_KERNEL_PR', True) - - if machine_kernel_pr: - d.setVar('PR', machine_kernel_pr) -} - -inherit kernel-arch deploy - -PACKAGES_DYNAMIC += "kernel-module-*" -PACKAGES_DYNAMIC += "kernel-image-*" -PACKAGES_DYNAMIC += "kernel-firmware-*" - -export OS = "${TARGET_OS}" -export CROSS_COMPILE = "${TARGET_PREFIX}" - -KERNEL_PRIORITY ?= "${@int(d.getVar('PV',1).split('-')[0].split('+')[0].split('.')[0]) * 10000 + \ - int(d.getVar('PV',1).split('-')[0].split('+')[0].split('.')[1]) * 100 + \ - int(d.getVar('PV',1).split('-')[0].split('+')[0].split('.')[-1])}" - -KERNEL_RELEASE ?= "${KERNEL_VERSION}" - -KERNEL_CCSUFFIX ?= "" -KERNEL_LDSUFFIX ?= "" - -# Set TARGET_??_KERNEL_ARCH in the machine .conf to set architecture -# specific options necessary for building the kernel and modules. -#FIXME: should be this: TARGET_CC_KERNEL_ARCH ?= "${TARGET_CC_ARCH}" -TARGET_CC_KERNEL_ARCH ?= "" -HOST_CC_KERNEL_ARCH ?= "${TARGET_CC_KERNEL_ARCH}" -TARGET_LD_KERNEL_ARCH ?= "" -HOST_LD_KERNEL_ARCH ?= "${TARGET_LD_KERNEL_ARCH}" - -KERNEL_CC = "${CCACHE}${HOST_PREFIX}gcc${KERNEL_CCSUFFIX} ${HOST_CC_KERNEL_ARCH}${TOOLCHAIN_OPTIONS}" -KERNEL_LD = "${HOST_PREFIX}ld${KERNEL_LDSUFFIX} ${HOST_LD_KERNEL_ARCH}${TOOLCHAIN_OPTIONS}" - -# Where built kernel lies in the kernel tree -KERNEL_OUTPUT ?= "arch/${ARCH}/boot/${KERNEL_IMAGETYPE}" -KERNEL_IMAGEDEST = "boot" - -# -# configuration -# -export CMDLINE_CONSOLE = "console=${@d.getVar("KERNEL_CONSOLE",1) or "ttyS0"}" - -KERNEL_VERSION = "${@get_kernelversion('${B}')}" - -KERNEL_LOCALVERSION ?= "" - -# kernels are generally machine specific -PACKAGE_ARCH = "${MACHINE_ARCH}" - -# U-Boot support -UBOOT_ENTRYPOINT ?= "20008000" -UBOOT_LOADADDRESS ?= "${UBOOT_ENTRYPOINT}" - -# For the kernel, we don't want the '-e MAKEFLAGS=' in EXTRA_OEMAKE. -# We don't want to override kernel Makefile variables from the environment -EXTRA_OEMAKE = "" - -KERNEL_ALT_IMAGETYPE ??= "" - -# Define where the kernel headers are installed on the target as well as where -# they are staged. -KERNEL_SRC_PATH = "/usr/src/kernel" - -KERNEL_IMAGETYPE_FOR_MAKE = "${@(lambda s: s[:-3] if s[-3:] == ".gz" else s)(d.getVar('KERNEL_IMAGETYPE', True))}" - -kernel_do_compile() { - unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS MACHINE - oe_runmake include/linux/version.h CC="${KERNEL_CC}" LD="${KERNEL_LD}" - oe_runmake ${KERNEL_IMAGETYPE_FOR_MAKE} ${KERNEL_ALT_IMAGETYPE} CC="${KERNEL_CC}" LD="${KERNEL_LD}" - if test "${KERNEL_IMAGETYPE_FOR_MAKE}.gz" = "${KERNEL_IMAGETYPE}"; then - gzip -9c < "${KERNEL_IMAGETYPE_FOR_MAKE}" > "${KERNEL_OUTPUT}" - fi -} - -do_compile_kernelmodules() { - unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS MACHINE - if (grep -q -i -e '^CONFIG_MODULES=y$' .config); then - oe_runmake ${PARALLEL_MAKE} modules CC="${KERNEL_CC}" LD="${KERNEL_LD}" - else - bbnote "no modules to compile" - fi -} -addtask compile_kernelmodules after do_compile before 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 INSTALL_MOD_PATH="${D}" modules_install - rm -f "${D}/lib/modules/${KERNEL_VERSION}/modules.order" - rm -f "${D}/lib/modules/${KERNEL_VERSION}/modules.builtin" - rm "${D}/lib/modules/${KERNEL_VERSION}/build" - rm "${D}/lib/modules/${KERNEL_VERSION}/source" - else - bbnote "no modules to install" - fi - - # - # Install various kernel output (zImage, map file, config, module support files) - # - install -d ${D}/${KERNEL_IMAGEDEST} - install -d ${D}/boot - install -m 0644 ${KERNEL_OUTPUT} ${D}/${KERNEL_IMAGEDEST}/${KERNEL_IMAGETYPE}-${KERNEL_VERSION} - install -m 0644 System.map ${D}/boot/System.map-${KERNEL_VERSION} - install -m 0644 .config ${D}/boot/config-${KERNEL_VERSION} - install -m 0644 vmlinux ${D}/boot/vmlinux-${KERNEL_VERSION} - [ -e Module.symvers ] && install -m 0644 Module.symvers ${D}/boot/Module.symvers-${KERNEL_VERSION} - install -d ${D}/etc/modules-load.d - install -d ${D}/etc/modprobe.d - - # - # Support for external module building - create a minimal copy of the - # kernel source tree. - # - kerneldir=${D}${KERNEL_SRC_PATH} - install -d $kerneldir - - # - # Store the kernel version in sysroots for module-base.bbclass - # - - echo "${KERNEL_VERSION}" > $kerneldir/kernel-abiversion - - # - # Store kernel image name to allow use during image generation - # - - echo "${KERNEL_IMAGE_BASE_NAME}" >$kerneldir/kernel-image-name - - # - # Copy the entire source tree. In case an external build directory is - # used, copy the build directory over first, then copy over the source - # dir. This ensures the original Makefiles are used and not the - # redirecting Makefiles in the build directory. - # - # work and sysroots can be on different partitions, so we can't rely on - # hardlinking, unfortunately. - # - cp -fR * $kerneldir - cp .config $kerneldir - if [ "${S}" != "${B}" ]; then - cp -fR ${S}/* $kerneldir - fi - install -m 0644 ${KERNEL_OUTPUT} $kerneldir/${KERNEL_IMAGETYPE} - install -m 0644 System.map $kerneldir/System.map-${KERNEL_VERSION} - - # - # Clean and remove files not needed for building modules. - # Some distributions go through a lot more trouble to strip out - # unecessary headers, for now, we just prune the obvious bits. - # - # We don't want to leave host-arch binaries in /sysroots, so - # we clean the scripts dir while leaving the generated config - # and include files. - # - oe_runmake -C $kerneldir CC="${KERNEL_CC}" LD="${KERNEL_LD}" clean - make -C $kerneldir _mrproper_scripts - find $kerneldir -path $kerneldir/lib -prune -o -path $kerneldir/tools -prune -o -path $kerneldir/scripts -prune -o -name "*.[csS]" -exec rm '{}' \; - find $kerneldir/Documentation -name "*.txt" -exec rm '{}' \; - - # As of Linux kernel version 3.0.1, the clean target removes - # arch/powerpc/lib/crtsavres.o which is present in - # KBUILD_LDFLAGS_MODULE, making it required to build external modules. - if [ ${ARCH} = "powerpc" ]; then - cp arch/powerpc/lib/crtsavres.o $kerneldir/arch/powerpc/lib/crtsavres.o - fi - - # Necessary for building modules like compat-wireless. - cp include/generated/bounds.h $kerneldir/include/generated/bounds.h - - # Remove the following binaries which cause strip or arch QA errors - # during do_package for cross-compiled platforms - bin_files="arch/powerpc/boot/addnote arch/powerpc/boot/hack-coff \ - arch/powerpc/boot/mktree scripts/kconfig/zconf.tab.o \ - scripts/kconfig/conf.o scripts/kconfig/kxgettext.o" - for entry in $bin_files; do - rm -f $kerneldir/$entry - done -} - -sysroot_stage_all_append() { - sysroot_stage_dir ${D}${KERNEL_SRC_PATH} ${SYSROOT_DESTDIR}${KERNEL_SRC_PATH} -} - -kernel_do_configure() { - # fixes extra + in /lib/modules/2.6.37+ - # $ scripts/setlocalversion . => + - # $ make kernelversion => 2.6.37 - # $ make kernelrelease => 2.6.37+ - touch ${B}/.scmversion ${S}/.scmversion - - # Copy defconfig to .config if .config does not exist. This allows - # recipes to manage the .config themselves in do_configure_prepend(). - if [ -f "${WORKDIR}/defconfig" ] && [ ! -f "${B}/.config" ]; then - cp "${WORKDIR}/defconfig" "${B}/.config" - fi - yes '' | oe_runmake oldconfig - - if [ ! -z "${INITRAMFS_IMAGE}" ]; then - for img in cpio.gz cpio.lzo cpio.lzma cpio.xz; do - if [ -e "${DEPLOY_DIR_IMAGE}/${INITRAMFS_IMAGE}-${MACHINE}.$img" ]; then - cp "${DEPLOY_DIR_IMAGE}/${INITRAMFS_IMAGE}-${MACHINE}.$img" initramfs.$img - fi - done - fi -} - -do_configure[depends] += "${INITRAMFS_TASK}" - -do_savedefconfig() { - oe_runmake savedefconfig -} -do_savedefconfig[nostamp] = "1" -addtask savedefconfig after do_configure - -pkg_postinst_kernel-base () { - cd /${KERNEL_IMAGEDEST}; update-alternatives --install /${KERNEL_IMAGEDEST}/${KERNEL_IMAGETYPE} ${KERNEL_IMAGETYPE} ${KERNEL_IMAGETYPE}-${KERNEL_VERSION} ${KERNEL_PRIORITY} || true -} - -pkg_postrm_kernel-base () { - cd /${KERNEL_IMAGEDEST}; update-alternatives --remove ${KERNEL_IMAGETYPE} ${KERNEL_IMAGETYPE}-${KERNEL_VERSION} || true -} - -inherit cml1 - -EXPORT_FUNCTIONS do_compile do_install do_configure - -# kernel-base becomes kernel-${KERNEL_VERSION} -# kernel-image becomes kernel-image-${KERNEL_VERISON} -PACKAGES = "kernel kernel-base kernel-vmlinux kernel-image kernel-dev" -FILES = "" -FILES_kernel-image = "/boot/${KERNEL_IMAGETYPE}*" -FILES_kernel-dev = "/boot/System.map* /boot/Module.symvers* /boot/config* ${KERNEL_SRC_PATH}" -FILES_kernel-vmlinux = "/boot/vmlinux*" -RDEPENDS_kernel = "kernel-base" -# Allow machines to override this dependency if kernel image files are -# not wanted in images as standard -RDEPENDS_kernel-base ?= "kernel-image" -PKG_kernel-image = "kernel-image-${@legitimize_package_name('${KERNEL_VERSION}')}" -PKG_kernel-base = "kernel-${@legitimize_package_name('${KERNEL_VERSION}')}" -RPROVIDES_kernel-base += "kernel-${KERNEL_VERSION}" -ALLOW_EMPTY_kernel = "1" -ALLOW_EMPTY_kernel-base = "1" -ALLOW_EMPTY_kernel-image = "1" - -pkg_postinst_kernel-image () { -if [ ! -e "$D/lib/modules/${KERNEL_VERSION}" ]; then - mkdir -p $D/lib/modules/${KERNEL_VERSION} -fi -if [ -n "$D" ]; then - depmod -a -b $D -F ${STAGING_KERNEL_DIR}/System.map-${KERNEL_VERSION} ${KERNEL_VERSION} -else - depmod -a ${KERNEL_VERSION} -fi -} - -pkg_postinst_modules () { -if [ -z "$D" ]; then - depmod -a ${KERNEL_VERSION} - update-modules || true -fi -} - -pkg_postrm_modules () { -update-modules || true -} - -autoload_postinst_fragment() { -if [ x"$D" = "x" ]; then - modprobe %s || true -fi -} - -# autoload defaults (alphabetically sorted) -module_autoload_hidp = "hidp" -module_autoload_ipv6 = "ipv6" -module_autoload_ipsec = "ipsec" -module_autoload_ircomm-tty = "ircomm-tty" -module_autoload_rfcomm = "rfcomm" -module_autoload_sa1100-rtc = "sa1100-rtc" -# sa1100-rtc was renamed in 2.6.23 onwards -module_autoload_rtc-sa1100 = "rtc-sa1100" - -# alias defaults (alphabetically sorted) -module_conf_af_packet = "alias net-pf-17 af_packet" -module_conf_bluez = "alias net-pf-31 bluez" -module_conf_bnep = "alias bt-proto-4 bnep" -module_conf_hci_uart = "alias tty-ldisc-15 hci_uart" -module_conf_l2cap = "alias bt-proto-0 l2cap" -module_conf_sco = "alias bt-proto-2 sco" -module_conf_rfcomm = "alias bt-proto-3 rfcomm" - -python populate_packages_prepend () { - def extract_modinfo(file): - import tempfile, re, subprocess - tempfile.tempdir = d.getVar("WORKDIR", True) - tf = tempfile.mkstemp() - tmpfile = tf[1] - cmd = "PATH=\"%s\" %sobjcopy -j .modinfo -O binary %s %s" % (d.getVar("PATH", True), d.getVar("HOST_PREFIX", True) or "", file, tmpfile) - subprocess.call(cmd, shell=True) - f = open(tmpfile) - l = f.read().split("\000") - f.close() - os.close(tf[0]) - os.unlink(tmpfile) - exp = re.compile("([^=]+)=(.*)") - vals = {} - for i in l: - m = exp.match(i) - if not m: - continue - vals[m.group(1)] = m.group(2) - return vals - - def parse_depmod(): - import re - - dvar = d.getVar('PKGD', True) - if not dvar: - bb.error("PKGD not defined") - return - - kernelver = d.getVar('KERNEL_VERSION', True) - kernelver_stripped = kernelver - m = re.match('^(.*-hh.*)[\.\+].*$', kernelver) - if m: - kernelver_stripped = m.group(1) - path = d.getVar("PATH", True) - - cmd = "PATH=\"%s\" depmod -n -a -b %s -F %s/boot/System.map-%s %s" % (path, dvar, dvar, kernelver, kernelver_stripped) - f = os.popen(cmd, 'r') - - deps = {} - pattern0 = "^(.*\.k?o):..*$" - pattern1 = "^(.*\.k?o):\s*(.*\.k?o)\s*$" - pattern2 = "^(.*\.k?o):\s*(.*\.k?o)\s*\\\$" - pattern3 = "^\t(.*\.k?o)\s*\\\$" - pattern4 = "^\t(.*\.k?o)\s*$" - - line = f.readline() - while line: - if not re.match(pattern0, line): - line = f.readline() - continue - m1 = re.match(pattern1, line) - if m1: - deps[m1.group(1)] = m1.group(2).split() - else: - m2 = re.match(pattern2, line) - if m2: - deps[m2.group(1)] = m2.group(2).split() - line = f.readline() - m3 = re.match(pattern3, line) - while m3: - deps[m2.group(1)].extend(m3.group(1).split()) - line = f.readline() - m3 = re.match(pattern3, line) - m4 = re.match(pattern4, line) - deps[m2.group(1)].extend(m4.group(1).split()) - line = f.readline() - f.close() - return deps - - def get_dependencies(file, pattern, format): - # file no longer includes PKGD - file = file.replace(d.getVar('PKGD', True) or '', '', 1) - # instead is prefixed with /lib/modules/${KERNEL_VERSION} - file = file.replace("/lib/modules/%s/" % d.getVar('KERNEL_VERSION', True) or '', '', 1) - - if module_deps.has_key(file): - import re - dependencies = [] - for i in module_deps[file]: - m = re.match(pattern, os.path.basename(i)) - if not m: - continue - on = legitimize_package_name(m.group(1)) - dependency_pkg = format % on - dependencies.append(dependency_pkg) - return dependencies - return [] - - def frob_metadata(file, pkg, pattern, format, basename): - import re - vals = extract_modinfo(file) - - dvar = d.getVar('PKGD', True) - - # If autoloading is requested, output /etc/modules-load.d/<name>.conf and append - # appropriate modprobe commands to the postinst - autoload = d.getVar('module_autoload_%s' % basename, True) - if autoload: - name = '%s/etc/modules-load.d/%s.conf' % (dvar, basename) - f = open(name, 'w') - for m in autoload.split(): - f.write('%s\n' % m) - f.close() - postinst = d.getVar('pkg_postinst_%s' % pkg, True) - if not postinst: - bb.fatal("pkg_postinst_%s not defined" % pkg) - postinst += d.getVar('autoload_postinst_fragment', True) % autoload - d.setVar('pkg_postinst_%s' % pkg, postinst) - - # Write out any modconf fragment - modconf = d.getVar('module_conf_%s' % basename, True) - if modconf: - name = '%s/etc/modprobe.d/%s.conf' % (dvar, basename) - f = open(name, 'w') - f.write("%s\n" % modconf) - f.close() - - files = d.getVar('FILES_%s' % pkg, True) - files = "%s /etc/modules-load.d/%s.conf /etc/modprobe.d/%s.conf" % (files, basename, basename) - d.setVar('FILES_%s' % pkg, files) - - if vals.has_key("description"): - old_desc = d.getVar('DESCRIPTION_' + pkg, True) or "" - d.setVar('DESCRIPTION_' + pkg, old_desc + "; " + vals["description"]) - - rdepends_str = d.getVar('RDEPENDS_' + pkg, True) - if rdepends_str: - rdepends = rdepends_str.split() - else: - rdepends = [] - rdepends.extend(get_dependencies(file, pattern, format)) - d.setVar('RDEPENDS_' + pkg, ' '.join(rdepends)) - - module_deps = parse_depmod() - module_regex = '^(.*)\.k?o$' - module_pattern = 'kernel-module-%s' - - postinst = d.getVar('pkg_postinst_modules', True) - postrm = d.getVar('pkg_postrm_modules', True) - do_split_packages(d, root='/lib/firmware', file_regex='^(.*)\.bin$', output_pattern='kernel-firmware-%s', description='Firmware for %s', recursive=True, extra_depends='') - do_split_packages(d, root='/lib/firmware', file_regex='^(.*)\.fw$', output_pattern='kernel-firmware-%s', description='Firmware for %s', recursive=True, extra_depends='') - do_split_packages(d, root='/lib/firmware', file_regex='^(.*)\.cis$', output_pattern='kernel-firmware-%s', description='Firmware for %s', recursive=True, extra_depends='') - do_split_packages(d, root='/lib/modules', file_regex=module_regex, output_pattern=module_pattern, description='%s kernel module', postinst=postinst, postrm=postrm, recursive=True, hook=frob_metadata, extra_depends='update-modules kernel-%s' % d.getVar("KERNEL_VERSION", True)) - - # If modules-load.d and modprobe.d are empty at this point, remove them to - # avoid warnings. removedirs only raises an OSError if an empty - # directory cannot be removed. - dvar = d.getVar('PKGD', True) - for dir in ["%s/etc/modprobe.d" % (dvar), "%s/etc/modules-load.d" % (dvar), "%s/etc" % (dvar)]: - if len(os.listdir(dir)) == 0: - os.rmdir(dir) - - import re - metapkg = "kernel-modules" - d.setVar('ALLOW_EMPTY_' + metapkg, "1") - d.setVar('FILES_' + metapkg, "") - blacklist = [ 'kernel-dev', 'kernel-image', 'kernel-base', 'kernel-vmlinux' ] - for l in module_deps.values(): - for i in l: - pkg = module_pattern % legitimize_package_name(re.match(module_regex, os.path.basename(i)).group(1)) - blacklist.append(pkg) - metapkg_rdepends = [] - packages = d.getVar('PACKAGES', True).split() - for pkg in packages[1:]: - if not pkg in blacklist and not pkg in metapkg_rdepends: - metapkg_rdepends.append(pkg) - d.setVar('RDEPENDS_' + metapkg, ' '.join(metapkg_rdepends)) - d.setVar('DESCRIPTION_' + metapkg, 'Kernel modules meta package') - packages.append(metapkg) - d.setVar('PACKAGES', ' '.join(packages)) -} - -# Support checking the kernel size since some kernels need to reside in partitions -# with a fixed length or there is a limit in transferring the kernel to memory -do_sizecheck() { - if [ ! -z "${KERNEL_IMAGE_MAXSIZE}" ]; then - size=`ls -l ${KERNEL_OUTPUT} | awk '{ print $5}'` - if [ $size -ge ${KERNEL_IMAGE_MAXSIZE} ]; then - rm ${KERNEL_OUTPUT} - die "This kernel (size=$size > ${KERNEL_IMAGE_MAXSIZE}) is too big for your device. Please reduce the size of the kernel by making more of it modular." - fi - fi -} - -addtask sizecheck before do_install after do_compile - -KERNEL_IMAGE_BASE_NAME ?= "${KERNEL_IMAGETYPE}-${PV}-${PR}-${MACHINE}-${DATETIME}" -# Don't include the DATETIME variable in the sstate package signatures -KERNEL_IMAGE_BASE_NAME[vardepsexclude] = "DATETIME" -KERNEL_IMAGE_SYMLINK_NAME ?= "${KERNEL_IMAGETYPE}-${MACHINE}" - -do_uboot_mkimage() { - if test "x${KERNEL_IMAGETYPE}" = "xuImage" ; then - if test "x${KEEPUIMAGE}" = "x" ; then - ENTRYPOINT=${UBOOT_ENTRYPOINT} - if test -n "${UBOOT_ENTRYSYMBOL}"; then - ENTRYPOINT=`${HOST_PREFIX}nm ${S}/vmlinux | \ - awk '$3=="${UBOOT_ENTRYSYMBOL}" {print $1}'` - fi - if test -e arch/${ARCH}/boot/compressed/vmlinux ; then - ${OBJCOPY} -O binary -R .note -R .comment -S arch/${ARCH}/boot/compressed/vmlinux linux.bin - uboot-mkimage -A ${UBOOT_ARCH} -O linux -T kernel -C none -a ${UBOOT_LOADADDRESS} -e $ENTRYPOINT -n "${DISTRO_NAME}/${PV}/${MACHINE}" -d linux.bin arch/${ARCH}/boot/uImage - rm -f linux.bin - else - ${OBJCOPY} -O binary -R .note -R .comment -S vmlinux linux.bin - rm -f linux.bin.gz - gzip -9 linux.bin - uboot-mkimage -A ${UBOOT_ARCH} -O linux -T kernel -C gzip -a ${UBOOT_LOADADDRESS} -e $ENTRYPOINT -n "${DISTRO_NAME}/${PV}/${MACHINE}" -d linux.bin.gz arch/${ARCH}/boot/uImage - rm -f linux.bin.gz - fi - fi - fi -} - -addtask uboot_mkimage before do_install after do_compile - -kernel_do_deploy() { - install -m 0644 ${KERNEL_OUTPUT} ${DEPLOYDIR}/${KERNEL_IMAGE_BASE_NAME}.bin - if (grep -q -i -e '^CONFIG_MODULES=y$' .config); then - tar -cvzf ${DEPLOYDIR}/modules-${KERNEL_VERSION}-${PR}-${MACHINE}.tgz -C ${D} lib - fi - - cd ${DEPLOYDIR} - rm -f ${KERNEL_IMAGE_SYMLINK_NAME}.bin - ln -sf ${KERNEL_IMAGE_BASE_NAME}.bin ${KERNEL_IMAGE_SYMLINK_NAME}.bin - ln -sf ${KERNEL_IMAGE_BASE_NAME}.bin ${KERNEL_IMAGETYPE} - - cp ${COREBASE}/meta/files/deploydir_readme.txt ${DEPLOYDIR}/README_-_DO_NOT_DELETE_FILES_IN_THIS_DIRECTORY.txt -} -do_deploy[dirs] = "${DEPLOYDIR} ${B}" - -addtask deploy before do_build after do_install - -EXPORT_FUNCTIONS do_deploy -
Not needed anymore Signed-off-by: Khem Raj <raj.khem@gmail.com> --- meta-oe/classes/kernel.bbclass | 556 ---------------------------------------- 1 file changed, 556 deletions(-) delete mode 100644 meta-oe/classes/kernel.bbclass