`
kuwoleft
  • 浏览: 1086528 次
文章分类
社区版块
存档分类
最新评论

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 <local-path>/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 <local-path>/system.tar.gz ./
$ tar -xf <local-path>/data.tar.gz ./
$ tar -xf <local-path>/etc.tar.gz ./
$ tar -xf <local-path>/sbin.tar.gz ./
$ cp <local-path>/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 <kernel-src>
$ make CROSS_COMPILE=<path-to-compiler>/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=<path-to-compiler>/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 内核.doc

    主要过程: . 安装lunux 环境 . 安装编译工具 ... 安装Android SDK . 获得root file system . 修改Linux kernel 源码 . 配置Linux kernel . 修改root file system . 编译Linux kernel . 下载kernel Image

    S3C6400/6410移植Android内核.pdf

    S3C6400/6410移植Android内核.pdf

    三星s3c6410 android移植文档

    总的来说,移植Android到S3C6410是一项涉及广泛技术领域的任务,需要深厚的Linux内核知识、驱动开发经验以及对Android系统架构的深入理解。通过以上步骤,开发者能够将Android系统成功地运行在S3C6410平台上,从而...

    s3c6410移植过程.rar

    《S3C6410移植Android葵花宝典》 在嵌入式系统领域,移植操作系统是一项技术性极强的工作。本资料主要讲述了在基于Samsung公司的S3C6410处理器上移植Android系统的过程,这对于理解Android系统架构、熟悉硬件平台与...

    s3c6400-6410移植android+内核参照.pdf

    在嵌入式领域,移植 Android 系统到特定硬件平台是一项关键任务,对于S3C6400和S3C6410处理器来说也不例外。这两个基于ARM构架的处理器广泛应用于各种嵌入式设备,如智能手机、平板电脑等。以下是移植 Android 系统...

    S3C6410核心板

    - **操作系统移植**:常见的操作系统如Linux、Android等可以在S3C6410上运行,移植工作包括内核裁剪、驱动适配、文件系统构建等。 - **功耗管理**:嵌入式系统通常对功耗有严格要求,因此需要优化电源管理策略,延长...

    s3c6410和ok6410用户全手册

    S3C6410处理器是Samsung公司推出的一款32位RISC微处理器,采用ARM1176JZ-S内核,主频可达到667MHz。它拥有丰富的外设接口,如USB Host/Device、Ethernet、SD/MMC、UART、I2C、SPI等,支持多种操作系统,如Linux、...

    飞凌ARM11, s3c6410 开发板说明书,电路图

    S3C6410是三星推出的一款高性能、低功耗的32位RISC微处理器,基于ARMCortex-A8内核,支持多种操作系统,如Linux、Android等。 S3C6410处理器具有以下关键特性: 1. **ARMCortex-A8核心**:采用64位冯·诺依曼架构,...

    S3C6410 source

    - **RTOS或Linux内核移植**:针对S3C6410优化的实时操作系统或Linux内核源码。 - **用户空间库**:针对特定硬件的库函数,如HAL(硬件抽象层)。 - **工具链**:用于编译和调试的交叉编译器和其他工具。 4. **...

    s3c6410 MFC for wince

    S3C6410处理器集成了多核架构,包括ARM Cortex-A8内核,支持NEON媒体处理单元,具备高性能的多媒体处理能力。此外,它还包含了丰富的外设接口,如USB、Ethernet、LCD控制器等,为多媒体应用提供了良好的硬件基础。 ...

    root_mkfs-s3c6410源代码

    提供的`android开发板.doc`和`android开发.PDF`文档,可能包含了关于Android系统在S3C6410开发板上的应用和开发指导,包括驱动程序的编写、系统移植和调试等内容,对于理解整个嵌入式系统的构建过程有极大的帮助。...

    基于ARM9 S3C2440的Android操作系统移植.pdf

    此外,还需要为内核打补丁,移植关键驱动程序(如Binder、电源管理和网络驱动),构建文件系统,确保Android内核能够成功启动并挂载相应的文件系统。 Android的竞争优势在于其开放性和免费性。开发者可以自由创建和...

    Android底层开发技术实战详解--内核、移植和驱动.(电子工业.王振丽).part3

    12.6.2 s3c6410 Android overlay的测试代码346 第13章 openmax多媒体框架349 13.1 openmax基本层次结构349 13.2 分析openmax框架构成350 13.2.1 openmax总体层次结构350 13.2.2 openmax il层的结构351 ...

    android操作系统在S3C2440上的移植

    讨论android操作系统移植到ARM9开发板平台,讲述移植过程,移植android操作系统内核和文件系统,总结在移植过程中得问题

    S36410 android开发板资料

    将Android移植到S3C6410开发板上,可以利用其硬件优势,实现高效运行的移动应用和服务。 **S3C6410处理器详解:** S3C6410处理器采用45纳米工艺制造,具有以下主要特点: 1. **ARM Cortex-A8核心**:这是ARM公司的...

    mini6410-Android232

    2. **Mini6410开发板介绍**:Mini6410是一款基于Samsung S3C6410处理器的嵌入式开发板,它具有丰富的接口和强大的处理能力,是Android开发的理想平台。了解其硬件配置,如CPU、内存、存储、显示、网络等模块,有助于...

    Android底层开发技术实战详解--内核、移植和驱动.(电子工业.王振丽).part1

    12.6.2 s3c6410 Android overlay的测试代码346 第13章 openmax多媒体框架349 13.1 openmax基本层次结构349 13.2 分析openmax框架构成350 13.2.1 openmax总体层次结构350 13.2.2 openmax il层的结构351 ...

    Android 平台 GT818 驱动移植说明书1

    在Android系统中,GT818驱动的移植是一项关键任务,特别是在开发基于特定硬件平台(如华天正科技的Real6410,搭载S3C6410处理器)的设备时。此驱动程序不仅支持多指触控,还能在屏幕关闭时自动调整GT818的工作状态,...

Global site tag (gtag.js) - Google Analytics