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卡初始化比较慢,似乎这个还没出现过问题。不过还是要提示下为好