[Feature][T108][task-view-1607] emmc mount on /media
Only Configure: No
Affected branch: GSW_V1453
Affected module: ALL
Is it affected on IC: only ASR
Self-test: yes
Doc Update: no
Change-Id: I842c9e0012b96dca99e2349a27d4933283401939
diff --git a/target/linux/mmp/base-files/lib/preinit/emmc_mount.sh b/target/linux/mmp/base-files/lib/preinit/emmc_mount.sh
new file mode 100644
index 0000000..fa3993e
--- /dev/null
+++ b/target/linux/mmp/base-files/lib/preinit/emmc_mount.sh
@@ -0,0 +1,130 @@
+#!/bin/sh
+file_emmc_device="/dev/mmcblk0"
+file_emmc_partition="/dev/mmcblk0p1"
+# file_check_result="/var/log/emmc_check.txt"
+# file_log="/var/log/emmc_init.log"
+# file_mount_point="/media/mmc1"
+file_check_result="/tmp/emmc_check.txt"
+critical_msg="/oemdata/emmc_critical_msg.log"
+file_log="/tmp/emmc_init.log"
+file_mount_point="/media"
+t108_check_mount_point="/rom/media"
+emmc_result_no_emmc="emmc_no_device"
+emmc_result_success="emmc_success"
+emmc_result_no_partition="emmc_no_partition"
+emmc_result_mount_fail="emmc_mount_fail"
+find_format=0
+find_mount_point=0
+cplog_to_oemdata(){
+ cp $file_log /oemdata/
+ cp $file_check_result /oemdata/
+}
+mountCheck() {
+ i=1
+ find_format=0
+ find_mount_point=0
+ echo "$1 read $file_emmc_partition property start" >> $file_log
+ ext4=`df -T $file_emmc_partition`
+ for element in $ext4
+ do
+ echo "line$i:$element" >> $file_log
+ if [ $element == "ext4" ] ; then
+ echo "find format: ext4" >> $file_log
+ find_format=1
+ elif [ $element == "${check_mount_point}" ] ; then
+ echo "find mount point: ${check_mount_point}" >> $file_log
+ find_mount_point=1
+ fi
+ i=`expr $i + 1`
+ done
+ echo "$1 read $file_emmc_partition property end" >> $file_log
+}
+time=$(date "+%Y-%m-%d %H:%M:%S")
+echo "emmc power on checkstart($time)" > $file_log
+#¼ì²éÊÇ·ñÓÐemmcÉ豸£¬Èç¹ûûÓÐ
+if [ ! -e $file_emmc_device ] ; then
+ echo "no emmc device detected" >> $file_log
+ echo "$emmc_result_no_emmc" > $file_check_result
+else #Èç¹ûÓÐ
+ echo "found $file_emmc_device" >> $file_log
+#¼ì²éÓÐûÓзÖÇøÉ豸£¬Èç¹ûûÓÐÔò½øÐзÖÇø
+ if [ ! -e $file_emmc_partition ] ; then
+ echo "make emmc partition start" >> $file_log
+ echo -e "n\np\n1\n\n\nw\n" | fdisk /dev/mmcblk0
+ echo "make emmc partition end" >> $file_log
+ sleep 1s
+ fi
+#Ôٴγ¢ÊÔ£¬Èç¹û»¹ÊÇÕÒ²»µ½·ÖÇøÉ豸£¬ÔòÈÏΪemmcÓÐÎÊÌâ
+ if [ ! -e $file_emmc_partition ] ; then
+ echo "can not make partition:$file_emmc_device" >> $file_log
+ echo "$emmc_result_no_partition" > $file_check_result
+ else
+ echo "found $file_emmc_partition" >> $file_log
+ #¼ì²éÊÇ·ñÒѾmount£¬ÒòΪ¿ÉÄܱ»ÏµÍ³×Ô¶¯µ÷ÓÃfstab¶ømountÉÏ
+ mountCheck kkk
+ echo "kkk find mount_point:$find_mount_point, find_format:$find_format" >> $file_log
+
+ #Èç¹ûÒѾmountÉÏ,²¢ÇÒ¸ñʽΪext4,Ôò³É¹¦£¬·ñÔòÈÏΪÓÐÎÊÌâ
+ if [ $find_mount_point -eq 1 -a $find_format -eq 1 ] ; then
+ echo "$file_emmc_partition has alreay mount" >> $file_log
+ echo "$emmc_result_success" > $file_check_result
+ else
+ #ÏÈÐ¶ÔØ¹ÒÔØµã
+ echo "umount $file_mount_point" >> $file_log
+ umount $file_mount_point
+ #Ïȳ¢ÊÔÊÇ·ñ¿ÉÒÔmountÉÏ, Èç¹ûÒѾ¸ñʽ»¯£¬Ö»ÒªÖ´ÐйÒÔØ¾Í¿ÉÒÔ£¬¾¡Á¿²»¸ñʽ»¯emmc
+ echo "find $file_emmc_partition, and mount to $file_mount_point" >> $file_log
+ mkdir $file_mount_point
+ mount -t ext4 $file_emmc_partition $file_mount_point
+ #¼ì²éÊÇ·ñ¿ÉÒÔ¹ÒÔØÉÏ
+ mountCheck bbb
+ echo "bbb find mount_point:$find_mount_point, find_format:$find_format" >> $file_log
+ #Èç¹û¹ÒÔØÉÏ£¬²¢ÇÒÊÇext4¸ñʽ£¬Ôò³É¹¦
+ if [ $find_mount_point -eq 1 -a $find_format -eq 1 ] ; then
+ echo "$file_emmc_partition mount success" >> $file_log
+ echo "$emmc_result_success" > $file_check_result
+ #Èç¹û¹ÒÔØÉÏ£¬È´²»ÊÇext4¸ñʽ£¬Ôò¸ñʽ»¯Îªext4
+ elif [ $find_mount_point -eq 1 -a $find_format -eq 0 ] ; then
+ #ÏÈÐ¶ÔØ
+ echo "$file_emmc_partition mounted, but it's not ext4 format" >> $file_log
+ echo "umount $file_mount_point" >> $file_log
+ umount $file_mount_point
+ #¸ñʽ»¯emmcΪext4¸ñʽ
+ echo "fomat $file_emmc_partition to ext4" >> $file_log
+ echo "mkfs.ext4 $file_mount_point" >> $file_log
+ cplog_to_oemdata
+ dmesg > $critical_msg
+ mkfs.ext4 $file_emmc_partition >> $file_log 2>&1
+ #Èç¹û¹ÒÔØ²»ÉÏ£¬Ò²¸ñʽ»¯Îªext4
+ else
+ #¸ñʽ»¯emmcΪext4¸ñʽ
+ echo "$file_emmc_partition can not mount" >> $file_log
+ echo "fomat $file_emmc_partition to ext4" >> $file_log
+ echo "mkfs.ext4 $file_mount_point" >> $file_log
+ cplog_to_oemdata
+ dmesg > $critical_msg
+ mkfs.ext4 $file_emmc_partition >> $file_log 2>&1
+ fi
+ #ÖØÐ¹ÒÔØ
+ if [ $find_mount_point -eq 0 -o $find_format -eq 0 ] ; then
+ echo "try mount $file_emmc_partition after proper process" >> $file_log
+ mkdir $file_mount_point
+ mount -t auto $file_emmc_partition $file_mount_point
+ sleep 1s
+ #¼ì²éÊÇ·ñ¿ÉÒÔ¹ÒÔØÉÏ
+ mountCheck zzz
+ echo "zzz find mount_point:$find_mount_point, find_format:$find_format" >> $file_log
+ if [ $find_mount_point -eq 1 -a $find_format -eq 1 ] ; then
+ echo "$file_emmc_partition mount success" >> $file_log
+ echo "$emmc_result_success" > $file_check_result
+ else
+ echo "$file_emmc_partition mount failed" >> $file_log
+ echo "$emmc_result_mount_fail" > $file_check_result
+ cplog_to_oemdata
+ fi
+ fi
+
+ fi
+ fi
+fi
+#exit 0