linux-kexecboot.inc: fix minimal versions required for LZMA.
[vuplus_openembedded] / recipes / kexecboot / linux-kexecboot.inc
index 4b2bb1d..82f2c53 100644 (file)
@@ -1,10 +1,8 @@
 # We set PR here, since a change in the kexecboot recipe will need to get picked up by *all* the kernels:
-PR = "r15"
-
-SRC_URI = "file://defconfig"
+PR = "r18"
 
 LOGO_SIZE = '${@base_conditional("GUI_MACHINE_CLASS", "bigscreen", "vga", "qvga", d)}'
-SRC_URI += "file://${LOGO_SIZE}/logo_linux_clut224.ppm.bz2"
+SRC_URI = "file://${LOGO_SIZE}/logo_linux_clut224.ppm.bz2"
 
 require ../linux/linux.inc
 
@@ -31,12 +29,35 @@ TKSRC = "http://www.informatik.hu-berlin.de/~tkunze/zaurus/patches"
 KERNEL_IMAGE_BASE_NAME = "${KERNEL_IMAGETYPE}-kexecboot-${PV}-${PR}-${MACHINE}"
 KERNEL_IMAGE_SYMLINK_NAME = "${KERNEL_IMAGETYPE}-kexecboot-${MACHINE}"
 
+# use custom function until base_version_less_or_equal is fixed
+#
+def kernel_version_less_or_equal(variable, checkvalue, truevalue, falsevalue, d):
+    from bb import utils
+    result = bb.utils.vercmp_part(bb.data.getVar(variable,d,True), checkvalue)
+    if result <= 0:
+        return truevalue
+    else:
+        return falsevalue
+
+# force lzma compression for kernel (linux-kexecboot >= 2.6.32)
+# force lzma compression for initramfs (linux-kexecboot >= 2.6.30)
+
+KERNEL_COMPRESSION = '${@kernel_version_less_or_equal("PV", "2.6.32", "", "CONFIG_KERNEL_LZMA=y", d)}'
+
+INITRAMFS_COMPRESSION = '${@kernel_version_less_or_equal("PV", "2.6.30", "", "CONFIG_INITRAMFS_COMPRESSION_LZMA=y", d)}'
+INITRAMFS_COMPRESSION_SUFFIX = '${@kernel_version_less_or_equal("PV", "2.6.30", "gz", "lzma", d)}'
+RD_COMPRESSION = '${@kernel_version_less_or_equal("PV", "2.6.30", "", "CONFIG_RD_LZMA=y", d)}'
+
 do_configure[depends] += "${INITRAMFS_IMAGE}:do_rootfs"
 
+
 do_configure_append() {
 sed -i -e /CONFIG_BLK_DEV_INITRD/d \
        -e /CONFIG_KEXEC/d \
+       -e /CONFIG_KERNEL/d \
        -e /CONFIG_INITRAMFS_SOURCE/d \
+       -e /CONFIG_INITRAMFS_COMPRESSION/d \
+       -e /CONFIG_RD/d \
        -e /=m/d \
        -e /CONFIG_MODULES/d \
        -e /CONFIG_DEBUG_ERRORS/d \
@@ -50,7 +71,10 @@ sed -i -e /CONFIG_CMDLINE/s/debug/loglevel=3/1 ${S}/.config
 
 echo 'CONFIG_BLK_DEV_INITRD=y
 CONFIG_KEXEC=y
-CONFIG_INITRAMFS_SOURCE="initramfs.cpio.gz"
+${KERNEL_COMPRESSION}
+${INITRAMFS_COMPRESSION}
+CONFIG_INITRAMFS_SOURCE="initramfs.cpio.${INITRAMFS_COMPRESSION_SUFFIX}"
+${RD_COMPRESSION}
 CONFIG_MODULES=n' >> ${S}/.config
 
         yes '' | oe_runmake oldconfig