s3c6410移植android,S3C6410 移植Android 内核
原标题: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 内核相关推荐
- Android系统移植与驱动开发概述
1.Android系统架构分为四层:linux内核,Android是基于linux内核的. c/c++代码库,包括C/C++编写的代码库,包括dalivk虚拟机的运行时. Android SDK AP ...
- android 5.0 wifi移植,android wifi移植
手动加载驱动 ####16th,Jul 驱动加载 modprobe libertas modprobe libertas_sdio 加载第二行时出错拉 # modprobe libertas_sdio ...
- armplayer 风靡全球的Android s3c6410 arm11 手机开发板 超低价
店主:嵌入式系统工程师 联系方式: QQ:1141256841/774295611 技术qq群: 40605090 大连嵌入式商城群 121393599 android6410(一)群 ...
- Android系统移植:驱动篇
[导语]在Android系统移植中,有很重要的一个部分工作,就是为新平台上的硬件设备移植驱动程序.因为Android系统是基于Linux kernel内核构建,所以这里说的移植驱动程序,其实就是基于A ...
- android mini2440,移植Android系统到mini2440
我将最新Android系统的Linux内核2.6.29下载下来,针对我的G1手机进行了打补丁(nand flash.多点触摸支持),并编译出了G1的Linux内核,使用Fastboot引导入G1,实践 ...
- 如何将cocos2d-x程序分别移植到ios,android,windowsphone三个手机平台上
作者:方格子 链接:https://www.zhihu.com/question/21505500/answer/22152464 来源:知乎 著作权归作者所有.商业转载请联系作者获得授权,非商业转载 ...
- Unity3D移植到自己的Android程序
用Unity3D开发需要把动画效果移植到现有的APP上面.Unity for Android 比较特殊,Unity for IOS 打包是将XCODE工程直接交给开发者,开发者可以在工程的基础上继续添 ...
- Android系统移植与调试之-------如何修改Android设备添加重启、飞行模式、静音模式等功能(一)...
1.首先先来看一下修改前后的效果对比图 修改之后的图片 确认重启界面 具体的修改内容在下一篇中具体介绍. Android系统移植与调试之------->如何修改Android设备添加重启.飞行模 ...
- 在android上移植ios
2019独角兽企业重金招聘Python工程师标准>>> Android与IOS是最受人们欢迎的两大移动平台,Android与IOS之争是一个永久的话题.接下来笔者就结合自己的知识和网 ...
最新文章
- JVM GC一次调优实战
- Android 4.4 中 WebView 使用注意事项
- Android studio如何更改应用程序的图标以及名称
- Team Foundation Server 2010 安装、部署与配置(一):安装计划 .
- 数据结构与算法之队列
- VC Ping IP的类
- LINUX SHELL使用变量控制循环
- 12306的数据库设计
- GJB438C相比438B在文档种类上的变化
- 【原】从一个bug浅谈YUI3组件的资源加载
- bs结构管理系统 服务器多少钱,购买BS或CS架构的进销存软件哪个更划算
- 差分相干解调 matlab,差分码PSK信号的相干解调系统仿真
- 目标跟踪——Tracking without bells and whistles
- 怎样完成MES系统实施?
- eclipse各版本说明与区别
- 上传图片查看上传的图片
- 产品功能树图_ISO9001:2015标准条款之8.2.2产品和服务要求的确定解析
- [写代码]wordList——百词斩CLI版
- css字体与盒子模型
- c# 解压zip 进度_C#解压zip文件
热门文章
- 教你PDF怎么转换成PPT免费?抓紧收藏!
- VNote v2.7.1 绿色版下载
- “奥特维速度”:光伏设备国产化按下快进键
- 2022年风力发电预测数据集(100多w条数据信息(间隔10min),9多w条数据信息(间隔15min),含数据集来源及详细说明)
- linux 安装sshfs_如何在Linux和Windows上安装SSHFS?
- python实现VaR和CVaR的计算
- 从文件协同到内容驱动业务:不断进化的企业内容管理需求与随遇而安的产品滞后
- 16进制转10进制方法
- 可编程中断控制器 8259A
- matlab3854芯片控制电路,高功率因数开关电源的研究与实现