您当前位置:设计在线网 >> Android >> 浏览文章

Android中内核源码和固件下载介绍

分享到:
本文章讲述了Android中内核源码和固件下载介绍.

M8的Android编

译好固件下载,刷机方法和Wince的一致,下载后直接解压放到USB Storage的根目录http://code.google.com/p/m8-android-kernel/source/ browse/bin/m8_android.rar

M8 for Android源码托管在Google Code上面,使用SVN工具直接提取 浏览地址http://code.google.com/p/m8-android-kernel/source/ browse/#svn/trunk 需 要注意的是Android开发网发现有关Modem这块代码没有,涉及到了英飞凌的机密,不过可以看到编译好的库,直接挂上即可。

SVN Checkout地址 http://m8-android-kernel.googlecode.com/svn/trunk

最后是Android123找到的有关M8的移植文章网上整理的word文档,有兴趣的网友可以DIY下,不过Android开发网表示Android和 M8原始的Wince比较差距较大,个人还是建议使用完善的WinCE系统,毕竟可以直播RMVB、WinCE对于M8更适合些。

1. make menuconfig

A. 串口改成串口3输出打印信息。

(一) (root=/dev/nfs init=/init nfsroot=192.168.1.10:/nfs ip=192.168.1.100 console=ttySAC2,115200

console=ttySAC2,串口2输出,必须与下面同时修改

(二) System Type--->S3C UART to use for low-level messages--->2

值设成2,即串口 2输出,必须与上面同时修改。

B. Onenand驱动支持

(一) Device Drivers--->Memory Technology Device (MTD) support--->OneNAND Device Support--->

[*]Verify OneNAND page writes

OneNAND Flash device via platform device driver

(二) onenand的支持

从贺 超提供的linux2.6.27包drivers\mtd\onenand目录复制 s3c6410.h,s3c_onenand.c,s3c_onenand.h提供对三星onenand的支持

(三) Makefile修改

drivers\mtd \onenand\Makefile文件最后添加一行:onenand-objs = s3c_onenand.o,编译s3c_onenand.o,连接进内核。

(四) 在arch\arm\mach-s3c6410\mach- smdk6410.c中static struct platform_device pmem_gpu1_device = {

.name = "android_pmem",

.id = 1,

.dev = { .platform_data = &pmem_gpu1_pdata },

};

#endif

的后面添加代码:

#define S3C64XX_PA_ONENAND(0x70100000)

#define S3C64XX_SZ_ONENANDSZ_1M

static struct resource s3c_onenand_resource[] = {

[0] = {

.start = S3C64XX_PA_ONENAND,

.end= S3C64XX_PA_ONENAND + S3C64XX_SZ_ONENAND - 1,

.flags = IORESOURCE_MEM,

}

};

或者替 换新的代码:

arch\arm\plat-s3c64xx\devs.c,

linux/arch/arm/mach-s3c6400/include/mach/map.h

struct platform_device s3c_device_onenand = {

.name= "onenand",

.id= -1,

.num_resources= ARRAY_SIZE(s3c_onenand_resource),

.resource= s3c_onenand_resource,

.dev.platform_data = &s3c_nand_mtd_part_info

};

在数组static struct platform_device *smdk6410_devices[] __initdata = {的最后添加:

&s3c_device_onenand

(五) 分区表修改:使userdata从0x0a000000开始

文件 linux/arch/arm/plat-s3c/include/plat/partition.h中:

{

.name= "cache",

.offset= MTDPART_OFS_APPEND,

.size= (67*SZ_1M)+0x1000000,//orig:(67*SZ_1M)

},

(六) 修改drivers\mtd\onenand\generic.c

复 制drivers\mtd\onenand\generic.c替换掉。

C. Device Drivers--->Input device support--->[]Keyboards--->

(一) 暂时去掉键盘支持,因为键盘占用了GPK14口,GPK14口在M8是USB供电开关的 GPIO,拉高才能用USB

D. Device Drivers---> [*] USB support--->USB Gadget Support--->

(一)USB Gadget Drivers (Ethernet Gadget (with CDC Ethernet supp

(二) Ethernet Gadget (with CDC Ethernet support)

(三) [ ]RNDIS support

(四) d.1) 选择Ethernet Gadget (with CDC Ethernet supp,用于把M8模拟成网卡,实现nfs挂载系统。同时去掉RNDIS support支持,因为ubuntu下没有驱动支持。

(五) drivers\usb\gadget\s3c-udc-otg-hs.c修改 为USB使用外部晶振

//writel(0x20, S3C_USBOTG_PHYCLK);

writel(0x00, S3C_USBOTG_PHYCLK);

推荐阅读:
android.os.Environment 提供访问环境变量
Android文件读写关于IO的API使用
对于Android线程模型理解分析
推荐文章  
赞助商链接  
热门排行  
主题推广  
中国设计在线网 All Rights Reserved. 互联网违法和不良信息举报
信息产业部备案号:湘ICP备09001063号