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
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
相关文章推荐
- Android内核开发实践
- Android开发实践:拷贝assets到sdcard
- Android内核开发 内核模块编程编译及安卓虚拟机测试
- Android内核开发 相关工具及源码下载汇总
- 最详细的 Android Toolbar 开发实践总结
- Android开发:Translucent System Bar 的最佳实践
- 【实践驱动开发3-001】TI WL1835MODCOM8 在android的移植 - 准备
- Android内核开发:源码的版本与分支详解
- Android开发实践 网络通信 URL、URLConnection、HttpClient
- 【Android】【Other】Android 开发最佳实践
- Android 开发最佳实践
- Xamarin.Android开发实践(一)
- Xamarin.Android开发实践(十三)
- Android开发实践:Java层与Jni层的数组传递
- Android内核开发:学会分析系统的启动log
- Android内核驱动开发中的Kconfig文件结构分析(图文)
- Android内核开发:系统启动速度优化-Android OS启动优化(转)
- Android 快速开发系列 ORMLite 框架最佳实践
- 【实践驱动开发3-003】TI WL1835MODCOM8 在android的移植 - 软件获取2
- 《Android 2.0游戏开发实践宝典》源码Android游戏开发视频教程www.microdu.com已更新到16章了》