6410開發板上燒錄Android映像步驟,及ramdisk和system說明

 在已得到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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章