主题 : repo下载Android2.3源码 编译成rootfs下载到mini6410 实践探讨 复制链接 | 浏览器收藏 | 打印
邮箱:yucejun@126.com,欢迎讨论!
级别: 侠客
UID: 34734
精华: 0
发帖: 101
金钱: 510 两
威望: 102 点
贡献值: 0 点
综合积分: 202 分
注册时间: 2010-12-20
最后登录: 2018-07-15
楼主  发表于: 2011-04-01 15:47

 repo下载Android2.3源码 编译成rootfs下载到mini6410 实践探讨

我要用repo下载Android2.3源码,然后编译成rootfs下载到mini6410 运行Android。
本以为论坛上有这样的帖子,但没看到,所以我来开创一个。
我现在开始弄,用此贴记录。希望做过的对去遇到的问题给点提示,也希望对后人有启示,欢迎发言讨论!!
不多说,开始:

第一步:下载Android源码,参见《android编译全过程》http://hi.baidu.com/garnetttt/blog/item/13426d222f72b3ae4623e8f3.html
耗时较长
补充:安装sun-java6-jdk,参见《Ubuntu 10.04 LTS 安装 sun-java6-jdk》,http://forum.ubuntu.org.cn/viewtopic.php?t=268886
友善的android fs源码包里带有sun-java6-jdk,不安装也行。
邮箱:yucejun@126.com,欢迎讨论!
级别: 侠客
UID: 34734
精华: 0
发帖: 101
金钱: 510 两
威望: 102 点
贡献值: 0 点
综合积分: 202 分
注册时间: 2010-12-20
最后登录: 2018-07-15
1楼  发表于: 2011-04-01 15:55
第二步,获得Android 2.3源代码包
http://arm9download.cncncn.com/mini6410/android/20110322/android-2.3-fs-20110322.tar.gz
1,对比两个源码包,发现
友善的Android 2.3源代码包
缺少:dalvik文件夹,externel文件夹大部分内容
增多:vendor文件夹
      文件:buila-android,   genimages.sh,   genroofs.sh,  jdk1.6.0_23.tar.gz,  setenv,  symlinks.tgz
            另增文件:\build\core\combo\arch\arm\armv6-vfp.mk

以上是我的发现,如有错,请指正。

于是我将增多的文件全拷到repo下载的源码中。
运行 ./build-android 报错啦!

【2011-04-06改正】
红色字处错啦,我重新解压 友善的 android-2.3-fs-20110322.tar.gz,发现不缺失东西,有dalvik文件夹,externel文件全部内容。
我很抱歉!!
[ 此帖被yucejun在2011-04-06 10:10重新编辑 ]
邮箱:yucejun@126.com,欢迎讨论!
级别: 侠客
UID: 34734
精华: 0
发帖: 101
金钱: 510 两
威望: 102 点
贡献值: 0 点
综合积分: 202 分
注册时间: 2010-12-20
最后登录: 2018-07-15
2楼  发表于: 2011-04-01 16:05
排错中。。。。
1,第一个错
build/core/combo/TARGET_linux-arm.mk:40: *** Unknown ARM architecture version: armv6-vfp.  Stop.
找了几个小时,才发现少了文件\build\core\combo\arch\arm\armv6-vfp.mk
基础不好呀。。弄这么久
拷贝armv6-vfp.mk,过了这个错
2,第二个错
-------------------------------------
Directory: out/target/product/mini6410/root/system
Directory: out/target/product/mini6410/root/data
Directory: out/target/product/mini6410/data
make: *** No rule to make target `dalvik/vm/mterp/out/InterpAsm-armv6-vfp.S', needed by `out/target/product/mini6410/obj/SHARED_LIBRARIES/libdvm_intermediates/mterp/out/InterpAsm-armv6-vfp.o'.  Stop.
make: *** Waiting for unfinished jobs....
prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin/arm-eabi-gcc -mthumb-interwork -Ibionic/libc/private -Ibionic/libc/private -o out/target/product/mini6410/obj/lib/crtbegin_dynamic.o -c bionic/libc/arch-arm/bionic/crtbegin_dynamic.S
--------------------------------------------------------------------
3,还有个问题
编译友善给的Android源码也有错
find: `../../external/tagsoup/src': No such file or directory
build/core/java.mk:9: *** frameworks/base: Target java module does not define any source or resource files.  Stop.

忙碌解决中。。。。。
级别: 荣誉会员
UID: 34761
精华: 0
发帖: 1348
金钱: 6835 两
威望: 1367 点
贡献值: 0 点
综合积分: 2696 分
注册时间: 2010-12-21
最后登录: 2017-06-02
3楼  发表于: 2011-04-01 16:10
不知道你的 2.3 是什么版本, FriendlyARM用的是 2.3.2, 如果小版本号不同,可能也有很多差别
邮箱:yucejun@126.com,欢迎讨论!
级别: 侠客
UID: 34734
精华: 0
发帖: 101
金钱: 510 两
威望: 102 点
贡献值: 0 点
综合积分: 202 分
注册时间: 2010-12-20
最后登录: 2018-07-15
4楼  发表于: 2011-04-01 16:26
hacker大侠说的有,说实话我不知道下的是什么版本
$ repo init -u git://android.git.kernel.org/platform/manifest.git
现在我要确认我的源码的版本,就是不知道怎么查。。。努力查中。。。
^很多问题的背后都是简单的原因......
级别: 荣誉会员
UID: 34780
精华: 0
发帖: 1219
金钱: 6230 两
威望: 1246 点
贡献值: 0 点
综合积分: 2438 分
注册时间: 2010-12-21
最后登录: 2017-09-18
5楼  发表于: 2011-04-01 18:01
这样下载的不是2.3版本...
如果要指下载指定的版本, 需要指定参数 -b <tag or head>
邮箱:yucejun@126.com,欢迎讨论!
级别: 侠客
UID: 34734
精华: 0
发帖: 101
金钱: 510 两
威望: 102 点
贡献值: 0 点
综合积分: 202 分
注册时间: 2010-12-20
最后登录: 2018-07-15
6楼  发表于: 2011-04-01 20:27
嗯,是的,这样下的不是2.3.2,显示的版本是AOSP。
我已经重下啦,repo init -u git://android.git.kernel.org/platform/manifest.git –b android-2.3.2_r1
今天干不了活了,等明天吧,估计我要到清明节后上班才能弄完咯!
邮箱:yucejun@126.com,欢迎讨论!
级别: 侠客
UID: 34734
精华: 0
发帖: 101
金钱: 510 两
威望: 102 点
贡献值: 0 点
综合积分: 202 分
注册时间: 2010-12-20
最后登录: 2018-07-15
7楼  发表于: 2011-04-02 11:42
昨晚下载了2.3.2源码,如上操作后,出现一个错
Checking build tools versions...
build/core/main.mk:76: ************************************************************
build/core/main.mk:77: You are attempting to build on a 32-bit system.
build/core/main.mk:78: Only 64-bit build environments are supported beyond froyo/2.2.
build/core/main.mk:79: ************************************************************
build/core/main.mk:80: *** stop.  Stop.
----------------------------------------------------------
按这里方法解决:http://www.cnblogs.com/fantaisie/archive/2010/12/24/1916281.html
=============================================================================
这之后还有一些错,于是我把dalvik文件夹,externel文件夹大部分内容(只剩5个文件夹:alsa-lib, elfutils, iproute2, openssl, sonivox)删掉啦!、
这下一些错没啦,出现和./build-android一样的错(我在二楼说的错)
find: `../../external/nist-sip/java': No such file or directory
find: `../../external/apache-http/src': No such file or directory
find: `../../external/tagsoup/src': No such file or directory
build/core/java.mk:9: *** frameworks/base: Target java module does not define any source or resource files.  Stop.
=====================================================================================================
研究后发现/framework/base/Android.mk的607到630行有问题,贴出如下
问题如下:ext_dirs变量的目录不存在,为空,导致ext_src_files为空,LOCAL_SRC_FILES为空。引用/build/core/java.mk出错啦
想问下友善的工程师,external目录下的文件夹是特意删的嘛,出错啦我应该怎样解决,加上这些文件么?
----------------------------------------------------
# Build ext.jar
# ============================================================

ext_dirs := \
    ../../external/nist-sip/java \
    ../../external/apache-http/src \
    ../../external/tagsoup/src

ext_src_files := $(call all-java-files-under,$(ext_dirs))

# ====  the library  =========================================
include $(CLEAR_VARS)

LOCAL_SRC_FILES := $(ext_src_files)

LOCAL_NO_STANDARD_LIBRARIES := true
LOCAL_JAVA_LIBRARIES := core
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE := ext

LOCAL_NO_EMMA_INSTRUMENT := true
LOCAL_NO_EMMA_COMPILE := true

#Added by yu
$(warning Mark 54, $(BUILD_JAVA_LIBRARY),$(LOCAL_SRC_FILES),$(all_res_assets),$(ext_src_files))

include $(BUILD_JAVA_LIBRARY)
-----------------------------------------------------------------------
^很多问题的背后都是简单的原因......
级别: 荣誉会员
UID: 34780
精华: 0
发帖: 1219
金钱: 6230 两
威望: 1246 点
贡献值: 0 点
综合积分: 2438 分
注册时间: 2010-12-21
最后登录: 2017-09-18
8楼  发表于: 2011-04-02 14:05
external下的东西不能随便删除
邮箱:yucejun@126.com,欢迎讨论!
级别: 侠客
UID: 34734
精华: 0
发帖: 101
金钱: 510 两
威望: 102 点
贡献值: 0 点
综合积分: 202 分
注册时间: 2010-12-20
最后登录: 2018-07-15
9楼  发表于: 2011-04-02 14:16

 回 8楼(911gt3) 的帖子

但我有疑惑:
其一:但我从友善下的,android2.3.2源码里,externel文件夹大部分内容(只剩5个文件夹:alsa-lib, elfutils, iproute2, openssl, sonivox)删掉啦!
其二:我把externel里的文件都恢复了,然后./build-android,报错啦
vendor/friendly-arm/mini6410/AndroidBoard.mk:24: warning: ignoring old commands for target `out/target/product/mini6410/root/ueventd.rc'
build/core/Makefile:19: warning: overriding commands for target `out/target/product/mini6410/system/usr/keylayout/qwerty.kl'
sdk/emulator/keymaps/Android.mk:13: warning: ignoring old commands for target `out/target/product/mini6410/system/usr/keylayout/qwerty.kl'
make: *** No rule to make target `out/host/linux-x86/framework/clearsilver.jar', needed by `out/host/common/obj/JAVA_LIBRARIES/droiddoc_intermediates/javalib.jar'.  Stop.
make: *** Waiting for unfinished jobs....
Install: out/host/linux-x86/bin/acp

现在很迷惑。。。