close

在把kernel燒進STK的NAND flash之前,必須再對kernel做修改並重新編譯。

在$(andkernel)/common下開啟kernel設定工具:

$ make ARCH=arm menuconfig

 

1. 因為file system放在SD卡上的ext3分割區,kernel必須支援Ext3 file system

File systems  --->

  <*> Ext3 journalling file system support

    [*]  Ext3 extended attributes

2. 某些Android執行檔會被編譯成使用ARM Thumb

System Type  --->

  [*] Support Thumb user binaries

3. 因應AT91CAP9-STK記憶體配置

General setup  --->

  [*] Enable the Anonymous Shared Memory Subsystem

設定完成離開時記得儲存設定到.config。這樣一來,kernel已經具備

開啟Android的條件。

 

接著我們把自製的kernel燒到STK上:

在Windows下,修改at91cap9stk-x11-nd.tcl

(與上次燒Angstrom時使用的at91cap9-stk-x11-nd.bat在同一目錄下)

    kernelFileName    "at91cap9stk-linux.bin"

->kernelFileName    "uImage"

再將uImage複製到該目錄下,以相同方法燒錄。

(註:因為我們不需要燒錄file system,可將以下兩行從.tcl檔刪除

puts "-I- === Load the linux file system ==="
send_file {NandFlash} "$nd_mapping(diskFileName)" $nd_mapping(diskOff) 0

)

 

燒錄成功之後重新開機,在U-boot出現以下訊息時按下ENTER

Hit any key to stop autoboot:  0

就可進入U-Boot> 環境。

因為U-Boot並不使用kernel設定中的Boot Option,而是看U-Boot自身的

bootcmd, bootargs等參數,在這裡我們設定bootargs。

U-Boot> setenv bootargs console=ttyS0,115200 root=/dev/mmcblk0p1 rw init=/init rootwait

(/dev/mmcblk0p1為第一個SD card的第一個分割區

rootwait是為了確保SD card驅動在mount root之前已經準備好)

U-Boot> saveenv

U-Boot> run bootcmd

 

run bootcmd之後,緊接著開始載入kernel、driver,

從SD card取得root file system,執行/init等步驟。

最後就可以看到螢幕上出現"ANDROID"字樣,接著進入桌面,如下圖:

---以下為Android 1.5 (Cupcake)版本特有現象,如果你下載的是Android 1.6 (Donut),請直接跳過---

ANDROID logo 

...然後就Power off,掛掉了。

ANDROID power down

這個問題是Android framework的設計不當。在Android假設的平台上都有個電池,

經由charger and power management IC可以取得電量資訊。

但是在porting的環境上一般不會放上電池,於是Android在讀取不到電量資訊的情況下,

假設電量為0。系統判定電量過低,直接關機。

修正方法是直接修改Android中有關電源管理的source code,或是重新下載1.6版。

---以上問題在Android 1.6 (Donut)已修正,電量過低不會強迫關機---

 

以下是Android 1.6的低電量顯示訊息

ANDROID 1.6 NO POWER OFF

到這裡,我們整理出三個明顯的問題:

1. 雖然是觸控螢幕,不過那個OK怎麼按都沒反應 (Touchscreen problem)

2. 顏色異常,字體明顯破碎 (LCD driver problem)

3. 要使用完整Android平台功能,至少要有"Home"、"Menu"、"Back"等硬體鍵盤,STK上沒有

 

解決這些問題就要從Android source code下手了。最好再準備一個USB界面的Keyboard。

(待續...)

arrow
arrow
    全站熱搜

    sheng7337 發表在 痞客邦 留言(5) 人氣()