From 3b329bd57865df84d231b645e1e40572196bd211 Mon Sep 17 00:00:00 2001 From: Matthias Hentges Date: Thu, 2 Mar 2006 16:19:04 +0000 Subject: altboot: Releas of the first stable version: 0.0.5. Tested on Akita and Collie --- packages/altboot/altboot_0.0.0.bb | 2 +- packages/altboot/altboot_0.0.5-rc5.bb | 152 --------------------- packages/altboot/altboot_0.0.5.bb | 152 +++++++++++++++++++++ .../altboot/files/altboot-menu/Advanced/35-kexec | 62 +++++++++ 4 files changed, 215 insertions(+), 153 deletions(-) delete mode 100644 packages/altboot/altboot_0.0.5-rc5.bb create mode 100644 packages/altboot/altboot_0.0.5.bb create mode 100644 packages/altboot/files/altboot-menu/Advanced/35-kexec 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 " 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-rc5.bb deleted file mode 100644 index 1cb51a3639..0000000000 --- a/packages/altboot/altboot_0.0.5-rc5.bb +++ /dev/null @@ -1,152 +0,0 @@ -#! /bin/sh -# -# Copyright Matthias Hentges (c) 2006 -# License: GPL (see http://www.gnu.org/licenses/gpl.txt for a copy of the license) -# -# Filename: altboot_0.0.5-rc2.bb -# Date: 21-Feb-06 - -DESCRIPTION = "The altboot bootmanager" -MAINTAINER = "Matthias 'CoreDump' Hentges " -HOMEPAGE = "http://www.hentges.net/misc/openzaurus/index.shtml" - -###################################################################################### - -PR = "r0" - -###################################################################################### - -PACKAGE_ARCH = "${MACHINE}" - -TAG = "${@'v' + bb.data.getVar('PV',d,1).replace('.', '-')}" - -SRC_URI = "cvs://anonymous@hentges.net/hentgescvs;method=pserver;tag=${TAG};module=altboot" - -###################################################################################### - -do_install() { - install -d ${D}/sbin - install -d ${D}/etc/altboot-menu - install -d ${D}/etc/altboot-menu/Advanced - install -d ${D}/etc/altboot.rc - install -d ${D}/usr/share/doc/altboot - - if test -d ${WORKDIR}/altboot/${MACHINE} - then - install -m 0644 ${WORKDIR}/altboot/${MACHINE}/altboot*.cfg ${D}/etc - else - install -m 0644 ${WORKDIR}/altboot/altboot*.cfg ${D}/etc - fi - - install -m 0644 ${WORKDIR}/altboot/altboot.func ${D}/etc - install -m 0755 ${WORKDIR}/altboot/init.altboot ${D}/sbin - - if test -d ${WORKDIR}/altboot/${MACHINE}/altboot-menu/ - then - install -m 0755 ${WORKDIR}/altboot/${MACHINE}/altboot-menu/*-* ${D}/etc/altboot-menu - else - install -m 0755 ${WORKDIR}/altboot/altboot-menu/*-* ${D}/etc/altboot-menu - fi - - if test -d ${WORKDIR}/altboot/${MACHINE}/altboot-menu/Advanced/ - then - install -m 0755 ${WORKDIR}/altboot/${MACHINE}/altboot-menu/Advanced/*-* ${D}/etc/altboot-menu/Advanced - else - install -m 0755 ${WORKDIR}/altboot/altboot-menu/Advanced/*-* ${D}/etc/altboot-menu/Advanced - fi - - install -m 0755 ${WORKDIR}/altboot/altboot.rc/*.sh ${D}/etc/altboot.rc - install -m 0644 ${WORKDIR}/altboot/altboot.rc/*.txt ${D}/etc/altboot.rc -} - -###################################################################################### - -do_configure() { - cat ${WORKDIR}/altboot/init.altboot | sed "s/^VERSION=.*/VERSION=\"${PV}\"/" > ${WORKDIR}/altboot/init.altboot_ - mv ${WORKDIR}/altboot/init.altboot_ ${WORKDIR}/altboot/init.altboot -} - -###################################################################################### - -pkg_postinst() { - update-alternatives --install /sbin/init init /sbin/init.altboot 55 -} - -pkg_postinst_spitz() { - # Note: Spitz support is a royal pain in the ass. - # Since Spitz pivot_roots by default, there is no real way - # a user can install an altboot.ipk into the flash FS. - # So we need to do that manually (*SIGH*) - - # the 2.6 kernel for spitz boots from HDD, no need to copy to flash - if cat /proc/version | awk '{print $3}' | grep -q '^2.6'; then - update-alternatives --install /sbin/init init /sbin/init.altboot 55 - # no need to copy to flash if we're installing to flash already - elif mount | grep ' / ' | grep -q mtdblock; then - update-alternatives --install /sbin/init init /sbin/init.altboot 55 - else - # /l/m only exists on the HDD on spitz - if test -d /lib/modules - then - if [ -e /media/realroot/sbin/init ]; then - ROOT_MOUNT_POINT="/media/realroot" - elif [ -e /media/ROM/sbin/init ]; then - ROOT_MOUNT_POINT="/media/ROM" - fi - if [ ! "$ROOT_MOUNT_POINT" = "" ]; then - ROOT_MOUNT_DEVICE=`cat /proc/mounts | grep $ROOT_MOUNT_POINT | grep jffs2 | cut -d " " -f 1` - if [ ! "$ROOT_MOUNT_DEVICE" = "" ]; then - mount -oremount,rw $ROOT_MOUNT_DEVICE $ROOT_MOUNT_POINT - cp -R /etc/altboot* $ROOT_MOUNT_POINT/etc - cp /sbin/init.altboot $ROOT_MOUNT_POINT/sbin - if [ -f $ROOT_MOUNT_POINT/sbin/init ]; then - mv $ROOT_MOUNT_POINT/sbin/init $ROOT_MOUNT_POINT/sbin/init.orig - fi - ln -s /sbin/init.altboot $ROOT_MOUNT_POINT/sbin/init - fi - fi - fi - fi -} - -###################################################################################### - -pkg_postrm() { - update-alternatives --remove init /sbin/init.altboot -} - -pkg_postrm_spitz() { - # the 2.6 kernel for spitz boots from HDD, no need to remove from flash - if cat /proc/version | awk '{print $3}' | grep -q '^2.6'; then - update-alternatives --remove init /sbin/init.altboot - # no need to copy to flash if we're removing from flash already - elif mount | grep ' / ' | grep -q mtdblock; then - update-alternatives --remove init /sbin/init.altboot - else - if test -d /lib/modules - then - if [ -e /media/realroot/sbin/init ]; then - ROOT_MOUNT_POINT="/media/realroot" - elif [ -e /media/ROM/sbin/init ]; then - ROOT_MOUNT_POINT="/media/ROM" - fi - if [ ! "$ROOT_MOUNT_POINT" = "" ]; then - ROOT_MOUNT_DEVICE=`cat /proc/mounts | grep $ROOT_MOUNT_POINT | grep jffs2 | cut -d " " -f 1` - if [ ! "$ROOT_MOUNT_DEVICE" = "" ]; then - mount -oremount,rw $ROOT_MOUNT_DEVICE $ROOT_MOUNT_POINT - if [ -f $ROOT_MOUNT_POINT/sbin/init.orig ]; then - rm $ROOT_MOUNT_POINT/sbin/init - rm $ROOT_MOUNT_POINT/sbin/init.altboot - mv $ROOT_MOUNT_POINT/sbin/init.orig $ROOT_MOUNT_POINT/sbin/init - else - echo "$ROOT_MOUNT_POINT/sbin/init.orig not found, not uninstalling altboot!" - fi - fi - fi - fi - fi -} - - - - diff --git a/packages/altboot/altboot_0.0.5.bb b/packages/altboot/altboot_0.0.5.bb new file mode 100644 index 0000000000..1cb51a3639 --- /dev/null +++ b/packages/altboot/altboot_0.0.5.bb @@ -0,0 +1,152 @@ +#! /bin/sh +# +# Copyright Matthias Hentges (c) 2006 +# License: GPL (see http://www.gnu.org/licenses/gpl.txt for a copy of the license) +# +# Filename: altboot_0.0.5-rc2.bb +# Date: 21-Feb-06 + +DESCRIPTION = "The altboot bootmanager" +MAINTAINER = "Matthias 'CoreDump' Hentges " +HOMEPAGE = "http://www.hentges.net/misc/openzaurus/index.shtml" + +###################################################################################### + +PR = "r0" + +###################################################################################### + +PACKAGE_ARCH = "${MACHINE}" + +TAG = "${@'v' + bb.data.getVar('PV',d,1).replace('.', '-')}" + +SRC_URI = "cvs://anonymous@hentges.net/hentgescvs;method=pserver;tag=${TAG};module=altboot" + +###################################################################################### + +do_install() { + install -d ${D}/sbin + install -d ${D}/etc/altboot-menu + install -d ${D}/etc/altboot-menu/Advanced + install -d ${D}/etc/altboot.rc + install -d ${D}/usr/share/doc/altboot + + if test -d ${WORKDIR}/altboot/${MACHINE} + then + install -m 0644 ${WORKDIR}/altboot/${MACHINE}/altboot*.cfg ${D}/etc + else + install -m 0644 ${WORKDIR}/altboot/altboot*.cfg ${D}/etc + fi + + install -m 0644 ${WORKDIR}/altboot/altboot.func ${D}/etc + install -m 0755 ${WORKDIR}/altboot/init.altboot ${D}/sbin + + if test -d ${WORKDIR}/altboot/${MACHINE}/altboot-menu/ + then + install -m 0755 ${WORKDIR}/altboot/${MACHINE}/altboot-menu/*-* ${D}/etc/altboot-menu + else + install -m 0755 ${WORKDIR}/altboot/altboot-menu/*-* ${D}/etc/altboot-menu + fi + + if test -d ${WORKDIR}/altboot/${MACHINE}/altboot-menu/Advanced/ + then + install -m 0755 ${WORKDIR}/altboot/${MACHINE}/altboot-menu/Advanced/*-* ${D}/etc/altboot-menu/Advanced + else + install -m 0755 ${WORKDIR}/altboot/altboot-menu/Advanced/*-* ${D}/etc/altboot-menu/Advanced + fi + + install -m 0755 ${WORKDIR}/altboot/altboot.rc/*.sh ${D}/etc/altboot.rc + install -m 0644 ${WORKDIR}/altboot/altboot.rc/*.txt ${D}/etc/altboot.rc +} + +###################################################################################### + +do_configure() { + cat ${WORKDIR}/altboot/init.altboot | sed "s/^VERSION=.*/VERSION=\"${PV}\"/" > ${WORKDIR}/altboot/init.altboot_ + mv ${WORKDIR}/altboot/init.altboot_ ${WORKDIR}/altboot/init.altboot +} + +###################################################################################### + +pkg_postinst() { + update-alternatives --install /sbin/init init /sbin/init.altboot 55 +} + +pkg_postinst_spitz() { + # Note: Spitz support is a royal pain in the ass. + # Since Spitz pivot_roots by default, there is no real way + # a user can install an altboot.ipk into the flash FS. + # So we need to do that manually (*SIGH*) + + # the 2.6 kernel for spitz boots from HDD, no need to copy to flash + if cat /proc/version | awk '{print $3}' | grep -q '^2.6'; then + update-alternatives --install /sbin/init init /sbin/init.altboot 55 + # no need to copy to flash if we're installing to flash already + elif mount | grep ' / ' | grep -q mtdblock; then + update-alternatives --install /sbin/init init /sbin/init.altboot 55 + else + # /l/m only exists on the HDD on spitz + if test -d /lib/modules + then + if [ -e /media/realroot/sbin/init ]; then + ROOT_MOUNT_POINT="/media/realroot" + elif [ -e /media/ROM/sbin/init ]; then + ROOT_MOUNT_POINT="/media/ROM" + fi + if [ ! "$ROOT_MOUNT_POINT" = "" ]; then + ROOT_MOUNT_DEVICE=`cat /proc/mounts | grep $ROOT_MOUNT_POINT | grep jffs2 | cut -d " " -f 1` + if [ ! "$ROOT_MOUNT_DEVICE" = "" ]; then + mount -oremount,rw $ROOT_MOUNT_DEVICE $ROOT_MOUNT_POINT + cp -R /etc/altboot* $ROOT_MOUNT_POINT/etc + cp /sbin/init.altboot $ROOT_MOUNT_POINT/sbin + if [ -f $ROOT_MOUNT_POINT/sbin/init ]; then + mv $ROOT_MOUNT_POINT/sbin/init $ROOT_MOUNT_POINT/sbin/init.orig + fi + ln -s /sbin/init.altboot $ROOT_MOUNT_POINT/sbin/init + fi + fi + fi + fi +} + +###################################################################################### + +pkg_postrm() { + update-alternatives --remove init /sbin/init.altboot +} + +pkg_postrm_spitz() { + # the 2.6 kernel for spitz boots from HDD, no need to remove from flash + if cat /proc/version | awk '{print $3}' | grep -q '^2.6'; then + update-alternatives --remove init /sbin/init.altboot + # no need to copy to flash if we're removing from flash already + elif mount | grep ' / ' | grep -q mtdblock; then + update-alternatives --remove init /sbin/init.altboot + else + if test -d /lib/modules + then + if [ -e /media/realroot/sbin/init ]; then + ROOT_MOUNT_POINT="/media/realroot" + elif [ -e /media/ROM/sbin/init ]; then + ROOT_MOUNT_POINT="/media/ROM" + fi + if [ ! "$ROOT_MOUNT_POINT" = "" ]; then + ROOT_MOUNT_DEVICE=`cat /proc/mounts | grep $ROOT_MOUNT_POINT | grep jffs2 | cut -d " " -f 1` + if [ ! "$ROOT_MOUNT_DEVICE" = "" ]; then + mount -oremount,rw $ROOT_MOUNT_DEVICE $ROOT_MOUNT_POINT + if [ -f $ROOT_MOUNT_POINT/sbin/init.orig ]; then + rm $ROOT_MOUNT_POINT/sbin/init + rm $ROOT_MOUNT_POINT/sbin/init.altboot + mv $ROOT_MOUNT_POINT/sbin/init.orig $ROOT_MOUNT_POINT/sbin/init + else + echo "$ROOT_MOUNT_POINT/sbin/init.orig not found, not uninstalling altboot!" + fi + fi + fi + fi + fi +} + + + + 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 + -- cgit v1.2.3