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;

(From OE-Core rev: 3fc8cec53038f41d31344040c56d62aac90ba7e0)

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Otavio Salvador 2011-10-11 19:18:50 +00:00 committed by Richard Purdie
parent cd898bfd96
commit e4953031de
2 changed files with 22 additions and 13 deletions

View File

@ -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

View File

@ -1,9 +1,10 @@
DESCRIPTION = "A live image init script"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
RDEPENDS = "udev"
SRC_URI = "file://init-live.sh"
PR = "r6"
PR = "r7"
do_install() {
install -m 0755 ${WORKDIR}/init-live.sh ${D}/init