summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Hentges <oe@hentges.net>2006-03-29 03:38:18 +0000
committerOpenEmbedded Project <openembedded-devel@lists.openembedded.org>2006-03-29 03:38:18 +0000
commitf19059ca2d12415411489190c9b3c3849ecd1c0f (patch)
treeb45a33268c624f2c255006adeff43ba2c3b3a493
parenta4f921a0bcfa7ec3ea032f94798a7cc7f9f00cf2 (diff)
altboot: Altboot now remembers the last loop-image (or realfs),too, which allowsa true automatic booting of the last user-setting
-rw-r--r--packages/altboot/altboot_0.0.0.bb2
-rw-r--r--packages/altboot/files/altboot-menu/Advanced/40-bootNFS20
-rw-r--r--packages/altboot/files/altboot.func36
-rw-r--r--packages/altboot/files/init.altboot7
4 files changed, 56 insertions, 9 deletions
diff --git a/packages/altboot/altboot_0.0.0.bb b/packages/altboot/altboot_0.0.0.bb
index 4b69c50e14..020546dd64 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 = "r27"
+PR = "r28"
SRC_URI = "file://altboot-menu \
diff --git a/packages/altboot/files/altboot-menu/Advanced/40-bootNFS b/packages/altboot/files/altboot-menu/Advanced/40-bootNFS
index 3a41fccf79..baa426218b 100644
--- a/packages/altboot/files/altboot-menu/Advanced/40-bootNFS
+++ b/packages/altboot/files/altboot-menu/Advanced/40-bootNFS
@@ -91,7 +91,20 @@ run_module() {
do
stty echo
echo -n "Boot NFS root: "
- read junk < /dev/tty1
+
+ if test "$AUTOBOOT" != "yes"
+ then
+ read junk < /dev/tty1
+ else
+ if test -e /etc/.altboot-bootNFS-source.last
+ then
+ junk="`cat /etc/.altboot-bootNFS-source.last`"
+ test -z "$junk" && read junk < /dev/tty1 || echo "$junk (autoboot)"
+ else
+ read junk < /dev/tty1
+ fi
+ fi
+
cnt=1
for nfs_mount in $nfs_mounts
@@ -99,6 +112,7 @@ run_module() {
if test "$junk" = "$cnt"
then
selection="$nfs_mount"
+ echo "$junk" > /etc/.altboot-bootNFS-source.last
fi
let cnt=$cnt+1
done
@@ -115,10 +129,10 @@ run_module() {
mount -t nfs "$selection" /media/nfsroot && echo ok || die "mount -t nfs "$selection" /media/nfsroot failed!"
# Use configured resolv.conf in the pivoted rootfs
- echo -n "Copying resolv.conf..."
+ #echo -n "Copying resolv.conf..."
#cp /etc/resolv.conf /media/nfsroot/etc && echo ok || echo "FAILED"
- check_target "/media/nfsroot"
+ check_target "/media/nfsroot" bootNFS
}
diff --git a/packages/altboot/files/altboot.func b/packages/altboot/files/altboot.func
index c6af50a008..4389ff4ff8 100644
--- a/packages/altboot/files/altboot.func
+++ b/packages/altboot/files/altboot.func
@@ -1,6 +1,7 @@
#! /bin/sh
# This function checks for the presence of a real filesystem and loop-images on the target
# $1 = folder of rootfs, $2 = runlevel (defaults to 5)
+# $2 = name of calling module
check_target() {
# Check if there is a /sbin/init or /sbin/init.sysvinit on the card
if test -x $1/sbin/init -o -x $1/$REAL_INIT
@@ -31,11 +32,24 @@ check_target() {
while test -z "$ans"
do
echo -n "Your choice: "
- read junk < /dev/tty1
+
+ if test "$AUTOBOOT" != "yes"
+ then
+ read junk < /dev/tty1
+ else
+ if test -e /etc/.altboot-$2-real-or-loop.last
+ then
+ junk="`cat /etc/.altboot-$2-real-or-loop.last`"
+ test -z "$junk" && read junk < /dev/tty1 || echo "$junk (autoboot)"
+ else
+ read junk < /dev/tty1
+ fi
+ fi
if test "$junk" = 1 -o "$junk" = 2
then
ans="$junk"
+ echo "$junk" > /etc/.altboot-$2-real-or-loop.last
fi
done
@@ -62,7 +76,7 @@ check_target() {
# This function pivot_root's into a real filesystem calling $newrootfs/sbin/init
# $1 = The new rootfs
pivot_realfs() {
- test -z "$2" && RL="5" || RL="$2"
+ #test -z "$2" && RL="5" || RL="$2"
mkdir -p $1/media/ROM || die "mkdir -p $1/media/ROM failed"
mount -o remount,ro / >/dev/null 2>&1
@@ -73,7 +87,7 @@ pivot_realfs() {
# This function loop-mounts an image-file and pivot_root's into it
# $1: The new rootfs
pivot_image() {
- test -z "$2" && RL="5" || RL="$2"
+ #test -z "$2" && RL="5" || RL="$2"
cd $1/$IMAGE_PATH
# Check for rootfs images on the card
@@ -95,7 +109,18 @@ pivot_image() {
while test -z "$IMAGE_NAME"
do
echo -en "Please choose one of the above: "
- read junk < /dev/tty1
+ if test "$AUTOBOOT" != "yes"
+ then
+ read junk < /dev/tty1
+ else
+ if test -e /etc/.altboot-loopimage.last
+ then
+ junk="`cat /etc/.altboot-loopimage.last`"
+ test -z "$junk" && read junk < /dev/tty1 || echo "$junk (autoboot)"
+ else
+ read junk < /dev/tty1
+ fi
+ fi
x=0
for file in `ls *rootfs.bin`
@@ -103,7 +128,8 @@ pivot_image() {
let x=$x+1
if test "$x" = "$junk"
then
- IMAGE_NAME="$file"
+ IMAGE_NAME="$file"
+ echo "$junk" > /etc/.altboot-loopimage.last
fi
done
done
diff --git a/packages/altboot/files/init.altboot b/packages/altboot/files/init.altboot
index 850912f20c..665b3fa4b5 100644
--- a/packages/altboot/files/init.altboot
+++ b/packages/altboot/files/init.altboot
@@ -183,6 +183,13 @@ run_timer() {
echo -n "." >/dev/tty1
let cnt=$cnt+1
done
+
+ if test "$launch_altboot" != "yes"
+ then
+ AUTOBOOT=yes
+ else
+ rm -f /etc/.altboot*.last
+ fi
else
launch_altboot=yes
fi