原标题:S3C6410 移植Android 内核

主要过程:

. 安装lunux 环境

. 安装编译工具

. 下载Linux kernel

. 安装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 内核相关推荐

  1. Android系统移植与驱动开发概述

    1.Android系统架构分为四层:linux内核,Android是基于linux内核的. c/c++代码库,包括C/C++编写的代码库,包括dalivk虚拟机的运行时. Android SDK AP ...

  2. android 5.0 wifi移植,android  wifi移植

    手动加载驱动 ####16th,Jul 驱动加载 modprobe libertas modprobe libertas_sdio 加载第二行时出错拉 # modprobe libertas_sdio ...

  3. armplayer 风靡全球的Android s3c6410 arm11 手机开发板 超低价

    店主:嵌入式系统工程师 联系方式: QQ:1141256841/774295611   技术qq群: 40605090    大连嵌入式商城群 121393599   android6410(一)群 ...

  4. Android系统移植:驱动篇

    [导语]在Android系统移植中,有很重要的一个部分工作,就是为新平台上的硬件设备移植驱动程序.因为Android系统是基于Linux kernel内核构建,所以这里说的移植驱动程序,其实就是基于A ...

  5. android mini2440,移植Android系统到mini2440

    我将最新Android系统的Linux内核2.6.29下载下来,针对我的G1手机进行了打补丁(nand flash.多点触摸支持),并编译出了G1的Linux内核,使用Fastboot引导入G1,实践 ...

  6. 如何将cocos2d-x程序分别移植到ios,android,windowsphone三个手机平台上

    作者:方格子 链接:https://www.zhihu.com/question/21505500/answer/22152464 来源:知乎 著作权归作者所有.商业转载请联系作者获得授权,非商业转载 ...

  7. Unity3D移植到自己的Android程序

    用Unity3D开发需要把动画效果移植到现有的APP上面.Unity for Android 比较特殊,Unity for IOS 打包是将XCODE工程直接交给开发者,开发者可以在工程的基础上继续添 ...

  8. Android系统移植与调试之-------如何修改Android设备添加重启、飞行模式、静音模式等功能(一)...

    1.首先先来看一下修改前后的效果对比图 修改之后的图片 确认重启界面 具体的修改内容在下一篇中具体介绍. Android系统移植与调试之------->如何修改Android设备添加重启.飞行模 ...

  9. 在android上移植ios

    2019独角兽企业重金招聘Python工程师标准>>> Android与IOS是最受人们欢迎的两大移动平台,Android与IOS之争是一个永久的话题.接下来笔者就结合自己的知识和网 ...

最新文章

  1. JVM GC一次调优实战
  2. Android 4.4 中 WebView 使用注意事项
  3. Android studio如何更改应用程序的图标以及名称
  4. Team Foundation Server 2010 安装、部署与配置(一):安装计划 .
  5. 数据结构与算法之队列
  6. VC Ping IP的类
  7. LINUX SHELL使用变量控制循环
  8. 12306的数据库设计
  9. GJB438C相比438B在文档种类上的变化
  10. 【原】从一个bug浅谈YUI3组件的资源加载
  11. bs结构管理系统 服务器多少钱,购买BS或CS架构的进销存软件哪个更划算
  12. 差分相干解调 matlab,差分码PSK信号的相干解调系统仿真
  13. 目标跟踪——Tracking without bells and whistles
  14. 怎样完成MES系统实施?
  15. eclipse各版本说明与区别
  16. 上传图片查看上传的图片
  17. 产品功能树图_ISO9001:2015标准条款之8.2.2产品和服务要求的确定解析
  18. [写代码]wordList——百词斩CLI版
  19. css字体与盒子模型
  20. c# 解压zip 进度_C#解压zip文件

热门文章

  1. 教你PDF怎么转换成PPT免费?抓紧收藏!
  2. VNote v2.7.1 绿色版下载
  3. “奥特维速度”:光伏设备国产化按下快进键
  4. 2022年风力发电预测数据集(100多w条数据信息(间隔10min),9多w条数据信息(间隔15min),含数据集来源及详细说明)
  5. linux 安装sshfs_如何在Linux和Windows上安装SSHFS?
  6. python实现VaR和CVaR的计算
  7. 从文件协同到内容驱动业务:不断进化的企业内容管理需求与随遇而安的产品滞后
  8. 16进制转10进制方法
  9. 可编程中断控制器 8259A
  10. matlab3854芯片控制电路,高功率因数开关电源的研究与实现