Android开源项目向博创2410实验箱上的移植中国科学技术大学软件学院工程实践:Team96Spring2010小组成员(Team96)姓名性别学号角色秦国利男SA09225328组长魏巍男SA09225329组员李伟男SA09225399组员杨邵文男SA09225125组员2009.12移植环境与工具宿主机开发环境:RedHat9目标开发板:UP-NETARM2410-S交叉编译器:arm-linux-none-gnueabi-Bootloader:vivi内核:linux-android-2.6.25移植基本步骤一、移植vivi二、内核源码的修改和配置三、驱动移植(网卡、LCD驱动、触摸屏等)四、Android根文件系统制作五、运行Android应用程序,测试效果移植第一步:修改vivi实验箱自带内核分区默认只有1M,实验中配置后的内核达到1.7M。所以对VIVI的flash分区进行修改,扩大了内核分区的容量:移植第二步:修改kernel一、修改内核源码根目录下的Makefile文件,(ARCH=arm,CROSS_COMPILE=…/arm-linux-none-gnueabi-)二、在arch/arm/plat-s3c24xx/common-smdk.c中添加NANDFlash分区信息和NANDFlash硬件信息,分区信息与之前vivi分区表/bon分区表一致。并修改drivers/mtd/nand/s3c2410.c,搜索NAND_ECC_SOFT替换为NAND_ECC_NONE,以禁止内核对NANDFlash的ECC校验移植第二步:修改kernel三、配置编译内核(makemenuconfig),添加Android特性。四、编译内核(make),将编译后得到的arch/arm/boot/zImage利用vivi烧写到kernel分区,观察是否vivi能引导。移植第三步:a加入网卡驱动博创2410-S所配网卡AX88796驱动的移植,修改网卡可以支持NFS挂载功能(1)修改arch/arm/目录下的Kconfig文件,增加ISA总线支持(2)修改include/asm-arm/arch-s3c2410文件夹下的map.h文件。加入AX88796的地址映射。(3)在smdk2410_iodesc中加入AX88796的地址信息。(4)修改网卡驱动的主要文件drivers/net/ne.c。(主要包括添加头文件和定义、增加配置总线参数、基地址和中断的语句、增加网卡MAC地址)(这一步可以在移植内核时加入)移植第三步:b加入LCD驱动博创s3c2410的LCD使用的是SHARPLQ080V3DG01,我们使用的Android内核要移植LCD的驱动,需要在内核源码smdk2410.c里添加初始化s3c2410的LCD控制器时所需要的参数。1.修改arch/arm/mach-s3c2410/mach-smdk2410.c文件1)添加头文件#includeasm/arch/fb.h2)添加初始化s3c2410的LCD控制器时所需的参数移植第三步:b加入LCD驱动主要是两个结构体staticstructs3c2410fb_displayqt2410_lcd_cfg__initdata={}和staticstructs3c2410fb_mach_infoqt2410_lcd_info__initdata={}3)添加LCD控制器的寄存器参数设置函数,在smdk2410_init中设置LCD控制器的寄存器参数,增加代码s3c24xx_fb_set_platdata(&qt2410_lcd_info);2.配置内核(makemenuconfig),修改一些与驱动有关的选项,重新编译,生成zImage映像。移植第三步:c加入LCD触摸屏驱动1、首先打一个补丁:s3c2410_touchscreen.patch2、修改arch/arm/mach-s3c2410/mach-smdk2410.ca)添加头文件b)添加结构体c)修改driver/input/touchscreen/Makefiled)添加支持触摸屏平台代码的信息3、在arch/arm/mach-s3c2410/include/mach/下新建ts.h文件4、在touchscreen/下面创建驱动文件s3c2410_ts.c5、makemenuconfig配置支持触摸平驱动移植第三步:c加入LCD触摸屏驱动手指在触摸屏上移动,定位效果图:移植第四步:根文件系统1、获取Android的根文件系统(30M左右),加入制作的init.rc启动脚本2、将Android根文件系统放到NFS共享文件夹下。3、输入minicom命令,进入VIVI1)设置NFS方式配置参数(路径、网络地址等)2)重启VIVI后输入:viviboot,成功引导Android的根文件系统移植测试烧写内核映像后,用NFS服务挂载Android的根文件系统,启动后首先发现LCD屏幕上显示了Linux的企鹅logo,不久在屏幕上会显示Android提示符:移植测试Android启动后的界面显示:目前缺陷Android1.5不支持触摸屏解锁,没有移植键盘驱动,不能进入主菜单界面,应用程序无法测试。下一步解锁触摸屏,演示、测试应用程序。