| #!/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 |
| } |