Update init script to find the Android path on SD as rootfs init does.
[xdandroid:initramfs.git] / init
1 #!/bin/sh
2 echo "Welcome to Vogue Linux"
3 mkdir -m 0755 /proc
4 mount -t proc proc /proc
5 mkdir -m 0755 /sys
6 mount -t sysfs sys /sys
7
8 #Configure Devices
9 MAKEDEVS
10
11 fail() {
12     echo "Failed"
13     echo "$1"
14     exec /bin/sh
15 }
16 while [ ! -d /sys/block/mmcblk0 ] ; do
17     echo "Waiting for SD Card"
18     sleep 1
19 done
20
21 partition=mmcblk0p1
22
23 # Try unpartitioned card
24 if [ ! -d /sys/block/mmcblk0/$partition ] ; then
25     partition=mmcblk0
26 fi
27
28 mkdir -m 0777 /sdcard
29 echo "Running an fsck on the SD card"
30 dosfsck -y /dev/block/$partition
31 mount -t vfat -o fmask=0000,dmask=0000,rw,flush,noatime,nodiratime /dev/block/$partition /sdcard
32 [ $? -eq 0 ] || fail "Failed to mount the SD card. Cannot continue."
33
34 CARD_PATH=`/bin/grep -o "rel_path=.*" /proc/cmdline | /bin/sed -e "s/.*rel_path=//g" -e "s/ .*//g"`
35
36 if [ "$CARD_PATH" = "" ];then
37         CARD_PATH="andboot"
38 fi
39
40 if [ -d /sdcard/$CARD_PATH ] ; then
41         card=/sdcard/$CARD_PATH
42 else
43         card=/sdcard
44
45 if [ -f $card/rootfs.img ] ; then
46     root="$card/rootfs.img"
47     SQUASHFS=0
48 elif [ -f $card/rootfs.sqsh ]; then
49     root="$card/rootfs.sqsh"
50     SQUASHFS=1
51 else
52         fail "Failed to find rootfs on SD Card. You need to unzip a rootfs zip file to the root of your SD card."
53 fi
54
55 mkdir -m 0755 /rfs
56 losetup /dev/block/loop2 $root
57 [ $? -eq 0 ] || fail "Failed to mount rootfs on SD Card."
58
59 if [ $SQUASHFS -eq 0 ]; then
60     e2fsck -y /dev/block/loop2
61     mount -t ext2 -o noatime,nodiratime,sync,ro /dev/block/loop2 /rfs
62     [ $? -eq 0 ] || fail "Failed to mount rootfs"
63 else
64     mount -t squashfs -o noatime,nodiratime,sync,ro /dev/block/loop2 /rfs
65     [ $? -eq 0 ] || fail "Failed to mount rootfs"
66 fi
67
68 #mkdir /rfs/dev
69 mount -t tmpfs -o size=100K tmpfs /rfs/dev
70 cp -a /dev/* /rfs/dev
71
72 echo "Cleaning up..."
73 umount -l /proc
74 umount -l /sys
75
76 echo "Switching to rootfs..."
77 exec switch_root /rfs /init