Calvin's Tech Space

          成于堅忍,毀于浮躁

             :: 首頁 :: 聯系 :: 聚合  :: 管理

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

           

           

          /*

          *By Neil Chiao (neilchiao at gmail.com)

          *轉載請注明出處:neilengineer.cublog.cn

          */

          posted on 2010-02-01 09:09 calvin 閱讀(2607) 評論(0)  編輯  收藏 所屬分類: Android
          主站蜘蛛池模板: 顺昌县| 枞阳县| 克什克腾旗| 达孜县| 芷江| 浦北县| 保定市| 营山县| 溧阳市| 宁津县| 罗江县| 乌兰察布市| 惠水县| 六枝特区| 泸州市| 定结县| 师宗县| 莫力| 洛浦县| 六枝特区| 桃江县| 平远县| 德保县| 太原市| 黄陵县| 盘山县| 林西县| 定安县| 界首市| 聂荣县| 沿河| 万山特区| 霍林郭勒市| 佛山市| 乌海市| 辽宁省| 高密市| 新津县| 化州市| 永州市| 潮州市|