我们使用IMX6的板子进行android系统的测试的时候,会发现实际eMMC的空间和eMMC本身的空间大小不一样,以下对此进行解释

以android4.0.4和android4.3为例,使用FSL提供的MFG tools工具给鼎芯的IMX6开发板烧写android系统。你会发现android4.0.4和android4.3是不同的,8G eMMC空间,系统识别出来的为7.39G左右,这个没办法的因为eMMC厂商克扣了一部分,本来以1024进制的,现在实际用1000为进制,所以实际上空间比上面标识的大小小很多。

      android4.0.4用户能完全使用的为4.55G空,android4.3的为6.12G(实际用户能使用5.88G),其他不能使用的部分都是为android系统本身占用了,而且用户可用的这部分空间是模拟成SDCARD的方式,通过USB数据线可以在PC机上作为一个存储盘识别出来,可以直接进行复制删除的操作。空间这么分配如何来的呢,都是在MFG tool工具里面进行设置了的.

     现在针对imx6的android版本已经更新到android6.0.1.同理,对于其他android4.4.2、android4.4.3或android5.1.1等版本也是一样的,各个版本用户可用的空间都会不一样,都是因为在MFG tool工具里面进行了设置的,里面默认的值都是FSL认为比较合理的空间分配。我只试验了android4.0.4和android4.3,其他版本android系统都是通过珠海鼎芯的工程师进行了确认。

 

如果用户认为此空间划分不合理,可以通过修改MFG Tool工具目录下MX6Q Linux Update\OSFirmware\mksdcard-android.sh.tar文件,不同版本的mfg too工具这个文件的目录都是一样,修改这个mksdcard-android.sh.tar文件:

(1)在windows或linux PC机系统中解压这个文件,得到mksdcard-android.sh文件,此文件为一个脚本文件,在windows下可以用记事本等文本工具打开,在ubuntu下可以用vi或者gedit的方式打开。

(2)修改里面的空间分配算法,重新对eMMC空间进行划分。用户认真阅读以下这个脚本就会明白其中原理了,比较简单,这里不做说明。

(3)重新把修改后的mksdcard-android.sh文件打包为.tar的格式,然后替换MFG Tool工具目录下MX6Q Linux Update\OS Firmware\中的文件。

(4)最后重新使用mfgtool工具对imx6板子进行烧写,再启动之后,就会发现用户可用的空间已经变成你所设置的。

注意:空间的划分不是随便来进行的,一定要给android系统本身留出足够的空间。

 我所用的板子为珠海鼎芯(D-Chip)的板子,从该公司工程师处得到很多建议和帮助!