ubuntu13.04 Android4.0.3编译环境搭建与编译过程+later_add跟踪报告

主机--》软硬件参数如下图所示


android4.0.3源码来源:官方下载


系统刚刚安装完毕,下面是对系统所做的相关部署,有些步骤与android编译环境搭建无关,仅仅是记录流程

1,java1.6.0_30部署

---下载jdk安装包:jdk-6u30-linux-x64.bin

---将其拷贝到 /usr/lib/jvm/ 目录下(相关目录自行创建)

sudo cp /home/luosuo/Downloads/jdk-6u30-linux-x64.bin /usr/lib/jvm/

---进入/usr/lib/jvm--》增加文件jdk-6u30-linux-x64.bin可执行权限

sudo chmod +x jdk-6u30-linux-x64.bin

---安装

sudo ./jdk-6u30-linux-x64.bin

---在/etc/environment文件中增加相关记录( 这要小心,本人就是因为这个搞错了,导致开机出问题,重装了至少3遍系统后才明白这个问题

下面是我的/etc/environment文件内容,直接贴在这儿了

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/lib/jvm/jdk1.6.0_30/bin:/usr/lib/jvm/jdk1.6.0_30/jre/bin"

CLASSPATH="/usr/lib/jvm/jdk1.6.0_30/lib"
JAVA_HOME="/usr/lib/jvm/jdk1.6.0_30"
---测试部署是否正确

$source /etc/environment
$java -version
java version "1.6.0_30"
Java(TM) SE Runtime Environment (build 1.6.0_30-b12)
Java HotSpot(TM) 64-Bit Server VM (build 20.5-b03, mixed mode)

2,arm-linux-gcc部署

文件名:arm-linux-gcc-4.5.1-v6-vfp-20120301.tgz

文件来源,友善之臂提供

---解压

$ sudo tar xvzf arm-linux-gcc-4.5.1-v6-vfp-20120301.tgz -C / 

---由于系统是64bit的,安装支持包:lsb-core后,相关命令才能执行

$sudo apt-get install lsb-core

---在/etc/environment文件中添加相关记录:

下面是我的/etc/environment文件内容,直接贴在这儿了

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/lib/jvm/jdk1.6.0_30/bin:/usr/lib/jvm/jdk1.6.0_30/jre/bin:/opt/FriendlyARM/toolschain/4.5.1/bin"

CLASSPATH="/usr/lib/jvm/jdk1.6.0_30/lib"
JAVA_HOME="/usr/lib/jvm/jdk1.6.0_30"

---测试部署是否成功

$source /etc/environment
$arm-linux-gcc -v
Using built-in specs.
COLLECT_GCC=arm-linux-gcc
COLLECT_LTO_WRAPPER=/opt/FriendlyARM/toolschain/4.5.1/libexec/gcc/arm-none-linux-gnueabi/4.5.1/lto-wrapper
Target: arm-none-linux-gnueabi
Configured with: /work/toolchain/build/src/gcc-4.5.1/configure --build=i686-build_pc-linux-gnu --host=i686-build_pc-linux-gnu --target=arm-none-linux-gnueabi --prefix=/opt/FriendlyARM/toolschain/4.5.1 --with-sysroot=/opt/FriendlyARM/toolschain/4.5.1/arm-none-linux-gnueabi/sys-root --enable-languages=c,c++ --disable-multilib --with-cpu=arm1176jzf-s --with-tune=arm1176jzf-s --with-fpu=vfp --with-float=softfp --with-pkgversion=ctng-1.8.1-FA --with-bugurl=http://www.arm9.net/ --disable-sjlj-exceptions --enable-__cxa_atexit --disable-libmudflap --with-host-libstdcxx='-static-libgcc -Wl,-Bstatic,-lstdc++,-Bdynamic -lm' --with-gmp=/work/toolchain/build/arm-none-linux-gnueabi/build/static --with-mpfr=/work/toolchain/build/arm-none-linux-gnueabi/build/static --with-ppl=/work/toolchain/build/arm-none-linux-gnueabi/build/static --with-cloog=/work/toolchain/build/arm-none-linux-gnueabi/build/static --with-mpc=/work/toolchain/build/arm-none-linux-gnueabi/build/static --with-libelf=/work/toolchain/build/arm-none-linux-gnueabi/build/static --enable-threads=posix --with-local-prefix=/opt/FriendlyARM/toolschain/4.5.1/arm-none-linux-gnueabi/sys-root --disable-nls --enable-symvers=gnu --enable-c99 --enable-long-long
Thread model: posix
gcc version 4.5.1 (ctng-1.8.1-FA) 

3,通过 Ubuntu Software Center安装Synaptic Package Management

4,通过Synaptic Package Management安装chrominum

5,执行Software updater

6,添加163源,参考:http://www.linuxidc.com/Linux/2013-05/83902.htm

$sudo cp /etc/apt/sources.list /etc/apt/sources.list.old
$sudo gedit /etc/apt/sources.list

替换为如下内容

deb http://mirrors.163.com/ubuntu/ raring main universe restricted multiverse
deb-src http://mirrors.163.com/ubuntu/ raring main universe restricted multiverse
deb http://mirrors.163.com/ubuntu/ raring-security universe main multiverse restricted
deb-src http://mirrors.163.com/ubuntu/ raring-security universe main multiverse restricted
deb http://mirrors.163.com/ubuntu/ raring-updates universe main multiverse restricted
deb http://mirrors.163.com/ubuntu/ raring-proposed universe main multiverse restricted
deb-src http://mirrors.163.com/ubuntu/ raring-proposed universe main multiverse restricted
deb http://mirrors.163.com/ubuntu/ raring-backports universe main multiverse restricted
deb-src http://mirrors.163.com/ubuntu/ raring-backports universe main multiverse restricted
deb-src http://mirrors.163.com/ubuntu/ raring-updates universe main multiverse restricted
7,安装中文输入法

$sudo apt-get install ibus-sunpinyin

8.安装gcc g++ 4.4

$sudo apt-get install gcc-4.4
$sudo apt-get install g++-4.4
 
$cd /usr/bin(进入/usr/bin)
 
$ ls -l gcc*(查看文件详细信息,gcc*过滤用,结果显示gcc->gcc4.6)
$sudo mv gcc gcc.bak(将gcc备份)
$sudo ln -s gcc-4.4 gcc(链接gcc4.4至gcc)
$ls -l gcc*(再次查看确认,这时gcc->gcc4.4)
 
$ ls -l g++*(查看文件详细信息,g++*过滤用,结果显示g++->g++4.6)
$sudo mv g++ g++.bak(将g++备份)
$sudo ln -s g++-4.4 g++(链接g++4.4至g++)
$ ls -l g++*(再次查看确认,这时g++->g++4.4)

9,

---按照http://source.android.com/source/initializing.html

Installing required packages (Ubuntu 12.04)说明操作

---安装g++-4.4-multilib

$sudo apt-get install g++-4.4-multilib

10,开始编译

进入android4.0.3源码根目录后做如下操作

$. build/envsetup.sh

$lunch full-enf

$make -j4(开始编译,此时2013年3月22日凌晨02:03)
问题1:
时间02:15:出现如下图中所示问题


解决办法,参考http://hi.baidu.com/ktpeng/item/7e9fbd18a45246c639cb30e4

这是由于ubuntu13.04版本太高的原因,在dalvik/vm/native/dalvik_system_Zygote.cpp文件中添加一行‘#include <sys/resource.h>’头文件声明,我的声明位置如下(可自行放置)

/*
 * dalvik.system.Zygote
 */
#include "Dalvik.h"
#include "native/InternalNativePriv.h"
#include <sys/resource.h>

#include <signal.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <grp.h>
#include <errno.h>
#include <paths.h>

#if defined(HAVE_PRCTL)
# include <sys/prctl.h>
#endif

#define ZYGOTE_LOG_TAG "Zygote"
问题2:
时间03:50,出现如下图中错误


解决办法,参考:https://groups.google.com/d/msg/android-building/gzsDhvmW994/ing_fOXhgTsJ

在development/tools/emulator/opengl/host/renderer/Android.mk 文件中添加一行:LOCAL_LDLIBS += -lX11 ,我的添加位置如下

LOCAL_PATH:=$(call my-dir)

# host renderer process ###########################
$(call emugl-begin-host-executable,emulator_renderer)
$(call emugl-import,libOpenglRender)
LOCAL_SRC_FILES := main.cpp
LOCAL_CFLAGS    += -O0 -g
LOCAL_LDLIBS += -lX11 

#ifeq ($(HOST_OS),windows)
#LOCAL_LDLIBS += -lws2_32
#endif

$(call emugl-end-module)

时间也不早了,我还是洗洗睡吧,我也不管你了(电脑依然在编译中)

早上十点多醒来,看了一下电脑,OK,编译成功了

---通过emulator检查系统镜像是否能够运行

$emulator

上个截图


对了,编译过程中出现了两次自动关机事件,导致我很不开心,猜测可能是CPU温度太高的原因导致

做个全程记录,以免下次硬盘报废,再次搭建环境时不再四处搜索相关内容,并带着狐疑的态度担心讲的到底对不对,(毕竟不是自己的经历,毕竟不是用自己的语言做的记录),怀疑别人很不好,真的很不好,太不好了

==================分割线:以下为FiendlyARM--Smart210开发板android4.0.3_r1系统的编译记录=========================

一,编译源码

1,将源码解压到用户目录中(这样用户就具有读写的权限了)

2,进入源码根目录

3,解决上面的‘问题1’中出现的问题

4,解决上面的'问题2‘中出现的问题(源码已经解决了该问题,那就啥也不干了,撤)

5,执行如下命令开始编译(其实是执行一脚本文件)

$./build-android
。。。

编译完成,未出现任何问题

二,创建系统目录

6,编译成功后,执行以下命令创建文件系统目录:

$./genrootfs.sh
出现如下错误信息

./genrootfs.sh: 16: ./genrootfs.sh: Syntax error: "(" unexpected

改用如下命令

$. build-android

还是不行

上网一查,说是必须使用root身份执行该命令,于是通过如下操作顺利执行

$su (切换到root用户)
#./build-android
操作完成后,在源码根目录中生成了一个名为’rootfs_dir‘的文件夹

三,制作安装或运行文件系统映像

。。。暂时不需要制作文件系统映像,留待以后完善

====================add command:adb to ubuntu system=============================

gedit ~/.bashrc

在末尾加入,adb path

export PATH=${PATH}:/home/luosuo/adt-bundle-linux-x86_64-20131030/sdk/platform-tools

运行命令,重启udev:
$sudo service udev restart

=====================安装搜狗输入法==========================

参考文档:http://wenku.baidu.com/view/2d8c6469dd36a32d73758179.html


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值