`
folksy
  • 浏览: 159809 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

如何在32位ubuntu11.10 下编译android 4.0.1源码和goldfish内核

 
阅读更多

如何在32位ubuntu11.10 下编译android 4.0.1源码和goldfish内核

http://blog.csdn.net/xnwyd/article/details/7086414
分类: Android 771人阅读 评论 (1) 收藏 举报

准备工作


1 安装 java sdk 6

1 )从jdk 官方网站http://www.oracle.com/technetwork/java/javase/downloads/jdk-6u29-download-513648.html 下载jdk-6u29-linux-i586.bin 文件。

2 )执行jdk 安装文件

[html] view plain copy
  1. $chmod a+x jdk-6u29-linux-i586.bin  
  2. $jdk-6u29-linux-i586.bin  

 

(3) 配置jdk 环境变量

 

[html] view plain copy
  1. $sudo vim /etc/profile  
[html] view plain copy
  1. #JAVAEVIRENMENT  
  2. exportJAVA_HOME =/usr/lib/java/jdk1.6.0_29  
  3. exportJRE_HOME =$JAVA_HOME/jre  
  4. exportCLASSPATH =$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH  
  5. exportPATH =$JAVA_HOME/bin:$JRE_HOME/bin:$PATH  

保存后退出编辑,并重启系统。

2 安装依赖包

/*=============================================

[html] view plain copy
  1. $sudo apt-get install git-core gnupg flex bison gperf build-essential\  
  2. zipcurlzlib1g-devlibc6-devlib32ncurses5-devia32-libs\  
  3. x11proto-core-devlibx11-devlib32readline5-devlib32z-dev\  
  4. libgl1-mesa-devg++-multilibmingw32tofrodospython-markdown\  
  5. libxml2-utils 

===============================================*/

原文改为:

接下来,如果是32位系统的话,在终端中运行

$ sudo apt-get install git-core gnupg flex bison gperf build-essential \
  zip curl zlib1g-dev libc6-dev libncurses5-dev x11proto-core-dev \
  libx11-dev libreadline6-dev libgl1-mesa-dev tofrodos python-markdown \
  libxml2-utils xsltproc

如果是64位,运行

$ sudo apt-get install git-core gnupg flex bison gperf build-essential \
  zip curl zlib1g-dev libc6-dev lib32ncurses5-dev ia32-libs \
  x11proto-core-dev libx11-dev lib32readline5-dev lib32z-dev \
  libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown \
  libxml2-utils xsltproc

官方推荐用64位的,我当时没看到,用32位也不会有太大的问题,执行到这步,就已经安装好了Git和Python,除了JDK,这两个也是必须的。下面就要准备下载源码了。。。

3 repo 工具下载源码

(1) 初始化repo

 

[html] view plain copy
  1. $cd ~  
  2. $mkdir bin  
  3. $curlhttps://dl-ssl.google.com/dl/googlesource/git-repo/repo> ~/bin/repo  
  4. $chmod a+x ~/bin/repo  
  5. $exportPATH =$PATH:~/bin(导出环境变量)  

 

(2) 下载 android 最新源码

 

[html] view plain copy
  1. $mkdir android  
  2. $cd android  
  3. $ repo init -u https://android.googlesource.com/platform/manifest -bandroid-4.0.1_r1  
  4. ...(输入用户名和邮箱名)  
  5. $repo sync -j5  
  6. ...(此处用5个线程开始下载源码,下载过程及其漫长,需要耐心等待)  

 

编译源码


1 开始编译

 

[html] view plain copy
  1. $source build/envsetup.sh  
  2. includingdevice/samsung/maguro/vendorsetup.sh  
  3.   
  4. includingdevice/samsung/tuna/vendorsetup.sh  
  5.   
  6. includingdevice/ti/panda/vendorsetup.sh  
  7.   
  8. includingsdk/bash_completion/adb.bash  
  9.   
  10. $make-j4(此处用4个线程编译)  

 

编译完成后,会看到类似的输出:

[html] view plain copy
  1. Targetramdisk:out/target/product/generic/ramdisk.img  
  2. Targetuserdatafsimage:out/target/product/generic/userdata.img  
  3. Installedfilelist:out/target/product/generic/installed-files.txt   

 

2 编译遇到的问题

编译错误:

 

[html] view plain copy
  1. < 命令行 > :0:0:错误:“_FORTIFY_SOURCE”重定义[-Werror]  
  2.   
  3. < built-in > :0:0:附注: 这是先前定义的位置  
  4.   
  5. cc1plus:所有的警告都被当作是错误  
  6.   
  7. make:*** [out/host/linux-x86/obj/EXECUTABLES/obbtool_intermediates/Main.o]错误 1  

 

原因:

因机器上的gcc 版本过高,需替换成4.4.6 重新进行编译。

解决方法:

1 )安装4.4 版本的gccg++

 

[html] view plain copy
  1. $ sudo apt-get install gcc-4.4  
  2. $ sudo apt-get install g++-4.4  

2 )设置gcc 版本,使gcc 链接到gcc-4.4

[html] view plain copy
  1. $ ls -l /usr/bin/gcc*  
  2.   
  3. lrwxrwxrwx 1 root root      7 2011-11-01 23:56 /usr/bin/gcc ->  gcc-4.6  
  4.   
  5. -rwxr-xr-x 1 root root 224544 2011-10-06 05:47 /usr/bin/gcc-4.4  
  6.   
  7. -rwxr-xr-x 1 root root 302104 2011-09-17 05:43 /usr/bin/gcc-4.6  
  8.   
  9. $ cd /usr/bin  
  10. $ sudo mv gcc gcc.bak  
  11. $ sudo ln -s gcc-4.4 gcc  

 

3 )设置g++ 版本,使g++ 链接到g++-4.4

[html] view plain copy
  1. $ sudo mv g++ g++.bak  
  2. $ sudo ln -s g++-4.4 g++  

 

4 )设置完毕后,重新进行编译即可


3 从模拟器启动编译后的镜像文件

1 )设置环境变量:

[html] view plain copy
  1. export  PATH =~/android/out/host/linux-x86/bin:$PATH  
  2.   
  3. export ANDROID_PRODUCT_OUT =~/android/out/target/product/generic  

其中linux-x86/bin 存放模拟器emulator 工具,product/generic 存在编译后的镜像文件。

 

2 )启动模拟器

[html] view plain copy
  1. $emulator  
  2.   
  3. emulator:WARNING: system partition size adjusted to match image file (162 MB > 66 MB)  

 

启动后的截图:

 

编译androidgoldfish 内核


1 )进入android4.0.1 源码目录,下载goldfish 内核源码

 

[html] view plain copy
  1. $ mkdir kernel  
  2. $ cd kernel  
  3. $ git clone http://android.googlesource.com/kernel/goldfish.git  
  4. $ cd goldfish  
  5. $ git branch -a  
  6. * (no branch)  
  7.   
  8.   master  
  9.   
  10.   remotes/origin/HEAD ->  origin/master  
  11.   
  12.   remotes/origin/android-goldfish-2.6.29  
  13.   
  14.   remotes/origin/master  
  15.   
  16. $ git checkout remotes/origin/android-goldfish-2.6.29  

 

2) 修改Makefile

 

[html] view plain copy
  1. goldfish$ gedit Makefile  

 

修改

 

[html] view plain copy
  1. ARCH                     ?=$(SUBARCH)  
  2. CROSS_COMPILE ?=  

 

[html] view plain copy
  1. ARCH                     ?=arm  
  2. CROSS_COMPILE ?=arm-eabi-  


3) 导出交叉 编译器 目录为环境变量

$ export PATH=$PATH:~/android/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin

 

4 )编译内核

[html] view plain copy
  1. goldfish$ make goldfish_armv7_defconfig  
  2.   
  3. goldfish$ make  

 

编译完成后,可看到类似如下的输出:

[html] view plain copy
  1. OBJCOPY arch/arm/boot/zImage  
  2. Kernel: arch/arm/boot/zImage is ready  

 

5) 从模拟器中启动内核镜像

 

[html] view plain copy
  1. $emulator  -kernel ~/android/kernel/goldfish/arch/arm/boot/zImage &  

启动模拟器后,可从Settings->System->About Phone 中查看内核版本信息。

 

 

 

 

 

 

android 官方:

Initializing a Build Environment

http://source.android.com/source/initializing.html

 

分享到:
评论

相关推荐

    32位Ubuntu11.10下android2.3.7源码下载与编译小结知识.pdf

    在32位Ubuntu 11.10操作系统下编译Android 2.3.7源码,你需要遵循一系列步骤。首先,确保你的开发环境已经准备就绪。这包括在VMware上安装Ubuntu 11.10,分配至少25GB的硬盘空间和1GB的内存。接下来,你需要安装必要...

    Ubuntu 11.10 搭建编译环境

    在Ubuntu 11.10操作系统中搭建一个完整的编译环境是开发人员和系统管理员的基础工作,这通常涉及到安装一系列工具和软件包,以便能够从源代码构建应用程序。Ubuntu 11.10是一个较旧的版本,但其构建过程与现代版本的...

    ubuntu11.10编译linux3.0.73内核

    在Ubuntu 11.10操作系统中编译Linux 3.0.73内核是一项技术性较强的任务,涉及到系统级别的操作和配置。本文将详细介绍如何从下载、配置到编译和安装内核的整个过程。 首先,我们需要从官方Linux内核发布站点下载3.0...

    ubuntu+11.10+安装过程详解

    在本篇【ubuntu 11.10 安装过程详解】中,我们将详细探讨如何在虚拟环境中安装 Ubuntu 11.10 操作系统,包括使用 VMware 和 VirtualBox 两种虚拟机软件的步骤。 首先,我们看到的是使用 VMware 进行安装的过程。...

    ubuntu 11.10环境搭建

    本篇将详细讲解如何在Ubuntu 11.10(Oneiric Ocelot)环境下进行系统配置,包括TFTP、NFS、Samba以及VMware Tools的安装与设置。这些服务和工具在服务器管理、网络共享、虚拟化等方面都有广泛的应用。 首先,让我们...

    Ubuntu 11.10安装详细教程

    本教程将详细介绍如何在虚拟机环境下安装 Ubuntu 11.10 桌面版,主要使用 VMware Workstation 8.0 作为虚拟化平台。 #### 二、安装准备 1. **下载 Ubuntu 11.10 镜像**:首先需要从官方网站下载 Ubuntu 11.10 的 ...

    ubuntu11.10(64位)虚拟linux系统下 ---修改编译android工程

    在Ubuntu 11.10 64位操作系统上,如果你想要修改并编译一个Android 2.3.5(Gingerbread)工程,这里提供了一步步的详细指南。首先,你需要下载Android 2.3.5的源代码并将其解压到/home/xxx/android2.3/source目录下...

    Ubuntu11.10桌面速配

    ### Ubuntu 11.10 桌面优化与配置指南 #### 一、概述 Ubuntu 11.10 是一款广受欢迎的 Linux 发行版,它以其易用性和强大的社区支持而著称。然而,默认安装可能并不完全满足用户对于本地化的需求,特别是对于中文...

    ubuntu11.10安装及网络配置

    ubuntu11.10安装及网络配置,其中包括安装说明和网络配置两份文件

    Ubuntu11.10_12.04安装深度软件中心的方法.pdf

    Ubuntu 11.10/12.04 ...在 Ubuntu 11.10/12.04 系统中,用户可以通过下载源码包或使用 Git 下载源码包来安装深度软件中心。同时,用户也需要下载 deepin-ui 和 deepin-software-center 软件包以便安装深度软件中心。

    Ubuntu11.10文本乱码问题解决

    ### Ubuntu11.10文本乱码问题解决:详尽指南 #### 背景与问题阐述 在使用Ubuntu 11.10系统时,不少用户遇到一个令人头疼的问题——文本文件出现乱码。这一现象主要表现为打开本地或网络上的文本文件(如.txt格式)...

    H3C iNode for Ubuntu 11.10(32位)

    【H3C iNode for Ubuntu 11.10(32位)】是一个专为Ubuntu 11.10操作系统设计的软件解决方案,适用于32位架构的计算机。H3C,全称华为3Com,是一家知名的网络设备制造商,其iNode产品线通常涉及到网络管理、安全和优化...

    Ubuntu 11.10 安装方法全程记录

    Ubuntu 11.10 安装方法全程记录

    如何在ubuntu11.10桌面版下安装jdk和hadoop

    在 Ubuntu 11.10 桌面版下安装 JDK 和 Hadoop 需要经过多个步骤,包括安装必要的工具软件、配置 SSH 无密码登录、安装 Vim 和 Rz、下载 Hadoop 和 JDK 安装包、安装 JDK 和 Hadoop、配置 JDK 环境变量、配置 Hadoop ...

    ubuntu11.10设置图文全攻略

    《Ubuntu 11.10 设置图文全攻略》是一份详尽的指南,旨在帮助用户在Ubuntu 11.10操作系统中进行各种配置和优化。Ubuntu 11.10,代号“Oneiric Ocelot”,是Ubuntu系列的一个重要版本,它引入了许多新特性,同时也对...

    ubuntu11.10下安装VMwareTools图解

    ### Ubuntu 11.10 下安装 VMware Tools 的详细步骤 #### 一、引言 在虚拟化技术中,VMware 是一款非常流行的工具,它允许用户在一个操作系统上运行多个虚拟机。为了使虚拟机更好地与宿主机进行交互,并提高性能,...

    Win7+Ubuntu11.10(EasyBCD硬盘安装)

    标题中的"Win7+Ubuntu11.10(EasyBCD硬盘安装)"指的是在Windows 7操作系统上通过EasyBCD工具进行Ubuntu 11.10的硬盘安装,以实现双系统并存。这种方式允许用户在同一个硬件平台上同时运行Windows 7和Ubuntu,方便在...

    Ubuntu11.10安装教程及设置

    特别地,Ubuntu11.10支持通过U盘安装,包括在Windows和Linux系统下的具体操作方法。 对于Ubuntu11.10的显卡驱动安装,为满足用户图形性能的需求,教程特别提供了Nvidia和ATI显卡驱动的安装方法,这对于游戏玩家和...

Global site tag (gtag.js) - Google Analytics