aboutsummaryrefslogtreecommitdiffstats
path: root/meta/recipes-core/initrdscripts/files/init-live.sh
diff options
context:
space:
mode:
authorOtavio Salvador <otavio@ossystems.com.br>2011-10-11 19:18:50 +0000
committerRichard Purdie <richard.purdie@linuxfoundation.org>2011-10-14 12:53:30 +0100
commit3fc8cec53038f41d31344040c56d62aac90ba7e0 (patch)
treea9071a02c411227cdc3eda60ba6fa994e719036e /meta/recipes-core/initrdscripts/files/init-live.sh
parent989238c366499aa3420c5594a7e256e50c78cc4b (diff)
downloadopenembedded-core-contrib-3fc8cec53038f41d31344040c56d62aac90ba7e0.tar.gz
initramfs-live-boot: make it more generic and easy to use
The script was making some assumptions that enforced many requirement in the machine kernel configuration and usage, besides it were too while booting. Changes included: * fix indentation; * rdepends on udev; * allow use of isofs as module; * remove rootdelay param parsing as it was unused; * don't verbosely kill udevd and mknod; * mount devtmpfs into rootfs, if available, before swithing root; Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Diffstat (limited to 'meta/recipes-core/initrdscripts/files/init-live.sh')
-rw-r--r--meta/recipes-core/initrdscripts/files/init-live.sh32
1 files changed, 20 insertions, 12 deletions
diff --git a/meta/recipes-core/initrdscripts/files/init-live.sh b/meta/recipes-core/initrdscripts/files/init-live.sh
index c054863a2a..eb5ab5b7a5 100644
--- a/meta/recipes-core/initrdscripts/files/init-live.sh
+++ b/meta/recipes-core/initrdscripts/files/init-live.sh
@@ -13,6 +13,11 @@ early_setup() {
mkdir /sys
mount -t proc proc /proc
mount -t sysfs sysfs /sys
+
+ # support modular kernel
+ modprobe isofs 2> /dev/null
+
+ mkdir /run
udevd --daemon
udevadm trigger --action=add
}
@@ -25,21 +30,25 @@ read_args() {
root=*)
ROOT_DEVICE=$optarg ;;
rootfstype=*)
- ROOT_FSTYPE=$optarg ;;
- rootdelay=*)
- rootdelay=$optarg ;;
- LABEL=*)
- label=$optarg ;;
- video=*)
- video_mode=$arg ;;
- vga=*)
- vga_mode=$arg ;;
+ modprobe $optarg 2> /dev/null ;;
+ LABEL=*)
+ label=$optarg ;;
+ video=*)
+ video_mode=$arg ;;
+ vga=*)
+ vga_mode=$arg ;;
esac
done
}
boot_live_root() {
- killall udevd
+ killall udevd 2>/dev/null
+
+ # use devtmpfs if available
+ if grep -q devtmpfs /proc/filesystems; then
+ mount -t devtmpfs devtmpfs $ROOT_MOUNT/dev
+ fi
+
cd $ROOT_MOUNT
exec switch_root -c /dev/console $ROOT_MOUNT /sbin/init
}
@@ -78,7 +87,7 @@ done
case $label in
boot)
mkdir $ROOT_MOUNT
- mknod /dev/loop0 b 7 0
+ mknod /dev/loop0 b 7 0 2>/dev/null
if ! $MOUNT -o rw,loop,noatime,nodiratime /media/$i/$ISOLINUX/$ROOT_IMAGE $ROOT_MOUNT ; then
fatal "Couldnt mount rootfs image"
@@ -97,4 +106,3 @@ case $label in
fatal "Installation image failed"
;;
esac
-