版上各位前輩你(妳)們好:
小第大學專題是在做Android Porting到華亨PXA270開發版上,最近KERNEL編譯得差不多了,放到版子上也都正常解壓縮,以下附上我們的開機啟動過程
Load Kernle From CF OK!
loading ramdisk image from flash...
starting kernel ...
Uncompressing Linux.............................................................
<5>Linux version 2.6.27 (jim@jim-desktop) (gcc version 4.1.0) #12 PREEMPT Tue A9
CPU: XScale-PXA270 [69054117] revision 7 (ARMv5TE), cr=0000397f
Machine: EELIOD (XSBASE270EDR) Development Platform
Memory policy: ECC disabled, Data cache writeback
<7>On node 0 totalpages: 16384
<7>free_area_init_node: node 0, pgdat c03a10f8, node_mem_map c0419000
<7> DMA zone: 16256 pages, LIFO batch:3
<6>Run Mode clock: 208.00MHz (*16)
<6>Turbo Mode clock: 520.00MHz (*2.5, active)
<6>Memory clock: 104.00MHz (/2)
<6>System bus clock: 104.00MHz
CPU0: D VIVT undefined 5 cache
CPU0: I cache: 32768 bytes, associativity 32, 32 byte lines, 32 sets
CPU0: D cache: 32768 bytes, associativity 32, 32 byte lines, 32 sets
Built 1 zonelists in Zone order, mobility grouping on. Total pages: 16256
<5>Kernel command line: console=ttyS0,115200 mem=64M root=/dev/ram0 rw
PID hash table entries: 256 (order: 8, 1024 bytes)
Console: colour dummy device 80x30
<3>ram_console: buffer 00000000, invalid size 0, datasize -12
<6>Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)
<6>Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)
<6>Memory: 64MB = 64MB total
<5>Memory: 56488KB available (3420K code, 599K data, 140K init)
<6>SLUB: Genslabs=12, HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
<6>Calibrating delay loop... 519.37 BogoMIPS (lpj=2596864)
Mount-cache hash table entries: 512
<6>CPU: Testing write buffer coherency: ok
<6>net_namespace: 440 bytes
<6>NET: Registered protocol family 16
<5>SCSI subsystem initialized
<6>usbcore: registered new interface driver usbfs
<6>usbcore: registered new interface driver hub
<6>usbcore: registered new device driver usb
<6>NET: Registered protocol family 2
<6>IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
<6>TCP established hash table entries: 2048 (order: 2, 16384 bytes)
<6>TCP bind hash table entries: 2048 (order: 1, 8192 bytes)
<6>TCP: Hash tables configured (established 2048 bind 2048)
<6>TCP reno registered
<6>NET: Registered protocol family 1
<6>checking if image is initramfs...it isn't (bad gzip magic numbers); looks lid
<6>Freeing initrd memory: 4224K
<6>PXA CPU 27x max frequency not defined (pxa27x_maxfreq), assuming pxa271 withq
<6>PXA CPU frequency change support initialized
我們懷疑是上面紅色的那幾行是問題所在!
小弟跟我的組員都在懷疑是不是filesystem的問題,不知道版上的各位先進是否有遇過這樣的問題,還是說各位知道問題出在哪裡?
再問各位前輩一個問題,Google有提供Android的filesystem原始程式碼嗎?我看到很多文章都說只要到下載
下來的Android資料夾最上層make,就可以得到三個印像檔:ramdisk.img ,system.img ,
userdata.img 後面兩個是不是就是filesystem(有錯請各位糾正!)
我們也是照網路上說的那樣子make,也試過armv4裡面的filesystem,一樣還是無法正常顯示Android的開機畫面(也就是無法正常進入到Android系統),不知道是否要自己手動選擇filesystem(像make menuconfig一樣的動作),還是說像網路上的文章說的一樣,直接在最上層資料夾make就可以產生出適合的filesystem?
問題有點多,希望各位大哥大姐能幫小弟解決這些問題! 謝謝.
4 則回應
同學你好 :我是 華亨科技 FAE 江敏傑 ,那 在這篇文章裡,同學使用本公司 PXA270 平台PORTING ANDROID ,那不知 ,已成功的PORTING 到平台嗎。 若已成功PORTING 至 平台,公司希望能跟同學你買source code ,希望 同學你 看到此回應,能夠和我聯絡,謝謝 ,那方便給我知道同學的姓名 e-mail 學校 或其它的連絡方式和你連絡嗎(若沒成功,也希望Mail 給我 ie915080@mail.hhnet.com.tw),謝謝。
華亨科技 FAE 江敏傑 筆
你要先弄清楚 filesystem 和 initramfs(ramdisk, tmpfs) 的差異。一般 initramfs 是由 boot loader 載入,而 filesystem 則由 kernel 自行掛載。
若要用 initramfs,則 kernel 就要 built-in initrd & tmpfs. 若要直接掛載,要編入 yaffs2.
所有的 filesystem source code 都在 kernel/fs/ 中。
大大謝謝您,我再試試看,有問題希望能夠繼續在跟您請教
1. 你的 kernel command line 是
Kernel command line: console=ttyS0,115200 mem=64M root=/dev/ram0 rw
如果你不把 root filesystem 放在 CF 卡的話,你要把 root filesystem 和 kernel 編在一起。
也就是用 initramfs 的方式。
2.
如果你要把 root filesystem 放在 CF 卡上,那就是把 make SDK 完後的 out 目錄裡的那些 root , system, data 複製一份到 CF卡上,
記得 kernel command line 要跟著改。
建議你參考這個網站。
http://labs.embinux.org/index.php/Android_Porting_Guide_to_Beagle_Board
希望對你有幫助。