`

Cupcake编译指导

阅读更多

Cupcake 编译指导

 

准备文件:

\ cupcake\

从服务器下载该目录下所有文件

 

解压 cupcake.tgz ~/cupcake

tar zxf path/cupcake.tgz –C ~/

 

拷贝 clean_git.sh ~/cupcake/ 并执行之,以清除各个子目录下的 .git 目录

       cd ~/cupcake

       chomd a+x clean_git.sh

       ./clean_git.sh

 

做原始版本记录

       git init

       git add .

       git commit –m “cupcake base code”

 

~/cupcake 目录下新建 .gitignore 文件,输入如下内容,让 git 忽略之

       out

       *.patch

       *~

 

解压 Android_PlatformRel_Linux_MHLV_2009WW21.tgz

       tar zxf Android_PlatformRel_Linux_MHLV_2009WW21.tgz –C ~/

 

拷贝 cupcake_patch cupcake 目录

cp –r ~/pxa_cupcake/src/cupcake/cupcake_patches/* ~/cupcake/

 

解压 vendor.tgz cupcake 目录下

tar zxvf ~/pxa_cupcake/src/cupcake/vendor.tgz -C ~/cupcake

( 此步骤不执行将不会出现 littleton 选项 )

 

修改 apply_cupcake_patch.sh

       git-am $cupcake_root_dir/$cupcake_patch

       修改为

       patch –p1 < $cupcake_root_dir/$cupcake_patch

 

cupcake_patch

       ./ apply_cupcake_patch.sh

 

做打 patch 后的版本记录

       git add .

       git commit

 

配置编译环境

编译 cupcake 需要 JDK1.5 gcc-4.3 g++-4.3

Ubuntu9.10 未安装 jdk1.5 ,默认安装 gcc-4.4 g++-4.4 ,所以需要安装上述 2 个。

 

JDK:

如果之前装了 java6 sdk ,但编译 Android 需要 jdk5 ,所以先把 Java6 屏蔽掉。

lua@ubuntu:~$ ls /usr/bin/j*

/usr/bin/java     /usr/bin/javaws    /usr/bin/jexec       /usr/bin/jockey-text

/usr/bin/java_vm  /usr/bin/jcontrol  /usr/bin/jockey-gtk  /usr/bin/join

lua@ubuntu:~$ sudo mv /usr/bin/java /usr/bin/java.bak

lua@ubuntu:~$ sudo mv /usr/bin/javaws /usr/bin/javaws.bak

lua@ubuntu:~$ sudo mv /usr/bin/java_vm /usr/bin/java_vm.bak

lua@ubuntu:~$ ls /usr/bin/j*

/usr/bin/java.bak     /usr/bin/jcontrol    /usr/bin/jockey-text

/usr/bin/java_vm.bak  /usr/bin/jexec       /usr/bin/join

/usr/bin/javaws.bak   /usr/bin/jockey-gtk

 

比如 jdk-1_5_0_21-linux-i586.bin 放到如下目录

/home/lua/Downloads

shell 窗口执行 sh jdk-1_5_0_21-linux-i586.bin

jdk5 将安装到 /home/lua/Downloads/jdk1.5.0_21

/home/lua/Downloads/jdk1.5.0_21/bin 添加到 PATH

lua@ubuntu:~$ echo $PATH

/home/lua/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/home/lua/arm-marvell-linux-gnueabi/bin:/home/lua/bin:/home/lua/work/android-sdk-linux_86/tools:/home/lua/work/eclipse:/home/lua/Downloads/jdk1.5.0_21/bin

 

测试 Java ,系统能找到 java 且版本正确。

lua@ubuntu:~$ which java

/home/lua/Downloads/jdk1.5.0_21/bin/java

lua@ubuntu:~$ which javac

/home/lua/Downloads/jdk1.5.0_21/bin/javac

lua@ubuntu:~$ java -version

java version "1.5.0_21"

Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_21-b01)

Java HotSpot(TM) Client VM (build 1.5.0_21-b01, mixed mode, sharing)

lua@ubuntu:~$ javac -version

javac 1.5.0_21

 

GCC-4.3

安装文件在 ubuntu-9.10-gcc-4.3 目录下,

       sudo dpkg -i cpp-4.3_4.3.4-5ubuntu1_i386.deb

       sudo dpkg -i gcc-4.3-base_4.3.4-5ubuntu1_i386.deb

       sudo dpkg -i gcc-4.3_4.3.4-5ubuntu1_i386.deb

       sudo dpkg -i g++-4.3_4.3.4-5ubuntu1_i386.deb

       sudo dpkg -i libstdc++6-4.3-dev_4.3.4-5ubuntu1_i386.deb

查看旧的 gcc g++

       ll /usr/bin/gcc*

       ll /usr/bin/g++*

创建 gcc g++ 软连接

       sudo rm gcc g++

       sudo ln –s gcc-4.3 gcc

       sudo ln –s g++-4.3 g++

 

 

修改 cupcake bug

1. 如果直接 make ,会出现 frameworks/policies/base/PolicyConfig.mk:22: ***

No module defined for the given PRODUCT_POLICY (android.policy_phone).  Stop.

误。

    解决办法:

    build/tools/findleaves.sh 中的第 89 行,

    这一句 find "${@:0:$nargs}" $findargs -type f -name "$filename" -print |

    改为 find "${@:1:$nargs-1}" $findargs -type f -name "$filename" -print |

 

2. qemu_gnu.patch

project external/qemu/

diff --git a/Makefile.android b/Makefile.android

index 4c697fb..98d2084 100644

--- a/Makefile.android

+++ b/Makefile.android

@@ -18,7 +18,7 @@ MY_CFLAGS := $(CONFIG_INCLUDES) -O2 -g \

 

  # this is needed to build the emulator on 64-bit Linux systems

  ifeq ($(HOST_OS)-$(HOST_ARCH),linux-x86)

-  MY_CFLAGS += -Wa,--32

+  MY_CFLAGS += -Wa,--32 -D_GNU_SOURCE

  endif

 

  ifeq ($(HOST_OS),freebsd)

 

编译 cupcake

Buid PXA Android by:

  $ . build/envsetup.sh

  $ choosecombo

Note: please chose Device-release-littleton-user

  $ make –j4

After a while (30~60 minutes), the binaries will be generated under  /out/target/product/littleton/.

分享到:
评论

相关推荐

    编译Android源码全过程

    ### 编译Android源码全过程详解 #### 一、获取Android源代码 在开始编译Android源码之前,首先需要确保获取完整的Android源代码...通过本文的指导,你可以顺利地完成Android源码的编译,并进一步进行定制和开发工作。

    android源代码编译与环境

    关于Android源代码的编译与环境配置,这是Android开发者需要掌握的基础技能之一。...对于初学者来说,建议在有经验的开发人员指导下完成这些步骤,以便更好地理解和掌握Android系统的编译与环境配置过程。

    Ubuntu10.04下编译Android源码全过程.pdf

    需要注意的是,编译 Android 源码是一项复杂的任务,涉及到大量的依赖关系和配置,因此在整个过程中需确保按照指导进行操作,并解决可能出现的各种依赖问题。此外,由于编译过程较长,建议在夜间或者空闲时间进行。

    Android-x86源码的编译

    在这里,将`&lt;branch&gt;`替换为所选分支的名称,遵循官方文档的指导进行下载。 5. **编译源码** - 编译Android-x86源码的注意事项: - 对于froyo-x86分支之前的版本,可以在32位或64位系统上进行编译。从...

    Ubuntu 8.04下编译Android源码全过程.doc

    ### Ubuntu 8.04下编译Android源码全过程...从Git和Repo脚本的使用,到编译前的环境配置,再到具体的编译步骤,均给出了明确的操作指导。这对于希望深入学习Android系统底层原理的开发者来说是非常有价值的参考资料。

    linux Android基础知识总结.pdf

    2. **编译源码**:进入`cupcake-jianping`目录后,运行相应的脚本进行编译,例如: - `../make_image15.sh` 3. **编译内核**:根据需要选择合适的内核源码并进行编译,比如: - `svn co svn://192.168.2.148/...

    linus和android

    - **源码位置** 通过SVN获取,如`svn://192.168.2.148/smartphone/td0901/trunk/cupcake-jianping`。 - **编译脚本** `make_image15.sh` 用于自动化编译过程。 - **编译结果** 保存在`out/target/product/littleton/...

    build android doc

    对于Android源代码的获取和编译,这里提到了Android Cupcake版本。在Ubuntu 9.04环境下,首先需要安装git工具,然后下载repo工具,初始化Android项目,并同步源代码。接着,安装必要的依赖包,如flex、bison、gperf...

    MSM 系列CPU source code 获取方法

    可以在AOSP的官方文档中找到关于如何设置开发环境的具体指导。 3. **编译源代码**:一旦源代码和环境都准备好了,就可以开始编译过程了。通常情况下,可以使用`lunch`命令选择合适的构建目标,然后运行`make`或`mmm...

    s3c6410 android 移植Step by step

    本文档旨在指导开发者如何在s3c6410平台上进行Android系统的移植工作。s3c6410是一款高性能的处理器,适用于多种嵌入式应用。通过本教程的学习,您将了解整个移植过程中的关键步骤和技术要点。 #### 二、环境配置 ...

    Freescale MX53 Realtek8188CE-VAU porting

    - 编译wlan.ko:下载并解压缩Realtek提供的Linux源码包,并按照文档指导进行编译。 - 需要在Makefile文件中添加特定的配置选项,例如`CONFIG_PLATFORM_ARM_MX53_SMD`。 2. **Android部分** - 在Android环境中...

Global site tag (gtag.js) - Google Analytics