注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

瘋人院

lunatic asylum

 
 
 

日志

 
 

Android 移植(轉載)  

2011-01-16 01:56:09|  分类: android |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
原文地址:
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,安装一些必要软件。
   打开终端输入命令框,进行下面的操作:

  1. $ 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.安装编译工具
    下载:

    http://www.codesourcery.com/publ ... i/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/listcan=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

  1. $ cd <目录>/ android-sdk_m5-rc15_linux-x86/tools$ ./emulator&
复制代码


    等待emulator 启动,看到出现Android 系统画面,进入菜ALL/DevTools/Development
Settings 下,将Wait for debugger,Show running processes,Show screen updates 这三项打勾,
    回到命令输入终端。


  1. $ ./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 文件目录


  1. $ 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 改为下面内容,

  1. zreladdr-$(CONFIG_PLAT_S3C24XX) := 0x30008000params_phys-$(CONFIG_PLAT_S3C24XX) := 0x30000100zreladdr-$(CONFIG_PLAT_S3C64XX) := 0x50008000params_phys-$(CONFIG_PLAT_S3C64XX) := 0x50000100
复制代码


    2> 从成熟的smdk6400 平台文件中拷贝下面文件到kernel 目录


  1. /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 步的编译工具

  1. $ cd <kernel-src>$ make CROSS_COMPILE=<path-to-compiler>/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,加入下面内


  1. TSLIB_CONSOLEDEVICE noneTSLIB_FBDEVICE /dev/graphics/fb0TSLIB_TSDEVICE /dev/input/ts0TSLIB_CALIBFILE /etc/pointercalTSLIB_CONFFILE /etc/ts.confTSLIB_PLUGINDIR /lib/ts
复制代码



    9. 编译Linux kernel

  1. $ make CROSS_COMPILE=<path-to-compiler>/bin/arm-none-linux-gnueabi- ARCH=armzImage
复制代码


    编译成功,在arch/arm/boot 下面是生成的zImage 文件。
    10.下载kernel image
    进入Windows 系统,下载过程在Windows 系统中完成。
    ① 打开:程序\\附件\\通讯\\超级终端,配置COM 口,115200,8N1

       捕获333.PNG 
    ② 连接smdk6400 开发板和电脑通过串口线,打开开发板电源,可以在超级终端中看到输出信息,bootloader 启动,按空格键进入命令输入状态

       捕获222.PNG 
    ③ 板子上连接USB 线到电脑,安装USB 驱动程序
    ④ 运行dnw.exe 程序,配置Configuration/Options,地址0x57e00000,确定

    ⑤ 在超级终端中输入相应命令,开始下载

  1. $ run bootup (下载bootloader)$ run kernelup (下载kernel Image)$ run rootup (下载root file system)
复制代码


     ⑥ 这里我们输入
  1. $ run kernelup
复制代码


    等待dnw 发送文件,dnw 显示[COM1,115200bps][USB:OK][ADDR:0x57e00000]说明连
接成功,选择USB Port->Transmit,选取编译成功的zImage 文件,开始下载。
    下载完成,重启开发板,等待,LCD 上出现一些Android 字符,一段时间白屏,出现
一个左右滚动的红色滚动条,进入主界面,Android 移植成功。
  评论这张
 
阅读(505)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017