android usb mass storage EMMC转化为SD卡(二)

上一篇讲到了如何为新的sd卡添加UMS的接口,这个接口是使用大容量存储的前提.也就是把我们的EMMC划一个分区当做SD卡的前提.

这篇主要是在EMMC里做一个分区.

先看看android里的分区表文件吧.(这个文件属于emmc驱动,源码里没有,不同厂商实现也可能不一样.凑合看吧)

#include <emmc.h>

struct partition partitions[] = {
	{ "-", 1024 },                         /*  0~1 M  */
	{ "loader", 3*1024 },		       	   /*  1~4 M: xloader & uboot */
	{ "-", 28*1024},		       /*  4~32M  */
	{ "recovery", 16*1024 },	       /*  32~48M */
	{ "boot", 16*1024 },		       /*  48~64M */
	{ "system", 320*1024 },
	{ "cache", 64*1024 },
	{ "userdata", 1*1024*1024 },
	{ "sdcard", 2*1024*1024 },
	{ "misc", 16*1024 },
	{ 0, 0 },
};


sdcard部分是新增的,划出2G空间作为内置SD卡,空间划分出来了.现在需要格式化一下.SD卡一般是FAT格式的.所以需要一个FAT的工具格式化一下.

一个比较好用的是mkfs.vfat.

在安装脚本里添上一句格式化EMMC SDcard的语句(红色部分).

#!/bin/sh

# include the installation functions
. /sbin/install_funcs.sh 

show_progress 0

# install kernel zImage
if [ $UPDATE_BOOT -eq 1 ]; then
	emmc_update_img "boot.img"
fi

show_progress 10

if [ $UPDATE_RECOVERY -eq 1 ]; then
	emmc_update_img "recovery.img"
fi

show_progress 20

# install cpio pkgs
if [ $UPDATE_SYS -eq 1 ]; then
	emmc_update_img "system.img"
        show_progress 60
        
	touch /etc/mtab
	
	......

	mkfs.ext4 /dev/block/platform/sdhc.2/by-name/userdata $k_num
	mkfs.vfat /dev/block/platform/sdhc.2/by-name/sdcard
	show_progress 80

	......

	#install_product_conf
	show_progress 100
fi

# install config
install_config ext4

# installation done
install_done $1

其实挺简单的,就是把EMMC的储存空间拿一部分来当做SD卡,只需要注意一下这个分区的格式为FAT就OK了.


你可能感兴趣的:(android usb mass storage EMMC转化为SD卡(二))