admin管理员组

文章数量:1537537

2024年7月3日发(作者:)

基于ARM11的Android的操作系统的移植

[摘 要] android是一个专为移动设备设计的软件综合平台,

凭借良好的可移植性、应用程序的硬件平台无关性及其开放性,迅

速成为主流的手机平台之一。本文重点研究了基于linux平台的开

源操作系统android移植到arm11的过程。

[关键词] android 移植 arm11

1、引言

目前,随着移动通信技术的发展,移动终端正在向多媒体化和

网络化的方向发展,手机操作系统已经成为嵌入式系统发展的一个

重要方向。google与开放手机联盟联合开发的一个专为移动设备设

计的软件开放平台—android。其凭借很强的开放性、可移植性和

丰富的应用程序极大的满足了用户的需要以及技术的发展。本课题

以arm11系列的s3c6400开发板为系统移植目标平台,重点分析了

android的linux内核的移植过程。

2、android操作系统简介

android 是google于2007 年11月宣布的基于linux平台开源

手机操作系统名称,号称是首个为移动终端打造的真正开放和完整

的移动软件。google 重新设计java虚拟机和系统,使得android

的java应用更接近于底层系统效率更高;另外使用虚拟机技术使

得 android的应用在被监控的情况下运行,安全性更高。android

是一个对第三方软件完全开放的平台。其平台采用了整合的策略思

想,包括底层linux操作系统、中间层的中间件和上层的java应

用程序。操作系统的体系结构从上到下分为5个部分,分别是:应

用程序、应用程序框架、程序库、android运行环境、linux核心

层。linux内核层用来提供系统的底层服务,位于硬件和其它软件

层之间,采用 yaffs2文件系统。android运行库包含一组核心库

和dalvik虚拟机,android提供丰富的数据库支持且大部分为开源

代码,如采用嵌入式数据库sqlite。应用框架层为android 开发

人员提供了访问框架应用程序接口的全部权限,采用结构化设计简

化了组件之间的重用。在应用程序层,android本身附带了一些核

心的应用程序,大大简化了android应用程序的开发。

3、基于arm11的android的操作系统的移植

本课题采用arm11系列的s3c6400为移植目标,主要过程:安

装linux环境 安装编译工具 下载linux kernel 安装android

sdk 获得root file system 修改linux kernel源码 配置linux

kernel 修改root file system 编译linux kernel 下载kernel

image

1.安装 linux环境

安装ubuntu linux系统,从网站上下载操作系统安装光盘映像,

地址: /ubuntu/releases/8.04/,

下载, 刻录成光盘安装, 安装

可以在windows系统下进行,选取有15g 空间的硬盘安装,输入用

户密码开始安装。这一步结束退出光盘重启进入ubuntu系统,完

成余下系统安装。

linux安装完成,进入ubuntu系统,确保电脑连接internet,

安装一些必要软件。

打开终端输入命令框,进行下面的操作: $ sudo apt-get

install ssh

$ sudo apt-get install flex bison gperf libsdl-dev

libesd0-dev libwxgtk2.6-devbuild-essential zip curl

$ sudo apt-get install valgrind $ sudo apt-get install

sun-java6-jdk $ sudo apt-get install libncurses5-dev

所有软件系统会自动从网络下载安装,完成后可以开始android

的移植。

2.安装编译工具

下载: $ wget

/public/gnu_toolchain/arm-n

one-linux-gnueabi/arm-2008q1-126-arm-none-linux-gnueabi-i

2

安装:$ tar -xjvf

arm-2008q1-126-arm-none-linux-gnueabi-i686-pc-linux-gnu.t

2

3.下载 linux kernel

从下面地址获得:

/p/android/downloads/list?can=1&

q=&colspec=filename+summary+uploaded+size+downloadcount

kernel :

解压文件:$ tar -xf

4.安装 android sdk

从网上下载linux版本的 android sdk,如下:

/android/android-sdk_m5-rc15_linux

-

下载后解压,获得android-sdk_m5-rc15_linux-x86 文件

5.获得 root file system

⑴下载busybox工具从下面地址

/blog/2007/11/14/android-busybox

(linux环境中下载)

⑵运行emulator 获取root file system

$ cd / android-sdk_m5-rc15_linux-x86/tools

$ ./emulator& 等待emulator启动,看到出现android系统画

面,进入菜单all/dev tools/development settings下,将wait for

debugger,show running processes,show screen updates这三

项打勾,回到命令输入终端。通过busybox工具获得了emulator 的

文件并打包,再建立root文件目录,最后android root文件系统

的initial_ram_disk就做好了。

6.修改 linux kernel 源码

下载的kernel文件是不支持smdk6400开发板的,必须加入

smdk6400的配置文件到kernel中,同时修改kconfig和makefile

文件。

修改如下:

1>选择 /arch/arm/mach-s3c2410/ 改为下面内

容,

zreladdr-$(config_plat_s3c24xx) := 0x30008000

params_phys-$(config_plat_s3c24xx) := 0x30000100

zreladdr-$(config_plat_s3c64xx) := 0x50008000

params_phys-$(config_plat_s3c64xx) := 0x50000100

2>从成熟的smdk6400平台文件中拷贝下面文件到kernel目录

/arch/arm/mach-s3c6400 /drivers/serial/s3c6400.c

/drivers/input/touchscreen/s3c-ts.c

/drivers/usb/gadget

3>拷贝/drivers/android/ashmem.c 文件到相应目录下从另外

的android kernel (the android source code for 2.6.23 不包

含此文件)

4>修改相应的kconfig和makefile文件,使最终能编译到加载

的smdk6400文件。

7.配置linux kernel

修改kernel后进行配置,用到第2步的编译工具 $ cd

$ make cross_compile=/bin/arm-none-linux-gnueabi-

arch=armmenuconfig

这时进入kernel配置画面,注意配置 initramfs source file

选项指定到 initial_ram_disk文件。

8.修改 root file system

配置touchscreen使之能正常工作,initial_ram_disk文件下

修改/etc/,加入下面内容

tslib_consoledevice none tslib_fbdevice

/dev/graphics/fb0

tslib_tsdevice /dev/input/ts0 tslib_calibfile

/etc/pointercal

tslib_conffile /etc/ tslib_plugindir

/lib/ts

9. 编译 linux kernel

$ make cross_compile=/bin/arm-none-linux-gnueabi-

arch=armzimage 编译成功,在arch/arm/boot下面是生成的

zimage文件。

10.下载 kernel image

进入windows系统,下载过程在windows系统中完成。

①打开:程序附件通讯超级终端,配置com口,115200,8n1

②连接smdk6400开发板和电脑通过串口线,打开开发板电源,

可以在超级终端中看到输出信息,bootloader启动,按空格键进入

命令输入状态。

③板子上连接usb线到电脑,安装usb驱动程序

④运行程序,配置configuration/options,地址

0x57e00000,确定

⑤在超级终端中输入相应命令,开始下载

$ run bootup (下载bootloader) $ run kernelup (下载

kernel image)

$ run rootup (下载root file system)

⑥ 这里我们输入 $ run kernelup

等待dnw发送文件,dnw 显示

[com1,115200bps][usb:ok][addr:0x57e00000]说明连接成功,选

择usb port>transmit,选取编译成功的zimage文件,开始下载。

下载完成,重启开发板,等待,lcd上出现一些android字符,一

段时间白屏,出现一个左右滚动的红色滚动条,进入主界面,

android移植成功。

4、结束语

本文在简单介绍android操作系统的基础上,详细分析了

android移植到s3c6400开发板的步骤。作为一个开源的、可移植

性良好的操作系统,android的发展会越来越好。

参考文献

[1]叶炳发. android操作系统移植及关键技术研究. [硕士学

位论文]. 暨南大学,2010.

[2]郭秋平. 基于arm系统的linux平台移植研究. [硕士学位

论文]. 杭州:浙江大学,2006.

[3]郭宏志. android应用开发详解[m]. 电子工业出版社,

2010.6.

[4]姚星星,刘卫国. android的架构与应用开发研究[d]. 长沙:

中南大学,2008.

[5]s3c6400/6410移植android内核 android开发网,

.

本文标签: 系统安装平台下载文件