6410开发板上烧录Android映像步骤,及ramdisk和system说明

来源:互联网 发布:淘宝上的秒杀是假的 编辑:程序博客网 时间:2024/06/05 09:03
 在已得到Android的烧录映像后,操作如下:DNW中设置加载 oot地址:0x57e00000,先将CFG3跳线配置到第三向左第四向右,从NOR FLASH启动。

1,u-boot
      开机上电,烧录一次 OOT后,按键盘进入命令状态,输入dnw,第二次烧入u-boot文件,因为要烧入NAND中。

      执行nand erase 0 40000;nand write c0000000 0 40000

2,kernel
       输入dnw,烧录后,执行nand erase 600000 300000;nand write c0000000 600000 300000

3.ram-disk
       输入dnw,烧录后,执行nand erase 900000 100000;nand write c0000000 900000 100000

4,android image - system.img
        输入dnw,烧录后,执行nand erase a00000 4300000;nand write.yaffs c0000000 a00000 3057000,注意:size大小依实际而定。

5,android user data  - userdata.img
         输入dnw,烧录后,执行nand erase 5a00000 2600000;nand write.yaffs c0000000 5a00000 840

6,boot command
        setenv bootcmd 'nand read 50008000 600000 300000;nand read 50800000 900000 100000;bootm 50008000  50800000'
       saveenv

7,断电,重新将CF3跳线配置到第三右第四左从NAND启动,上电即可。

=============================================================

      android源码编译后得到system.img,ramdisk.img,userdata.img映像文件。其中, ramdisk.img是emulator的文件系统,system.img包括了主要的包、库等文件,userdata.img包括了一些用户数据,emulator负责加载这3个映像文件后,会把system.img和userdata.img分别加载到 ramdisk文件系统中的system和 userdata目录下(会发觉有相似性)。

      我们会发觉编译生成的root文件夹内容与android运行时根目录内容相似,ramdisk根文件系统中包含一些对于启动android的很重要的文件,比如内核启动完后加载的第一个进程init、一些重要的配置文件等,总之它控制着整个android的启动。根据 init.rc,init.goldfish.rc来初始化并装载系统库、程序等直到开机完成。init.rc脚本包括了文件系统初始化、装载的许多过程。init.rc的工作主要是:
1)设置一些环境变量
2)创建system、sdcard、data、cache等目录
3)把一些文件系统mount到一些目录去,如,mount tmpfs tmpfs /sqlite_stmt_journals
4)设置一些文件的用户群组、权限
5)设置一些线程参数
6)设置TCP缓存大小

      生成的system.img,ramdisk.img,userdata.img映像文件是采用cpio打包、gzip压缩的,可以通过file命令验证:
file ramdisk.img,输出: ramdisk.img: gzip compressed data, from Unix, last modified: Wed Mar 18 17:16:10 2009 ,我们可以学习怎么样把 ramdisk.img解压出来。将ramdisk.img复制一份到任何其他目录下,将其名称改为ramdisk.img.gz,并使用命令 
gunzip ramdisk.img.gz,然后新建一个文件夹,叫ramdisk吧,进入,输入命令cpio -i -F ../ramdisk.img,这下,你就能看见并操作ramdisk里面的内容了。然后把Android源码编译后生成的system和 userdata里的文件复制到 ramdisk/system和ramdisk/userdata下。这样就得到一个文件系统了。

      还会发现,根文件系统下的sys就是一个linux。

=============================================================

      对于android系统文件夹,比如out/target/prod t/smdk6410/system目录,说明如下:

system\app      这个里面主要存放的是常规下载的应用程序,可以看到都是以APK格式结尾的文件。在这个文件夹下的程序为系统默认的组件,自己安装的软件将不会出现在这里,而是\data\文件夹中。

system\bin       这个目录下的文件都是系统的本地程序,从bin文件夹名称可以看出是binary二进制的程序,里面主要是Linux系统自带的组件。

system\etc       从文件夹名称来看保存的都是系统的配置文件,比如APN接入点设置等核心配置。

system\fonts   字体文件夹,除了标准字体和粗体、斜体外可以看到文件体积最大的可能是中文字库,或一些unicode字库。

system\framework  主要是一些核心的文件,从后缀名为jar可以看出是是系统平台框架。

system\lib        lib目录中存放的主要是系统底层库,如平台运行时库。

system\media  铃声音乐文件夹,除了常规的铃声外还有一些系统提示事件音

system\usr      用户文件夹,包含共享、键盘布局、时间区域文件等。


转自:http://blog.csdn.net/zhandoushi1982/archive/2009/11/02/4758896.aspx