summaryrefslogtreecommitdiffstats
path: root/meta/recipes-core/initrdscripts/initramfs-framework/setup-live
diff options
context:
space:
mode:
Diffstat (limited to 'meta/recipes-core/initrdscripts/initramfs-framework/setup-live')
-rw-r--r--meta/recipes-core/initrdscripts/initramfs-framework/setup-live66
1 files changed, 66 insertions, 0 deletions
diff --git a/meta/recipes-core/initrdscripts/initramfs-framework/setup-live b/meta/recipes-core/initrdscripts/initramfs-framework/setup-live
new file mode 100644
index 0000000000..ec4a139084
--- /dev/null
+++ b/meta/recipes-core/initrdscripts/initramfs-framework/setup-live
@@ -0,0 +1,66 @@
1#/bin/sh
2# Copyright (C) 2011 O.S. Systems Software LTDA.
3# Licensed on MIT
4
5setup_enabled() {
6 return 0
7}
8
9setup_run() {
10ROOT_IMAGE="rootfs.img"
11ISOLINUX=""
12ROOT_DISK=""
13shelltimeout=30
14
15 if [ -z $bootparam_root ]; then
16 echo "Waiting for removable media..."
17 C=0
18 while true
19 do
20 for i in `ls /run/media 2>/dev/null`; do
21 if [ -f /run/media/$i/$ROOT_IMAGE ] ; then
22 found="yes"
23 ROOT_DISK="$i"
24 break
25 elif [ -f /run/media/$i/isolinux/$ROOT_IMAGE ]; then
26 found="yes"
27 ISOLINUX="isolinux"
28 ROOT_DISK="$i"
29 break
30 fi
31 done
32 if [ "$found" = "yes" ]; then
33 break;
34 fi
35 # don't wait for more than $shelltimeout seconds, if it's set
36 if [ -n "$shelltimeout" ]; then
37 echo -n " " $(( $shelltimeout - $C ))
38 if [ $C -ge $shelltimeout ]; then
39 echo "..."
40 echo "Mounted filesystems"
41 mount | grep media
42 echo "Available block devices"
43 cat /proc/partitions
44 fatal "Cannot find $ROOT_IMAGE file in /run/media/* , dropping to a shell "
45 fi
46 C=$(( C + 1 ))
47 fi
48 sleep 1
49 done
50 # The existing rootfs module has no support for rootfs images. Assign the rootfs image.
51 bootparam_root="/run/media/$ROOT_DISK/$ISOLINUX/$ROOT_IMAGE"
52 else
53 break
54 fi
55
56 if [ "$bootparam_LABEL" != "boot" -a -f /init.d/$bootparam_LABEL.sh ] ; then
57 if [ -f /run/media/$i/$ISOLINUX/$ROOT_IMAGE ] ; then
58 ./init.d/$bootparam_LABEL.sh $i/$ISOLINUX $ROOT_IMAGE $video_mode $vga_mode $console_params
59 else
60 fatal "Could not find $bootparam_LABEL script"
61 fi
62
63 # If we're getting here, we failed...
64 fatal "Target $bootparam_LABEL failed"
65 fi
66}