summaryrefslogtreecommitdiff
path: root/meta/packages
diff options
context:
space:
mode:
authorSamuel Ortiz <sameo@openedhand.com>2008-10-08 14:34:50 +0000
committerSamuel Ortiz <sameo@openedhand.com>2008-10-08 14:34:50 +0000
commit62ece10eb171a341bba097a53fac1bb63a5ee4e4 (patch)
tree1e93d526fe497c6863e26d05389d256ead8dd3a9 /meta/packages
parent460d93416d2f0dba887ffe83d781d7bf05da0017 (diff)
downloadopenembedded-core-62ece10eb171a341bba097a53fac1bb63a5ee4e4.tar.gz
openembedded-core-62ece10eb171a341bba097a53fac1bb63a5ee4e4.tar.bz2
openembedded-core-62ece10eb171a341bba097a53fac1bb63a5ee4e4.tar.xz
openembedded-core-62ece10eb171a341bba097a53fac1bb63a5ee4e4.zip
initrdscripts: init can now launch the installation script
Depending on the boot label ("boot" or "install"), init will either chroot into the rootfs image (live boot path), or launch the installation script (installation path). git-svn-id: https://svn.o-hand.com/repos/poky/trunk@5457 311d38ba-8fff-0310-9ca6-ca027cbcb966
Diffstat (limited to 'meta/packages')
-rw-r--r--meta/packages/initrdscripts/files/init-live.sh41
1 files changed, 31 insertions, 10 deletions
diff --git a/meta/packages/initrdscripts/files/init-live.sh b/meta/packages/initrdscripts/files/init-live.sh
index e081d44dd..96a1a9488 100644
--- a/meta/packages/initrdscripts/files/init-live.sh
+++ b/meta/packages/initrdscripts/files/init-live.sh
@@ -7,7 +7,9 @@ UMOUNT="/bin/umount"
early_setup() {
mkdir /proc
+ mkdir /sys
mount -t proc proc /proc
+ mount -t sysfs sysfs /sys
udevd --daemon
}
@@ -22,6 +24,12 @@ read_args() {
ROOT_FSTYPE=$optarg ;;
rootdelay=*)
rootdelay=$optarg ;;
+ LABEL=*)
+ label=$optarg ;;
+ video=*)
+ video_mode=$optarg ;;
+ vga=*)
+ vga_mode=$optarg ;;
esac
done
}
@@ -38,14 +46,13 @@ fatal() {
exec sh
}
-echo "Starting initramfs boot..."
early_setup
[ -z "$CONSOLE" ] && CONSOLE="/dev/console"
read_args
-echo "Waiting for Live image to show up..."
+echo "Waiting for removable media..."
while true
do
for i in `ls /media 2>/dev/null`; do
@@ -59,12 +66,26 @@ do
sleep 1
done
-mkdir $ROOT_MOUNT
-mknod /dev/loop0 b 7 0
+case $label in
+ boot)
+ mkdir $ROOT_MOUNT
+ mknod /dev/loop0 b 7 0
+
+ if ! $MOUNT -o rw,loop,noatime,nodiratime /media/$i/$ROOT_IMAGE $ROOT_MOUNT ; then
+ fatal "Couldnt mount rootfs image"
+ else
+ boot_live_root
+ fi
+ ;;
+ install)
+ if [ -f /media/$i/$ROOT_IMAGE ] ; then
+ ./install.sh $i $ROOT_IMAGE $video_mode $vga
+ else
+ fatal "Couldnt find install script"
+ fi
+
+ # If we're getting here, we failed...
+ fatal "Installation image failed"
+ ;;
+esac
-if ! $MOUNT -o rw,loop,noatime,nodiratime /media/$i/$ROOT_IMAGE $ROOT_MOUNT
-then
- fatal "Couldnt mount rootfs image"
-else
- boot_live_root
-fi