aboutsummaryrefslogtreecommitdiffstats
path: root/meta/recipes-kernel/kmod
diff options
context:
space:
mode:
Diffstat (limited to 'meta/recipes-kernel/kmod')
-rw-r--r--meta/recipes-kernel/kmod/depmodwrapper-cross_1.0.bb43
1 files changed, 43 insertions, 0 deletions
diff --git a/meta/recipes-kernel/kmod/depmodwrapper-cross_1.0.bb b/meta/recipes-kernel/kmod/depmodwrapper-cross_1.0.bb
new file mode 100644
index 0000000000..efb1cac4c6
--- /dev/null
+++ b/meta/recipes-kernel/kmod/depmodwrapper-cross_1.0.bb
@@ -0,0 +1,43 @@
+DESCRIPTION = "Depmod wrapper script"
+LICENSE = "MIT"
+PR = "r0"
+LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
+
+# We need the following for the sstate code to process the wrapper
+SSTATE_SCAN_FILES += "depmodwrapper"
+
+do_install() {
+ install -d ${D}${bindir_crossscripts}/
+
+ cat > ${D}${bindir_crossscripts}/depmodwrapper << EOF
+#!/bin/sh
+# Expected to be called as: depmodwrapper -a KERNEL_VERSION
+if [ "\$1" != "-a" -o "\$2" != "-b" ]; then
+ echo "Usage: depmodwrapper -a -b rootfs KERNEL_VERSION" >&2
+ exit 1
+fi
+if [ ! -r ${STAGING_KERNEL_DIR}/kernel-abiversion ]; then
+ echo "Unable to read: ${STAGING_KERNEL_DIR}/kernel-abiversion" >&2
+else
+ kernelabi=\$(cat ${STAGING_KERNEL_DIR}/kernel-abiversion)
+ if [ "\$kernelabi" != "\$4" ]; then
+ echo "Error: Kernel version \$4 does not match kernel-abiversion (\$kernelabi)" >&2
+ exit 1
+ fi
+fi
+
+if [ ! -r ${STAGING_KERNEL_DIR}/System.map-\$4 ]; then
+ echo "Unable to read: ${STAGING_KERNEL_DIR}/System.map-\$4" >&2
+ exec env depmod "\$1" "\$2" "\$3" "\$4"
+else
+ exec env depmod "\$1" "\$2" "\$3" -F "${STAGING_KERNEL_DIR}/System.map-\$4" "\$4"
+fi
+EOF
+ chmod +x ${D}${bindir_crossscripts}/depmodwrapper
+}
+
+SYSROOT_PREPROCESS_FUNCS += "depmodwrapper_sysroot_preprocess"
+
+depmodwrapper_sysroot_preprocess () {
+ sysroot_stage_dir ${D}${bindir_crossscripts} ${SYSROOT_DESTDIR}${bindir_crossscripts}
+}