主题 : Micro2440上eclair文件系统的制作问题 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 25935
精华: 0
发帖: 3
金钱: 15 两
威望: 3 点
贡献值: 0 点
综合积分: 6 分
注册时间: 2010-08-01
最后登录: 2010-08-29
楼主  发表于: 2010-08-07 15:56

 Micro2440上eclair文件系统的制作问题

环境:
Ubuntu10.04 gcc-4.3 g++-4.3 jdk1.5.0_22

Step1 .Ubuntu Linux (32-bit x86)
    1. Tool or packages

    $ sudo apt-get install git-core gnupg flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl libncurses5-dev zlib1g-dev
    $ sudo apt-get install valgrind
    $ sudo apt-get install lib32readline5-dev
    $sudo apt-get install liblzo2-dev
    $apt-get install uboot-mkimage
    2.从www.java.sun.com 下载JDK_1.5.0_22.bin,使用export来设置环境变量:
  $export JAVA_HOME=/usr/jdk1.5.0_22
    $export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
    $export PATH=$PATH:$JAVA_HOME/bin

Step2:
因为micro2440的MCU是armv4t,源只能用freerunner的。原生态的git://android.git.kernel.org/platform/manifest.git 的只能支持armv5te。
    $repo init -u git://gitorious.org/android-on-freerunner/freerunner_platform_manifest.git  
    $repo sync
    $. ./build/envsetup.sh
    $choosecombo
    $make

问题1:
提示找不到ETC1/etc1.h导致development/tools/etc1tool编译不过。网上也搜不到相应的解决方案,最后只有把这个etc1tool目录给删掉。
host C++: etc1tool <= development/tools/etc1tool/etc1tool.cpp
development/tools/etc1tool/etc1tool.cpp:22:23: error: ETC1/etc1.h: No such file or directory
development/tools/etc1tool/etc1tool.cpp:136: error: ‘etc1_byte’ has not been declared
development/tools/etc1tool/etc1tool.cpp:137: error: ‘etc1_uint32’ has not been declared
development/tools/etc1tool/etc1tool.cpp:137: error: ‘etc1_uint32’ has not been declared
development/tools/etc1tool/etc1tool.cpp: In function ‘int read_PNG_File(const char*, int**, int*, int*)’:

问题2:
host Prebuilt: ant (out/host/common/obj/JAVA_LIBRARIES/ant_intermediates/javalib.jar)
host Prebuilt: asm-3.1 (out/host/common/obj/JAVA_LIBRARIES/asm-3.1_intermediates/javalib.jar)
host Prebuilt: commons-compress-1.0 (out/host/common/obj/JAVA_LIBRARIES/commons-compress-1.0_intermediates/javalib.jar)
Install: out/host/linux-x86/framework/dumpkey.jar
Install: out/host/linux-x86/framework/emmalib.jar
host Prebuilt: groovy-all-1.6.5 (out/host/common/obj/JAVA_LIBRARIES/groovy-all-1.6.5_intermediates/javalib.jar)
make: *** No rule to make target `out/host/linux-x86/framework/ddmlib.jar', needed by `out/host/common/obj/JAVA_LIBRARIES/hosttestlib_intermediates/javalib.jar'.  Stop.
river@river-desktop:~/andorid/framework$ repo init -u git://gitorious.org/android-on-freerunner/freerunner_platform_manifest.git

正在从$repo init -u git://gitorious.org/android-on-freerunner/freerunner_platform_manifest.git  -b cupcake的tree中复制etc1tool和javalib之类,可以解决此类问题,但是缺的东西好像真不少。

用这种方法build出来的init不能再arm9上运行,方法应该有问题。

不知道成功编译出在mini2440上eclair文件系统的高手们是怎么做的?

Cupcake的freerunner文件系统,经过修改init.rc,可以起来,adb shell工作始终正常,但LCD老是停留在Logo动画界面。高手们,Any comments?
[ 此帖被jliu66在2010-08-13 20:04重新编辑 ]
级别: 新手上路
UID: 8863
精华: 0
发帖: 5
金钱: 25 两
威望: 5 点
贡献值: 0 点
综合积分: 10 分
注册时间: 2009-09-08
最后登录: 2011-03-03
1楼  发表于: 2010-08-07 20:20
同问,目前我只知道找不到ETC1好像是从freebrenner中的opengl缺少了etc1tool这个工具的源代码,可以从google官方的源代码中拷贝过来。
*無鈳取玳
级别: 论坛版主
UID: 27
精华: 12
发帖: 5398
金钱: 40120 两
威望: 17929 点
贡献值: 71 点
综合积分: 11036 分
注册时间: 2008-01-16
最后登录: 2014-11-22
2楼  发表于: 2010-08-07 22:17
造成这个问题的原因是android-on-freerunner中的源代码分为两部分,一部分来自git://android.git.kernel.org, 这部分是由AOSP(Android Open Source Project)维护的;而另外一部分则来自git://gitorious.org/android-on-freerunner, 这部分才是由android-on-freefunner这个项目的开发者维护的。但很不幸的是,这两部分源代码并不总是同步的。比如目前来自git://android.git.kernel.org中的platform/development/tools中包含了etc1tool, 而来自git://gitorious.org/android-on-freerunner的platform/frameworks/base/opengl/include中还没有包含相应的头文件ETC1/etc1.h。

另外,现在用repo init -u git://gitorious.org/android-on-freerunner/freerunner_platform_manifest.git,对应的master分支源代码已经是2.2 Froyo的了。如果需要制作Ecalir的文件系统,必须手工指定eclair分支(repo init -u git://gitorious.org/android-on-freerunner/freerunner_platform_manifest.git  -b eclair)
"If you have an apple and I have an apple and we exchange apples, then you and I will
still each have one apple. But if you have an idea and I have an idea and we exchange
these ideas, then each of us will have two ideas."
级别: 新手上路
UID: 25935
精华: 0
发帖: 3
金钱: 15 两
威望: 3 点
贡献值: 0 点
综合积分: 6 分
注册时间: 2010-08-01
最后登录: 2010-08-29
3楼  发表于: 2010-08-07 22:48

 回 2楼(kasim) 的帖子

repo init -u git://gitorious.org/android-on-freerunner/freerunner_platform_manifest.git  -b eclair也试过,现象和上面是一样的。只有-b cupcake编译出来的filesystem经修改后是可以用的。上面的环境是对的么?With many thanks
[ 此帖被jliu66在2010-08-07 22:55重新编辑 ]
*無鈳取玳
级别: 论坛版主
UID: 27
精华: 12
发帖: 5398
金钱: 40120 两
威望: 17929 点
贡献值: 71 点
综合积分: 11036 分
注册时间: 2008-01-16
最后登录: 2014-11-22
4楼  发表于: 2010-08-08 10:05

 回 3楼(jliu66) 的帖子

那样做是可以的,最终生成的是1.5 cupcake的文件系统
"If you have an apple and I have an apple and we exchange apples, then you and I will
still each have one apple. But if you have an idea and I have an idea and we exchange
these ideas, then each of us will have two ideas."