免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2254 | 回复: 0
打印 上一主题 下一主题

Android内核开发实践 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-04-04 11:48 |只看该作者 |倒序浏览

/*
*By Neil Chiao (
neilchiao at gmail.com
)
*转载请注明出处:
neilengineer.cublog.cn

*/


一、什么是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



本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u3/91522/showart_1890155.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP