mirror of
https://git.yoctoproject.org/poky
synced 2026-05-30 00:20:08 +00:00
initramfs-framework: module to support boot live image
setup-live module is a new module being introduced to integrate the functionality of init-live.sh into new scriptlet named setup-live in order to support the live boot image. The udev-extraconf rdepends is being added to perform automounting. It gets to run before the rootfs and finish module. The setup-live scriplet include the changes for: - Create a conditional loop for the bootparam_root variable. If it is not set, then it will boot from ROOT_IMAGE. Else, it will boot normally which is not from removable media. - Gives a standard path to the original boot disk mount which can be used to. While /media/sda is a good guess, it isn't always right, nor is it a good assumption that only one boot disk is in the system. - The current rootfs module has no support for rootfs images, currently it only support for rootfs partitions for wic image. Therefore, there is a need to assign the rootfs image for live image. [YOCTO #11701] (From OE-Core rev: 4d3300e85a8e65207a415b9cf84c9fa1f71b0406) Signed-off-by: Ng, Wei Tee <wei.tee.ng@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
committed by
Richard Purdie
parent
05e4f13971
commit
716d5d9e65
@@ -0,0 +1,66 @@
|
||||
#/bin/sh
|
||||
# Copyright (C) 2011 O.S. Systems Software LTDA.
|
||||
# Licensed on MIT
|
||||
|
||||
setup_enabled() {
|
||||
return 0
|
||||
}
|
||||
|
||||
setup_run() {
|
||||
ROOT_IMAGE="rootfs.img"
|
||||
ISOLINUX=""
|
||||
ROOT_DISK=""
|
||||
shelltimeout=30
|
||||
|
||||
if [ -z $bootparam_root ]; then
|
||||
echo "Waiting for removable media..."
|
||||
C=0
|
||||
while true
|
||||
do
|
||||
for i in `ls /run/media 2>/dev/null`; do
|
||||
if [ -f /run/media/$i/$ROOT_IMAGE ] ; then
|
||||
found="yes"
|
||||
ROOT_DISK="$i"
|
||||
break
|
||||
elif [ -f /run/media/$i/isolinux/$ROOT_IMAGE ]; then
|
||||
found="yes"
|
||||
ISOLINUX="isolinux"
|
||||
ROOT_DISK="$i"
|
||||
break
|
||||
fi
|
||||
done
|
||||
if [ "$found" = "yes" ]; then
|
||||
break;
|
||||
fi
|
||||
# don't wait for more than $shelltimeout seconds, if it's set
|
||||
if [ -n "$shelltimeout" ]; then
|
||||
echo -n " " $(( $shelltimeout - $C ))
|
||||
if [ $C -ge $shelltimeout ]; then
|
||||
echo "..."
|
||||
echo "Mounted filesystems"
|
||||
mount | grep media
|
||||
echo "Available block devices"
|
||||
cat /proc/partitions
|
||||
fatal "Cannot find $ROOT_IMAGE file in /run/media/* , dropping to a shell "
|
||||
fi
|
||||
C=$(( C + 1 ))
|
||||
fi
|
||||
sleep 1
|
||||
done
|
||||
# The existing rootfs module has no support for rootfs images. Assign the rootfs image.
|
||||
bootparam_root="/run/media/$ROOT_DISK/$ISOLINUX/$ROOT_IMAGE"
|
||||
else
|
||||
break
|
||||
fi
|
||||
|
||||
if [ "$bootparam_LABEL" != "boot" -a -f /init.d/$bootparam_LABEL.sh ] ; then
|
||||
if [ -f /run/media/$i/$ISOLINUX/$ROOT_IMAGE ] ; then
|
||||
./init.d/$bootparam_LABEL.sh $i/$ISOLINUX $ROOT_IMAGE $video_mode $vga_mode $console_params
|
||||
else
|
||||
fatal "Could not find $bootparam_LABEL script"
|
||||
fi
|
||||
|
||||
# If we're getting here, we failed...
|
||||
fatal "Target $bootparam_LABEL failed"
|
||||
fi
|
||||
}
|
||||
Reference in New Issue
Block a user