这应该是第4次使用repo下载适合TI的DM3730 EVM板的android源码了,今天就仔细的来说一说.前几次下载的都是android2.3(Gingerbread),这次下载的android4.0.3(ICS),话说这ICS也出来才不久,发现TI对他的支持也没有Gingerbread2.3全面,对应的UG和DG和之前的2.3都差不多,我猜原因应该是他对底层的修改不大,最多是把文件系统给替换了一下,所以熟悉2.3的去搞4.0.3也是很方便的。
提供两个网址 UG:http://processors.wiki.ti.com/index.php/TI-Android-ICS-4.0.3-DevKit-3.0.0_UserGuide
DG:http://processors.wiki.ti.com/index.php/TI-Android-ICS-4.0.3-DevKit-3.0.0_DevelopersGuide
这次下载4.0.3的源码,苦于TI的官网下载太坑人,下载他的ICS_devkit到99.9%就停止了(4个多G下载了3次)。所以只好使用repo(管理android源码仓库的脚本)来完成下载。这个下载是蛮痛苦的4个多G的.git,下载一个晚上是必须的。好了说说这次我的下载步骤吧:
吸取前期的教训,使用脚本load_Android.sh:
#!/bin/sh
echo "download Android4.0.3"
./.repo/repo/repo sync
while [ $? -ne 0 ]
do
./.repo/repo/repo sync
done
echo "load finish"
来完成,这个脚本第一次使用,分析了一下,第一句命令在shell下面执行完成,会返回一个EXIT_STATE,一般执行正常结束为0,否则非0。这个数值就存在于$?。
下载使用的mainfest与android相关如下:
default.xml rowboat-gingerbread-ti81xx-mc-dsp-snapshot-GMT20110926200120.xml TI-Android-FroYo-DSP-DevKit-V2.2.0.0.xml
rowboat-donut-dsp.xml rowboat-gingerbread-ti81xx-mc-dsp.xml TI-Android-GingerBread-2.3.4-DevKit-2.1.1.xml
rowboat-donut.xml rowboat-gingerbread-ti81xx.xml TI-Android-GingerBread-2.3.4-DevKit-2.1.xml
rowboat-eclair-dsp.xml rowboat-gingerbread.xml TI-Android-GingerBread-2.3.4-DevKit-Flashboard.xml
rowboat-eclair.xml rowboat-ics-am335x.xml TI-Android-GingerBread-2.3-DevKit-1.0.xml
rowboat-froyo-am1808.xml rowboat-ics-ti81xx.xml TI-Android-GingerBread-2.3-DevKit-2.0.xml
rowboat-froyo-am389x.xml rowboat-ics.xml TI-Android-GingerBread-DSP-2.3-DevKit-1.0.xml
rowboat-froyo-dsp.xml TI-Android-Eclair-DevKit-V1.xml TI-Android-ICS-4.0.3-DevKit-3.0.0.xml
rowboat-froyo.xml TI-Android-EVMKit-V2.2.0.0.xml TI-Android-ICS-4.0.3-DevKit-3.0.1.xml
rowboat-gingerbread-am335x.xml TI-Android-FroYo-DevKit-V2.1.0.0.xml TI-Android-ICS-4.0.3-DevKit-EVM-SK-3.0.1.xml
rowboat-gingerbread-am45x.xml TI-Android-FroYo-DevKit-V2.2.0.0.xml
rowboat-gingerbread-dsp.xml TI-Android-FroYo-DevKit-V2.xml
基本上涉及TI的开发板的android源码xml都在上面了,主要是rowboat和Ti。rowboat做为Geogle的一个porject专门为Ti的Davinci处理器服务和支持。TI_devkit开发团队基本是TI原先在开发omap那帮人。
前期使用过GingerBread Devkit(包括支持dsp(CE)和非dsp(DSPBridge),也使用过rowboat。这次选择了 TI-Android-ICS-4.0.3-DevKit-3.0.1.xml,但是下载完同步后没有x-loader,也不能按张DG编译文件系统等,初步怀疑这个xml有缺陷。
后来直接删除了同步出来的文件,重新init -u git://gitorious.org/rowboat/manifest.git -m xml(选择了 TI-Android-ICS-4.0.3-DevKit-3.0.0.xml)发现后来正常了
这也总结出,不需要重新再次去下载.git(最浪费时间),换个xml就可以完成升级之类的。或者版本的替换,因为如果缺失,repo sync会完成缺损部分的下载,或者添加等等。
一句话,如果源码下载有误,不许全部删除project.git,换个路径的xml试试。这样可以节省很多时间。至于选哪个看开发的需要。话说网上很多下载都是和TI平台无关的android源码。
最后感谢TI E2E™ Community上Vishveshwar Bhat的帮助,嘿嘿,ICS我来了。
TI官方给出的.3.0.1为何没有x-loader
TI-Android-ICS-4.0.3-DevKit-3.0.1.xml manifest is for AM335x devices only. There is no separate x-loader sources as its it part of the u-boot sources itself.
意思应该就是这套源码只支持AM335X,没有单独的x-loader。它已经是uboot源码的一部分了。
对上述解释(http://processors.wiki.ti.com/index.php/TI-Android-ICS-4.0.3-DevKit-3.0.1_ReleaseNotes),此处有解答,AM335x的uboot里面包含了类似x-loader的SPL,并且是和uboot打包在一起的,最终还是会编译成为MLO镜像的。只是的确没有单独分离成为x-loader