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

来源 :科学时代·上半月 | 被引量 : 0次 | 上传用户:y2228158
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
   [摘 要] 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系统,从网站上下载操作系统安装光盘映像,地址: http://mirror.lupaworld.com/ubuntu/releases/8.04/,下载ubuntu-8.04.2-desktop-i386.iso, 刻录成光盘安装, 安装可以在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
  http://www.codesourcery.com/public/gnu_toolchain/arm-none-linux-gnueabi/arm-2008q1-126-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2
  安装:$ tar -xjvf arm-2008q1-126-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2
  3.下载 Linux kernel
  从下面地址获得:
  http://code.google.com/p/android/downloads/list?can=1&q=&colspec=Filename+Summary+Uploaded+Size+DownloadCount Kernel : linux-2.6.23-android-m5-rc14.tar.gz
  解压文件:$ tar -xf linux-2.6.23-android-m5-rc14.tar.gz
  4.安装 Android SDK
  从网上下载linux版本的 Android SDK,如下:
  http://dl.google.com/android/android-sdk_m5-rc15_linux-x86.zip
  下载后解压,获得android-sdk_m5-rc15_linux-x86 文件
  5.获得 root file system
  ⑴下载busybox工具从下面地址
  http://benno.id.au/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/Makefile.boot 改为下面内容,
   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/init.rc,加入下面内容
  TSLIB_CONSOLEDEVICE none TSLIB_FBDEVICE /dev/graphics/fb0
  TSLIB_TSDEVICE /dev/input/ts0 TSLIB_CALIBFILE /etc/pointercal
  TSLIB_CONFFILE /etc/ts.conf 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驱动程序
  ④运行dnw.exe程序,配置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开发网, HTTP://ANDROIDOK.COM.
其他文献
[ Résumé ] Le verbe faire relève parfois des règles de syntaxe grammaticale, le faire causatif. Quand le verbe faire est suivi d’un infinitif, sa construction est spéciale parce que les règles qui gou
期刊
[摘 要] 保温材料用于建筑工程中导致火灾事故屡屡发生,与保温材料的易燃性是分不开的。这个危险因素贯穿于工程建设的寿命周期的始终。指出了目前建筑市场的保温材料的性能状况以及危险威胁所在,提出了在建筑工程施工活动过程中的保温材料防火管理对策。   [关键词] 保温材料 施工 对策 防火      1.保温材料的种类及性能   保温材料,按材质可分为无机绝热材料,有机绝热材料和复合
期刊
[摘 要] 随着社会对艺术类人才需求的增长,在我国各大综合性大学兴办艺术院系的背景下,做好综合性大学里90后艺术类大学生的管理工作成为综合性大学学生管理的新课题。本文通过对90后艺术类大学生的特点及形成原因进行分析,进而对90后艺术类大学生管理工作的经验做了研究和总结。   [关键词] 综合性大学 90后大学生 艺术类大学生 学生管理    随着社会对艺术类人才需求量的不断提
期刊
[摘 要] 本文基于ALOS高分辩率遥感影像对武夷山地区进行细致的遥感地质解译,重点解译与铀多金属成矿有关的断裂构造、岩相岩性、火山构造、蚀变信息等成矿条件信息,并结合传统地质资料,基于GIS平台进行遥感地学综合分析。  [关键字] 地质解译 断裂构造 火山构造  [Abstract] Remote sensing geological interpretation for wuyi
期刊
[摘 要] 地方课程是一种以学生的生活经验为基础,以现实社会为核心,注重学生亲身经历、并运用已有知识分析社会现象的实践性课程。在教学中,教师作为课堂组织者和实施者,要善于发现、挖掘课程资源,使我们的地方课程植根于现实生活,具有不息的生命力;同时,要沟通课堂内外,充分利用各种地方课程资源,开展综合性教学活动,让学生更多地接觸地方课程材料,增加地方课程实践的机会。  [关键词] 情景 教学过程
期刊
[摘 要] 运用文献资料、逻辑分析等方法,对语文教学切入点的对语文教学效果的意义和教学切入点的正确选择进行了深入分析,研究结果表明:找准好的教学切入点,奏响语文课堂教学的“第一个音符”可从以下途径入手:从文章的题眼切入;从文章的中心句切入;从文章的人物切入;从文章的背景切入;从文章的重难点切入;从文章的关键词句入手。  [关键词] 语文 教学切入点 优化    对于语文教学,“一篇课
期刊
[摘 要] 作文教学作为语文课程的重中之重,又是农村小学师生非常头疼的事。多年来,我不断探索作文教学理论与方法,在语文作文教学改革中走出了自己路子。小学生语言学习和写作表达在很大程度上得益于教师的对学生习作困难时的鼓励、宽容和正确引导;得益于教师正确、规范、暗示的语言反复刺激与情不自禁的模仿学习。当教师剥去了作文教学中的功利色彩,以平常心、爱心去面对学生的作文,你就会欣赏到学生习作中透出的儿童灵
期刊
[摘 要] 本文通过具体事例阐述了在生物教学过程中培养学生的阅读习惯所采取的一些方法。  [关键词] 阅读 生物 教科书    阅读是人类获取知识,提高能力的基本途径,学生只有养成了阅读的习惯,掌握了阅读的方法,自主学习的能力才能得到真正的提高。生物教科书是教师备课、学生获得知识与技能的基本材料,是教师和学生进行“对话”的“媒介”,是课程标准的具体化和再创造。所以指导学生阅读生物教科
期刊
[摘 要] 学生作业的目的是巩固理解消化和掌握所学知识,并使知识转化成基本能力和基本技巧。正确的设计好学生的作业对于培养学生的学习兴趣,学习习惯发展学生的智力和创新思维有重大的意义。  [关键词] 分层 合作学习 作业设计 优化    说来好笑,老师们看着学生做了几十年的课间操,让老师做操竟然不会,此所谓眼过千边不如手过一遍。联想到我们的数学教学,很多时候老师布置作业仅仅是给学
期刊
[摘 要] 目前中职学校计算机专业的课堂效果不甚理想:有打瞌睡的、有走神的、有窃窃私语的、有玩手机的、有玩游戏的等现象;笔者从课前备课精益求精 、课堂悬念精心设计、课堂授课富有激情 、教学方式灵活多样 、课堂考核形式多样等方面来阐述如何有效地提升中职学校计算机专业的授课效果。  [关键词] 计算机专业 授课效果 课堂考核    目前许多中职学校计算机专业的课堂效果不甚理想:学生在课堂
期刊