From: Otavio Salvador Date: Tue, 11 Oct 2011 19:18:50 +0000 (+0000) Subject: initramfs-live-boot: make it more generic and easy to use X-Git-Tag: 2015-4~13073 X-Git-Url: https://code.ossystems.io/gitweb?a=commitdiff_plain;h=3fc8cec53038f41d31344040c56d62aac90ba7e0;p=openembedded-core.git 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 --- 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 - diff --git a/meta/recipes-core/initrdscripts/initramfs-live-boot_1.0.bb b/meta/recipes-core/initrdscripts/initramfs-live-boot_1.0.bb index b404f8c600..e85a0e1189 100644 --- a/meta/recipes-core/initrdscripts/initramfs-live-boot_1.0.bb +++ b/meta/recipes-core/initrdscripts/initramfs-live-boot_1.0.bb @@ -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