S3C6410 移植Android 内核

发布者:平和心态最新更新时间:2017-02-26 来源: eefocus关键字:S3C6410  移植  Android  内核 手机看文章 扫描二维码
随时随地手机看文章

主要过程:
. 安装lunux 环境
. 安装编译工具
. 下载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-dev build-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 这三项打勾,回到命令输入终端。
$ ./adb push /busybox /data
$ ./adb shell
# /data/busybox tar -czf system.tar.gz /system
# /data/busybox tar -czf data.tar.gz /data
# /data/busybox tar -czf etc.tar.gz /etc
# /data/busybox tar -czf sbin.tar.gz /sbin
# exit
$ ./adb pull /system.tar.gz ./
$ ./adb pull /data.tar.gz ./
$ ./adb pull /etc.tar.gz ./
$ ./adb pull /sbin.tar.gz ./
$ ./adb pull /init ./
通过busybox 工具获得了emulator 的文件并打包,下面建立root 文件目录
$ mkdir initial_ram_disk
$ cd initial_ram_disk
$ mkdir cache
$ mkdir d
$ mkdir dev
$ mkdir proc
$ mkdir root
$ mkdir sdcard
$ mkdir sys
$ mkdir tmp
$ mkdir var
$ tar -xf /system.tar.gz ./
$ tar -xf /data.tar.gz ./
$ tar -xf /etc.tar.gz ./
$ tar -xf /sbin.tar.gz ./
$ cp /init ./
包含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=arm
menuconfig
这时进入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=arm 
zImage
编译成功,在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 移植成功。


关键字:S3C6410  移植  Android  内核 引用地址:S3C6410 移植Android 内核

上一篇:STM32文档中关于NVIC寄存器说明的位置
下一篇:ARM中断寄存器详解

推荐阅读最新更新时间:2024-03-16 15:34

三星Android份额增长触顶 中国厂商逐渐崛起
    2010年以来的Android手机市场份额(腾讯科技配图) 腾讯科技讯(汤姆)北京时间7月2日消息,据国外媒体报道,美国投资公司Needham&Co分析师查理-沃尔夫(CharlieWolf)日前在一份研究报告中指出,三星已经不能继续为Android的份额增长贡献巨大力量,而廉价、不知名的中国智能手机厂商则正在逐渐崛起。 在这份由美国财经杂志《财富》苹果2.0专栏作家菲利普-埃尔默-德威特(Philip Elmer-DeWitt)进行总结的研究报告中,沃尔夫指出三星在Android市场的份额已止步于40%。而从去年开始,“其他”Android智能手机生产厂商的市场份额则从10%上涨至了如今的25%。 对此,沃尔夫还特地对所
[手机便携]
MicroEJ将VEE移植到NXP的i.MX25上
MicroEJ的虚拟执行环境(VEE)已经移植到NXP的i.MX25系列微控制器上,从而延长了产品寿命。 MicroEJ已经将其虚拟执行环境移植到nxpi.MX25系列,在工业、汽车和一般嵌入式应用中,使用VEE虚拟化技术可延长i.MX25的产品生命周期。 i.MX25于2009年推出,广泛应用于智能电表、图形键盘、图形安全面板、有线/无线支付设备、条形码扫描仪、工厂自动化和多功能打印机等市场。 MicroEJ的安全容器通过i.MX25片上安全引擎,允许工程师为电子设备构建高度安全的嵌入式软件,即使是增量和动态下载,也只能运行可信代码。 MicroEJ首席执行官Fred Rivard博士说:“通过采用与目前安卓智能
[嵌入式]
谷歌开放I/O 2014 app源代码 助力安卓开发者
          Google I/O 2014大会已过,而在会议中专为与会者服务的I/O 2014大会app却没有被荒废,现在Google已经开放I/O 2014 app源代码。   作为一个开发模板,也是一个基于Android平台app开发的经典案例,Google在官方博客中表示,希望I/O 2014 app源代码能够帮助开发者们更好地去开发app。   在此款app的源代码中,Google针对I/O 2014 app的某些功能、API以及设计方法进行了详细描述,其中包括:Google云端硬盘API、Google云通讯、Android L开发者预览版、Android Wear集成、V
[手机便携]
基于Android车载虚拟仪表人机界面设计
  利用Google的Android作为车载虚拟仪表人机界面的软件开发平台。在Android系统框架上实现虚拟仪表的人机界面,阐述了如何对 Android现有系统框架进行裁剪和调整,使系统更加符合车载虚拟仪表人机界面的要求,利用Android提供的组件设计虚拟仪表人机界面的各个功能逻 辑模块,使得模块设计更加合理.模块之间的耦合性更小。设计了基于REAL210车载仪表人机界面,结果表明,基于Android的虚拟仪表人机界面功能 更加丰富、操作更加友好、易于升级和维护,能较好地满足用户的需求。     车载虚拟仪表人机界面,是驾驶员获取汽车工况数据的主要界面,便于 驾驶员实时全面地掌握汽车工作状态,有效地与汽车进行人机交互,对保障汽
[电源管理]
基于<font color='red'>Android</font>车载虚拟仪表人机界面设计
诺基亚CEO称选择微软机会更大:Android差异小
诺基亚CEO艾洛普:如果诺基亚投身Android,和其他手机品牌区分度不大   新浪科技讯 6月2日上午消息,在《华尔街日报》举办的D9数字大会上,诺基亚全球CEO史蒂芬·艾洛普表示,如果诺基亚投身Android,和其他手机品牌区分度不大,与Windows Phone合作会更好。   2010年9月,诺基亚宣布艾洛普就任诺基亚全球CEO。艾洛普就任后最大的动作是诺基亚与微软达成战略合作,今后,诺基亚的高端手机全面转向Windows Phone系统。   对于选择Windows Phone而不是选择Android的原因,在D9数字大会上艾洛普表示,做出这样的选择主要是差异化的考虑。   “对我们而言,最大的问题
[手机便携]
Atmel开始提供Cortex-M7内核MCU,性能业界最高
Atmel供应基于ARM Cortex-M7的MCU,Atmel | SMART SAM S/E系列MCU目标面向物联网和工业市场 Atmel | SMART ARM Cortex-M7 MCU提供广泛的软件生态系统和第三方支持以及先进的内存和连接技术,性能比排名第二的竞争对手高50% 全球微控制器(MCU)及触控技术解决方案领域供应商Atmel公司 (纳斯达克股票交易代码:ATML)今日宣布,公司已开始批量生产市场上性能最高、基于ARM Cortex -M的MCU产品 Atmel | SMART SAM S70和E70系列。 与最接近的竞争对手相比,这些MCU的性能高出 50%,拥有更大的可配置SRAM、更大的
[单片机]
u-boot移植(二)---修改前工作:代码流程分析1
一、代码执行总体流程图 1.1 代码路径  U-boot.lds (archarmcpu) vectors.S (archarmlib) start.S (archarmcpuarm920t) lowlevel_init.S (boardsamsungjz2440) crt0.S (archarmlib) relocate.S (archarmlib) Board_init.c (commoninit) Board_f.c (common) Jz2440.h (includeconfigs) Generic-asm-offsets.h (includegenerated) 1.2 启动代码流
[单片机]
u-boot<font color='red'>移植</font>(二)---修改前工作:代码流程分析1
Wind River计划在设备市场推动多内核处理技术
Wind River Systems宣布发起一项策略计划,将推展标准化并推动设备市场采纳多内核处理器架构与解决方案。这项多内核处理(Multicore Processing,MCP)计划,是Wind River设备软件最佳化策略的关键元素之一,目标是提供设备制造商所需的软件解决方案,以开发出能发挥多内核硬件组件效能的新设备;该公司并与ARM、Broadcom及Freescale等大厂密切合作中。 Wind River表示,传统单内核处理器的发展已经接近极限,而多内核设计则成为新一代处理器主流;但此一趋势也使设备产业在尝试运用多内核技术时,面临许多新的挑战,包括更为复杂的软件架构、研发工具不足以及缺乏产业标准等等。为协助设备业者迅
[焦点新闻]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved