安装lunux环境

安装编译工具

下载Linux kernel

安装Android SDK

获得root file system

修改Linux kernel源码

配置Linux kernel

修改root file system

编译Linux kernel

下载kernel Image

1.安装配置 linux环境

从网络下下载喜欢的linux发型版,本例选用现在比较流行的ubuntu linux,
从官方网站http://www.ubuntu.com/getubuntu/download 选择最新的版本下载,刻录成光盘或者直接使用虚拟机安装。
9.1.0的安装过程参见 Linux Ubuntu 9.10安装指导带详细截图

系统安装完成后,更新源:
sudo vim /etc/apt/sources.list
在开头处加入以下行

deb http://mirror.lupaworld.com/ubuntu karmic main restricted universe multiverse
deb http://mirror.lupaworld.com/ubuntu karmic-security main restricted universe multiverse
deb http://mirror.lupaworld.com/ubuntu karmic-updates main restricted universe multiverse
deb http://mirror.lupaworld.com/ubuntu karmic-backports main restricted universe multiverse
deb http://mirror.lupaworld.com/ubuntu karmic-proposed main restricted universe multiverse
deb-src http://mirror.lupaworld.com/ubuntu karmic main restricted universe multiverse
deb-src http://mirror.lupaworld.com/ubuntu karmic-security main restricted universe multiverse
deb-src http://mirror.lupaworld.com/ubuntu karmic-updates main restricted universe multiverse
deb-src http://mirror.lupaworld.com/ubuntu karmic-backports main restricted universe multiverse
deb-src http://mirror.lupaworld.com/ubuntu karmic-proposed main restricted universe multiverse

执行:
sudo apt-get update
sudo apt-get upgrade

完成后再安装一些必备的软件
$ sudo apt-get install ssh
$ sudo apt-get install unrar 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

2.安装编译工具
下载:
$wget http://www.codesourcery.com/publ ... c-linux-gnu.tar.bz2
安装:
$ tar -xjvf arm-2008q1-126-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2

3.下载android Linux kernel
从[url=http://code.google.com/p/android/downloads/list?can=1&q=&colspec=Filename+Summary+Uploaded+Size+DownloadCount Kernel ]android google code[/url] 获得
$wget http://android.googlecode.com/fi ... roid-m5-rc14.tar.gz
解压文件
$ tar -zxvf 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
【1】下载busybox工具从下面地址
使用http://benno.id.au/blog/2007/11/14/android-busybox(linux环境中下载)

【2】运行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=armmenuconfig

这时进入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 (如图1)

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

③ 板子上连接USB线到电脑,安装USB驱动程序

④ 运行dnw.exe程序,配置Configuration/Options,地址 0x57e00000,确定 (如图3)

⑤ 在超级终端中输入相应命令,开始下载
$ 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移植成功。

更多相关文章

  1. android studio 开发(二)问题
  2. flutter的AndroidX版本适配
  3. android mvp快速开发框架介绍(自动生成android代码工具介绍)
  4. android studio 框架搭建:加入注解框架Annotations
  5. Android多个React-Native模块的实现及源码解读
  6. android之动态新建txt文件与读取
  7. android学习记录2(日志、上下文、android下数据存储、xml基础)
  8. android mk file 描述
  9. git clone代码断点续传解决办法

随机推荐

  1. Android 百度地图 简单实现--- 美食搜索
  2. android的ListView图文混搭
  3. ANDROID常用权限记录
  4. Android Studio builde.gradle 配置说明
  5. Android 并发之CAS(原子操作)简单介绍(五)
  6. Android搜索自动提示功能 AutocompleteTe
  7. Android系统应用不支持读写存储
  8. Android之相对布局
  9. Android之十三刮刮卡中奖功能
  10. 开机不锁屏