OSDN Git Service

Modify EXTERNAL_STORAGE_STATE in init.rc and mountd.conf
authorChih-Wei Huang <cwhuang@linux.org.tw>
Tue, 21 Jul 2009 14:41:13 +0000 (22:41 +0800)
committerChih-Wei Huang <cwhuang@linux.org.tw>
Tue, 21 Jul 2009 14:43:52 +0000 (22:43 +0800)
to support sdcard auto mount

initrd/init
initrd/scripts/0-auto-detect
initrd/scripts/2-mount [new file with mode: 0644]

index e2ab81f..2359183 100755 (executable)
@@ -44,60 +44,8 @@ while [ 1 ]; do
                mount -t tmpfs tmpfs /android
                cd /android
                zcat /mnt/$SRC/ramdisk.img | cpio -id > /dev/null
-               mount -o loop,rw /mnt/$SRC/system.img /sfs
-               if [ -e /sfs/etc/mountd.conf ]; then
-                       if [ -n "$SDCARD" ]; then
-                               if [ -b $SDCARD ]; then
-                                       sed -i "s|\(^ *block_device *\)\(/dev/.*\)|\1$SDCARD|g" /sfs/etc/mountd.conf
-                                       sed -i 's/^EXTERNAL_STORAGE_STATE=.*$/EXTERNAL_STORAGE_STATE=mounted/g' /sfs/build.prop
-                               elif [ -b /dev/$SDCARD ]; then
-                                       SDCARD=`echo $SDCARD | sed -e 's|^/\(.*\)|\1|g'`
-                                       sed -i "s|\(^ *block_device *\)\(/dev/.*\)|\1/dev/$SDCARD|g" /sfs/etc/mountd.conf
-                                       sed -i 's/^EXTERNAL_STORAGE_STATE=.*$/EXTERNAL_STORAGE_STATE=mounted/g' /sfs/build.prop
-                               else
-                                       SDCARD=`echo $SDCARD | sed -e 's|^/\(.*\)|\1|g'`
-                                       # reset the mount status, mountd will set it when the external storage is added
-                                       sed -i 's/^EXTERNAL_STORAGE_STATE=.*$/EXTERNAL_STORAGE_STATE=unmounted/g' /sfs/build.prop
-                                       _sdcard=1
-                                       sed -i "s|\(^ *block_device *\)\(/dev/.*\)|\1/dev/$SDCARD|g" /sfs/etc/mountd.conf
-                               fi
-                       else
-                               # clean up the mountd.conf to always mount from tmpfs
-                               sed -i "s|\(^ *block_device *\)\(/dev/.*\)|\1/dev/SDCARD|g" /sfs/etc/mountd.conf
-                               sed -i 's/^EXTERNAL_STORAGE_STATE=.*$/EXTERNAL_STORAGE_STATE=mounted/g' /sfs/build.prop
-                       fi
-               elif [ -e /sfs/build.prop ]; then
-                       sed -i 's/^EXTERNAL_STORAGE_STATE=.*$/EXTERNAL_STORAGE_STATE=mounted/g' /sfs/build.prop
-               fi
-               umount /sfs
                mount -o loop,ro /mnt/$SRC/system.img /sfs
                if [ -e /sfs/system.img ]; then
-                       mount -o loop,rw /sfs/system.img system
-                       if [ -e system/etc/mountd.conf ]; then
-                               if [ -n "$SDCARD" ] ; then
-                                       if [ -b $SDCARD ]; then
-                                               sed -i "s|\(^ *block_device *\)\(/dev/.*\)|\1$SDCARD|g" /system/etc/mountd.conf
-                                               sed -i 's/^EXTERNAL_STORAGE_STATE=.*$/EXTERNAL_STORAGE_STATE=mounted/g' /system/build.prop
-                                       elif [ -b /dev/$SDCARD ]; then
-                                               SDCARD=`echo $SDCARD | sed -e 's|^/\(.*\)|\1|g'`
-                                               sed -i "s|\(^ *block_device *\)\(/dev/.*\)|\1/dev/$SDCARD|g" /sfs/etc/mountd.conf
-                                               sed -i 's/^EXTERNAL_STORAGE_STATE=.*$/EXTERNAL_STORAGE_STATE=mounted/g' /system/build.prop
-                                       else
-                                               SDCARD=`echo $SDCARD | sed -e 's|^/\(.*\)|\1|g'`
-                                               # reset the mount status, mountd will set it when the external storage is added
-                                               sed -i 's/^EXTERNAL_STORAGE_STATE=.*$/EXTERNAL_STORAGE_STATE=unmounted/g' /system/build.prop
-                                               _sdcard=1
-                                               sed -i "s|\(^ *block_device *\)\(/dev/.*\)|\1/dev/$SDCARD|g" /system/etc/mountd.conf
-                                       fi
-                               else
-                                       # clean up the mountd.conf to always mount from tmpfs
-                                       sed -i "s|\(^ *block_device *\)\(/dev/.*\)|\1/dev/SDCARD|g" /system/etc/mountd.conf
-                                       sed -i 's/^EXTERNAL_STORAGE_STATE=.*$/EXTERNAL_STORAGE_STATE=mounted/g' /system/build.prop
-                               fi
-                       elif [ -e system/build.prop ]; then
-                               sed -i 's/^EXTERNAL_STORAGE_STATE=.*$/EXTERNAL_STORAGE_STATE=mounted/g' /system/build.prop
-                       fi
-                       umount system
                        mount -o loop,ro /sfs/system.img system
                else
                        mount --move /sfs system
@@ -120,29 +68,6 @@ ln -s android/system /
 
 ln -s ../system/lib/modules /lib
 
-if [ -b "$DATA" ]; then
-       mount $DATA data
-elif [ -b "/dev/$DATA" ]; then
-       mount /dev/$DATA data
-elif [ -d /mnt/$SRC/data ]; then
-       mount --bind /mnt/$SRC/data data
-else
-       mount -t tmpfs tmpfs data
-fi
-if [ -z "$_sdcard"  ]; then
-       if [ -b "$SDCARD" ]; then
-               mount $SDCARD sdcard
-       elif [ -b "/dev/$SDCARD" ]; then
-               mount /dev/$SDCARD sdcard
-       else
-               if [ -d /mnt/$SRC/sdcard ]; then
-                       mount --bind /mnt/$SRC/sdcard sdcard
-               else
-                       mount -t tmpfs tmpfs sdcard
-               fi
-       fi
-fi
-
 # load scripts
 for s in `ls /scripts/* /mnt/$SRC/scripts/*`; do
        source $s
@@ -152,6 +77,9 @@ load_modules
 
 [ -n "$INSTALL" ] && install_hd
 
+mount_data
+mount_sdcard
+
 if [ -n "$DEBUG" ]; then
        echo -e "\nUse Alt-F1/F2/F3 to switch between virtual consoles"
        echo -e "Type 'exit' to enter Android...\n"
index 62113c8..7b107e3 100644 (file)
@@ -34,19 +34,18 @@ get_asus_info()
                        LANDEV=atl1e
                        WIFDEV=ath5k
                        ;;
-               901)
+               901|1000|1000H)
                        LANDEV=atl1e
                        WIFDEV=rt2860sta
                        ;;
                *)
                        LANDEV=atl1e
                        WIFDEV=ath9k
-#                      WIFDEV=rt2860sta
                        ;;
        esac
 
        # common for all Eee PC models
-       FB0DEV=i915
+       [ ! -c /dev/fb0 ] && FB0DEV=i915
        SNDDEV=snd-hda-intel
        CAMDEV=uvcvideo
        PREDEV=snd-hda-codec-realtek
@@ -92,6 +91,6 @@ load_modules()
        [ -n "$FB0DEV" ] && modprobe $FB0DEV
        [ -n "$LANDEV" ] && modprobe $LANDEV
        [ -n "$WIFDEV" ] && modprobe $WIFDEV
-       [ -n "$SNDDEV" ] && modprobe $SNDDEV
+       [ -n "$SNDDEV" ] && modprobe $SNDDEV || modprobe snd-dummy
        [ -n "$CAMDEV" ] && modprobe $CAMDEV
 }
diff --git a/initrd/scripts/2-mount b/initrd/scripts/2-mount
new file mode 100644 (file)
index 0000000..722a822
--- /dev/null
@@ -0,0 +1,40 @@
+#
+# By Chih-Wei Huang <cwhuang@linux.org.tw>
+# Last updated 2009/07/21
+#
+# License: GNU Public License
+# We explicitely grant the right to use the scripts
+# with Android-x86 project.
+#
+
+mount_data()
+{
+       if [ -b "$DATA" ]; then
+               mount $DATA data
+       elif [ -b "/dev/$DATA" ]; then
+               mount /dev/$DATA data
+       elif [ -d /mnt/$SRC/data ]; then
+               mount --bind /mnt/$SRC/data data
+       else
+               mount -t tmpfs tmpfs data
+       fi
+}
+
+mount_sdcard()
+{
+       if [ -n "$SDCARD" ]; then
+               [ -b "$SDCARD" ] && SDCARD=`echo $SDCARD | sed "s|/dev/||g"`
+               if [ -b "/dev/$SDCARD" ]; then
+                       mount /dev/$SDCARD sdcard
+               else
+                       sed -i "s|\(EXTERNAL_STORAGE_STATE\) mounted|\1 unmounted|g" init.rc
+               fi
+               sed -i "s|\(^ *block_device *\)\(/dev/.*\)|\1/dev/block/$SDCARD|g" mountd.conf
+       else
+               if [ -d /mnt/$SRC/sdcard ]; then
+                       mount --bind /mnt/$SRC/sdcard sdcard
+               else
+                       mount -t tmpfs tmpfs sdcard
+               fi
+       fi
+}