android的烧写与运行

 
从今天开始就要进入android开发的天空了! android虽然早闻其名,但没实际操作过,听说很牛X。
现在有机会要将android在我们的MID平台上跑起来,所以有了本篇博客。
手头有两份2进制的烧写文件,一份是samsung原厂的20090309版本的,另外一份是走了的一个兄弟留下的,曾经跑起来过,还写有烧写手册。
硬件SMDK6410 DEMO板,从原厂买的,放了个1Gbit的K9F1G08U0B到NAND卡槽。
先使用samsung原厂的烧写文件,按Install Guide将u-boot.bin,zImage,ramdisk-uboot.img, system.img, userdata.img烧写完毕,重启,显示企鹅图标后,出现“ANDROID”字样,然后伟大的机器人出现了,哈哈,应该可以了吧! 可机器人一致在那闪啊闪就是不进入桌面!
受到打击后,想着可以试试另外一份,于是如法炮制,将之烧写完毕,重启,终端里进入kernel后到最后不知道什么原因init失败了,halt! 再次受打击!
经过多次烧写,发现了两个kernel的flash的layout还是有差别的,终端信息如下:
原版:
0x000c0000-0x00100000 : "misc"
0x00100000-0x00600000 : "recovery"
0x00600000-0x00900000 : "kernel"
0x00900000-0x00a00000 : "ramdisk"
0x00a00000-0x04d00000 : "system"
0x04d00000-0x09000000 : "cache"
mtd: partition "cache" extends beyond the end of device "NAND 128MiB 3,3V 8-bit" -- size truncated to 0x3300000
0x08000000-0x08000000 : "userdata"
mtd: partition "userdata" is out of reach -- disabled
兄弟留下的版本:
0x000c0000-0x00100000 : "misc"
0x00100000-0x00600000 : "recovery"
0x00600000-0x00900000 : "kernel"
0x00900000-0x00a00000 : "ramdisk"
0x00a00000-0x04d00000 : "system"
0x04d00000-0x05a00000 : "cache"
0x05a00000-0x08000000 : "userdata"
显然原版的0x04d00000-0x09000000 : "cache"地址已经超过我们的1Gbit的NAND地址空间了,所以可以推断,samsung是用256MB的NAND进行开发的。
而兄弟留下的则改过了layout,但进不了文件系统就挂了。
无奈之下,决定自己重新编译内核,于是将SMDK6410_ABC_0309.tar.gz拷贝到自己目录,解压,设置环境,编译。成功后将zImage烧写进SMDK6410,终于,这次进入了android的界面!
修改layout在./arch/arm/plat-s3c/include/plat/partition.h中,更改如下:
        #if 0
        {
                .name           = "cache",
                .offset         = MTDPART_OFS_APPEND,
                .size           = (67*SZ_1M),
        },
        #else
        {
                .name           = "cache",
                .offset         = MTDPART_OFS_APPEND,
                .size           = (13*SZ_1M),
        },
将其改小到128M范围内。  

你可能感兴趣的:(android,cache,Flash,layout,System,终端)