您的位置:首页 > 移动开发 > Android开发

FW:Android内核开发实践

2014-01-15 12:02 253 查看
Android内核开发实践
http://www.yuanma.org/data/2009/0407/article_3604.htm
[内容摘要]


Android作为Google公司推出的一款手机开发平台,其本身是基于linux内核的。Google提供


的内核源代码中除了linux部分外,有很大一部分是与虚拟处理器Qemu和模拟硬件平台


Goldfish相关的。所以如果想将Android移植到实际的硬件平台上需要将这部分代码剥离出来。

一、什么是Android?

Android作为Google公司推出的一款手机开发平台,其本身是基于linux内核的。Google提供的内核

源代码中除了linux部分外,有很大一部分是与虚拟处理器Qemu和模拟硬件平台Goldfish相关的。

所以如果想将Android移植到实际的硬件平台上需要将这部分代码剥离出来。



二、搭建开发环境

2.1在Vmware中的安装和设置Ubuntu Server 8.10

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

安装: 略。

设置:

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


虚拟机和XP连接用的虚拟网卡设置IP,gateway和DNS都为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



2.2 建立Android内核开发环境

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

1)系统环境:Ubuntu 8.10 server

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


(http://www.codesourcery.com/gnu_toolchains/arm/download.html)


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


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


(http://code.google.com/p/android/downloads/list)


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

4)Android SDK


(http://code.google.com/android/download_list.html)

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: