四、Android根文件系统制作五

Download Report

Transcript 四、Android根文件系统制作五

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