summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packages/altboot/altboot_0.0.0.bb2
-rw-r--r--packages/altboot/altboot_0.0.5.bb (renamed from packages/altboot/altboot_0.0.5-rc5.bb)0
-rw-r--r--packages/altboot/files/altboot-menu/Advanced/35-kexec62
3 files changed, 63 insertions, 1 deletions
diff --git a/packages/altboot/altboot_0.0.0.bb b/packages/altboot/altboot_0.0.0.bb
index 6aaa7ead05..7d56cbd3a6 100644
--- a/packages/altboot/altboot_0.0.0.bb
+++ b/packages/altboot/altboot_0.0.0.bb
@@ -6,7 +6,7 @@ MAINTAINER = "Matthias 'CoreDump' Hentges <oe@hentges.net>"
LICENSE = "GPL"
IGNORE_STRIP_ERRORS = "1"
-PR = "r25"
+PR = "r26"
SRC_URI = "file://altboot-menu \
diff --git a/packages/altboot/altboot_0.0.5-rc5.bb b/packages/altboot/altboot_0.0.5.bb
index 1cb51a3639..1cb51a3639 100644
--- a/packages/altboot/altboot_0.0.5-rc5.bb
+++ b/packages/altboot/altboot_0.0.5.bb
diff --git a/packages/altboot/files/altboot-menu/Advanced/35-kexec b/packages/altboot/files/altboot-menu/Advanced/35-kexec
new file mode 100644
index 0000000000..41b193a379
--- /dev/null
+++ b/packages/altboot/files/altboot-menu/Advanced/35-kexec
@@ -0,0 +1,62 @@
+# !/bin/sh
+M_TITLE="init=/bin/sh"
+
+exit 0
+
+# Only kernel 2.6 offers kexec support
+uname -r | grep -q "^2.6" || exit 0
+
+run_module() {
+
+ test -e /etc/altboot.func && . /etc/altboot.func || die "ERROR: /etc/altboot.func not found. Check your installation!"
+
+ test -z "$KEXEC_KERNEL_DIR" && KEXEC_KERNEL_DIR="/boot"
+ test -x "$KEXEC_BIN" || die "kexec-tools not found [$KEXEC_BIN]"
+
+ # Mount /proc, etc
+ init_rootfs
+
+ if test "`find "$KEXEC_KERNEL_DIR" -type f -name "*zImage*" | wc -l | tr -d " "`" -gt 1
+ then
+ echo "Please choose a kernel to boot:"
+ cd "$KEXEC_KERNEL_DIR"
+
+ cnt=1
+ for f in `ls -1 "$KEXEC_KERNEL_DIR"`
+ do
+ echo "[$cnt] $f"
+ let cnt=$cnt+1
+ done
+
+ while true
+ do
+ echo -n "Boot kernel: "
+ read junk
+
+ if test -n "$junk"
+ then
+ cnt=1
+ for f in `ls -1 "$KEXEC_KERNEL_DIR"`
+ do
+ if test "$cnt" = "$junk"
+ then
+ KEXEC_KERNEL="$f"
+ break
+ fi
+ let cnt=$cnt+1
+ done
+ fi
+ done
+
+ echo "kernel dir:[$KEXEC_KERNEL_DIR]"
+ echo "Using kernel: [$KEXEC_KERNEL]"
+
+
+ for
+}
+
+case "$1" in
+title) echo "$M_TITLE";;
+run) run_module;;
+esac
+