#/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 -o $bootparam_root = "/dev/ram0" ]; 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" 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 }