Chinaunix首页 | 论坛 | 博客
  • 博客访问: 102581
  • 博文数量: 25
  • 博客积分: 997
  • 博客等级: 准尉
  • 技术积分: 210
  • 用 户 组: 普通用户
  • 注册时间: 2010-12-16 18:40
文章分类

全部博文(25)

文章存档

2012年(1)

2011年(16)

2010年(8)

我的朋友

分类: LINUX

2011-03-09 15:22:51

2009-11-10 15:32
Android

Android作为Google公司推出的一款手机开发平台,其本身是基于linux内核的。Google提供的内核源代码中除了linux部分外,有很大一部分是与虚拟处理器Qemu和模拟硬件平台Goldfish相关的。所以如果想将Android移植到实际的硬件平台上需要将这部分代码剥离出来。

Vmware中的安装和设置Ubuntu Server 8.10

       本文选择在Win XP下的Vmware中安装Ubuntu Server 8.10作为编译开发服务器。

安装: 略。

设置

1. 为网卡配置静态IP地址

       虚拟机和XP连接用的虚拟网卡设置IPgatewayDNS都为192.168.0.1

       Vmware虚拟机中执行:

sudo vi /etc/network/interfaces 加入:

auto eth0

iface eth0 inet static

address 192.168.0.2

gateway 192.168.0.1

netmask 255.255.255.0

 

2. 配置DNS

sudo vi /etc/resolv.conf

nameserver 192.168.0.1

 

3. 安装开发工具

sudo apt-get install build-essential vim libncurses-dev lrzsz

 

4. 清理系统

sudo apt-get clean

 

建立Android内核开发环境

1、工作环境及所需软件包

1)系统环境:Ubuntu 8.10 server

2)交叉编译器:GNU Toolchain for ARM Processors

()

本文用:arm-2008q3-66-arm-none-eabi-i686-pc-linux-gnu.tar.bz2

3Android内核源代码:linux-2.6.23-android-m5-rc14.tar.gz

)本文用:linux-2.6.25-android-1.0_r1.tar.gz

4Android SDK

SDK中带有Android Emulator仿真器等工具,本文用:android-sdk-linux_x86-1.0_r2.zip

2、搭建交叉编译环境

       安装好系统后,把下载的Android kernel,交叉编译器和Android SDK都放在/home/xxx目录,xxx是安装系统时的普通用户的用户名。

1) 安装交叉编译器

$cd ~

$mkdir tools

$cp arm-2008q3-66-arm-none-eabi-i686-pc-linux-gnu.tar.bz2  tools

$cd tools

$tar jxvf arm-2008q3-66-arm-none-eabi-i686-pc-linux-gnu.tar.bz2

 

2) 解压Android SDK

$cp ~/android-sdk-linux_x86-1.0_r2.zip ~/tools

$cd ~/tools/

$unzip android-sdk-linux_x86-1.0_r2.zip

 

3) 解压缩内核源代码

       $mkdir sources

       $cp linux-2.6.25-android-1.0_r1.tar.gz sources

       $cd sources

       $tar zxvf linux-2.6.25-android-1.0_r1.tar.gz

       $mv kernel.git  linux-2.6.25-android-1.0_r1

 

 

Android Kernel

1)  获取Android官方的默认内核配置文件.config

这个.config文件可以从SDK中得到。启动android模拟器,然后用adb从模拟器中提出内核配置文件:

$~/tools/android-sdk-linux_x86-1.0_r2/tools/emulator &

$adb pull /proc/config.gz  ~/

$mv ~/  ~/sources/linux-2.6.25-android-1.0_r1

$cd ~/sources/linux-2.6.25-android-1.0_r1

$ gunzip config.gz

$ mv config .config

 

2)编译

$~/mk-kernel.sh sources/linux-2.6.25-android-1.0_r1/

其中mk-kernel.sh脚本如下:

#!/bin/sh

#Simple script for Android Kernel compiling.

#By Neil Chiao, Mar.14,2009

export PATH=$PATH:/home/neil/tools/arm-2008q3/bin

export CROSS_COMPILE=arm-none-eabi-

cd $1||exit 1

make menuconfig

make

 

3)运行该镜像

$cd ~/tools/android-sdk-linux_x86-1.0_r2/tools/

$./emulator -kernel ~/sources/linux-2.6.25-android-1.0_r1/arch/arm/boot/zImage

 

 

/*

*By Neil Chiao ()

*转载请注明出处:neilengineer.cublog.cn

*/

阅读(1722) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~