From de5b1670c799cf809b769a58b99bb628aeb75265 Mon Sep 17 00:00:00 2001 From: Rolf Leggewie Date: Tue, 5 Feb 2008 22:02:19 +0000 Subject: initramfs-kexec: initial commit. partly closes 3739. --- packages/initrdscripts/initramfs-kexec_1.0.bb | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 packages/initrdscripts/initramfs-kexec_1.0.bb (limited to 'packages/initrdscripts') diff --git a/packages/initrdscripts/initramfs-kexec_1.0.bb b/packages/initrdscripts/initramfs-kexec_1.0.bb new file mode 100644 index 0000000000..b5bf497f37 --- /dev/null +++ b/packages/initrdscripts/initramfs-kexec_1.0.bb @@ -0,0 +1,25 @@ +DESCRIPTON = "A init script that mounts a device and kexecs a new kernel from it." +PR = "r3" + +do_compile() { + cat > init.sh << EOF +#!/bin/sh +/bin/mount -t proc proc /proc +/bin/mount -t ${ROOTFS} /dev/${ROOTDEV} /mnt +/usr/sbin/kexec -l /mnt/zImage +/usr/sbin/kexec -e +EOF +} + +do_install() { + install -m 0755 ${S}/init.sh ${D}/init + install -d ${D}/proc + install -d ${D}/mnt +} + +PACKAGE_ARCH = "all" + +FILES_${PN} = "/init /proc /mnt" + +ROOTDEV = "mtdblock2" +ROOTFS = "jffs2" -- cgit v1.2.3 From eb62ab748a332a39c68f0928d8e798e0fbd19b46 Mon Sep 17 00:00:00 2001 From: Paul Sokolovsky Date: Wed, 6 Feb 2008 13:23:58 +0000 Subject: initramfs-module-check-modules: An initramfs module to check modules consistency. * Checks that version of the boot kernel matches that of modules installed in rootfs. * A step towards providing manageable upgrade path for kernels outside rootfs. --- packages/initrdscripts/files/90-check-modules.sh | 24 ++++++++++++++++++++++ .../initramfs-module-check-modules_1.0.bb | 12 +++++++++++ 2 files changed, 36 insertions(+) create mode 100644 packages/initrdscripts/files/90-check-modules.sh create mode 100644 packages/initrdscripts/initramfs-module-check-modules_1.0.bb (limited to 'packages/initrdscripts') diff --git a/packages/initrdscripts/files/90-check-modules.sh b/packages/initrdscripts/files/90-check-modules.sh new file mode 100644 index 0000000000..2423d7f8c5 --- /dev/null +++ b/packages/initrdscripts/files/90-check-modules.sh @@ -0,0 +1,24 @@ +#!/bin/sh +# Check that modules for the current kernel exist, error out otherwise + +uname=`cat /proc/version` +ver=`expr "x$uname" : 'xLinux version \([^ ]\+\) '` + +if [ -n "$BOOT_ROOT" -a ! -d "$BOOT_ROOT/lib/modules/$ver" ]; then + echo -e "\033[1m====================" + echo "ERROR!" + echo "There are no modules for this kernel" + echo "version ($ver) in the root file " + echo "system, which will lead to boot failure or" + echo "broken functionally. If you performed" + echo "a kernel upgrade, make sure that version" + echo "installed in root filesystem matches" + echo "version used in bootloader." + echo -e "====================\033[0m" + echo + + echo "System halted" + while true; do + sleep 10000 + done +fi diff --git a/packages/initrdscripts/initramfs-module-check-modules_1.0.bb b/packages/initrdscripts/initramfs-module-check-modules_1.0.bb new file mode 100644 index 0000000000..6986316a6f --- /dev/null +++ b/packages/initrdscripts/initramfs-module-check-modules_1.0.bb @@ -0,0 +1,12 @@ +SRC_URI = "file://90-check-modules.sh" +PR = "r0" +DESCRIPTION = "An initramfs module for checking that kernel modules exist in rootfs" +RDEPENDS = "initramfs-uniboot" + +do_install() { + install -d ${D}/initrd.d + install -m 0755 ${WORKDIR}/90-check-modules.sh ${D}/initrd.d/ +} + +PACKAGE_ARCH = "all" +FILES_${PN} += " /initrd.d/* " -- cgit v1.2.3