Opendroid原創,轉載請註明
參與討論的朋友請加入qq群81410571
關鍵字:android,linux,sdcard,S3C2440,armv4,filesystem
android的在s3c2440的移植,編譯過程清參照熊貓哥哥的大作《s3c2410/2440(armv4t) 移植教程》。本文所講述的是將android的根目錄置於sd卡上。
1. linux kernel部分
1)sd card支援
make menuconfig
選擇 Device Drivers ---> 進入
選擇 <*> MMC/SD card support ---> 進入
選擇如下:
│ --- MMC/SD card support │ │
│ │ [*] MMC debugging │ │
│ │ [*] Allow unsafe resume (DANGEROUS) │ │
│ │ *** MMC/SD Card Drivers *** │ │
│ │ <*> MMC block device driver │ │
│ │ [*] Use bounce buffer for simple hosts │ │
│ │ [*] Check card status on resume
│ │ < > SDIO UART/GPS class support │ │
│ │ < > MMC host test driver │ │
│ │ *** MMC/SD Host Controller Drivers *** │ │
│ │ < > Secure Digital Host Controller Interface support │ │
│ │ < > MMC/SD over SPI │ │
│ │ <*> Samsung S3C SD/MMC Card Interface support
2)ext2檔案系統支援(android啟動不支援vfat)
make menuconfig
選擇 File systems ---> 進入
│ │ <*> Second extended fs support │ │
│ │ [*] Ext2 extended attributes │ │
│ │ [*] Ext2 POSIX Access Control Lists │ │
│ │ [*] Ext2 Security Labels │ │
│ │ [*] Ext2 execute in place support │ │
│ │ <*> Ext3 journalling file system support │ │
│ │ [*] Ext3 extended attributes │ │
│ │ [*] Ext3 POSIX Access Control Lists │ │
│ │ [*] Ext3 Security Labels
2. sd card部分
1)格式化成ext2/ext3檔案系統
輸入命令sudo mkfs.ext2 /dev/sdxxxx
註:/dev/sdxxxx是sd卡在pc上的節點,具體的查看方式為在讀卡機查到pc上之前與之後分別輸入cat
/proc/partitions命令(這個命令是查看系統中有那些分區的),看看多了哪一個就是哪一個。另外,在執行mkfs.ext2命令之前請將
sd卡umount掉(umount /dev/sdxxxx)
2)準備檔案
data與system以及init.rc的修改跟熊貓哥哥的文檔裡面準備nfs時做得修改完全一樣。弄好後將其cp到sd卡上(先mount再cp)
3. 開發板部分
1) 下載kernel
2) 設定bootargs: setenv bootargs console=ttySAC0,115200 mem=64M
root=/dev/mmcblk0 init=/init
ip=192.168.0.110:192.168.0.104:192.168.0.1:255.255.255.0::eth0:off
註:如果你的sd卡在班子上的節點不是/dev/mmcblk0的話,請自行修改,這個可以在linux啟動log裡面看到。後面的ip設定是我自己加的,不喜勿入,呵呵
3) 設定bootdelay為3,據說是sd卡初始化比較慢,似乎這個還沒出現過問題。不過還是要提示下為好