主题 : 請問如何移植iperf 到android 2.3.4 复制链接 | 浏览器收藏 | 打印
级别: 圣骑士
UID: 44407
精华: 0
发帖: 386
金钱: 1945 两
威望: 389 点
综合积分: 772 分
注册时间: 2011-04-25
最后登录: 2014-08-25
楼主  发表于: 2011-08-04 17:40

 請問如何移植iperf 到android 2.3.4

RT,才剛解決Android 2.3.4 編譯的問題
已成功Build WIFI 的*.ko

現在要移植iperf到 android 2.3.4,發現有問題.....


[root@FC14 iperf-2.0.5]#./configure ac_cv_func_malloc_0_nonnull=yes ./configure --build=i686-linux --host=arm-linux CFLAGS=-static CXXFLAGS=-static
[root@FC14 iperf-2.0.5]# mm
============================================
PLATFORM_VERSION_CODENAME=REL
PLATFORM_VERSION=2.3.4
TARGET_PRODUCT=generic
TARGET_BUILD_VARIANT=eng
TARGET_SIMULATOR=
TARGET_BUILD_TYPE=release
TARGET_BUILD_APPS=
TARGET_ARCH=arm
HOST_ARCH=x86
HOST_OS=linux
HOST_BUILD_TYPE=release
BUILD_ID=GRJ22
============================================
make: Entering directory `/home/Android-2.3.4'
make: *** No rule to make target `out/target/product/generic/obj/lib/crtbegin_dynamic.o', needed by `out/target/product/generic/obj/EXECUTABLES/iperf_intermediates/LINKED/iperf'.  Stop.
make: Leaving directory `/home/Android-2.3.4'
[root@FC14 iperf-2.0.5]#
[ 此帖被kazaya在2011-08-04 19:00重新编辑 ]
^很多问题的背后都是简单的原因......
级别: 荣誉会员
UID: 34780
精华: 0
发帖: 1219
金钱: 6230 两
威望: 1246 点
综合积分: 2438 分
注册时间: 2010-12-21
最后登录: 2017-09-18
1楼  发表于: 2011-08-04 17:55
试试用友善提供的4.5.1的交叉编译器
级别: 圣骑士
UID: 44407
精华: 0
发帖: 386
金钱: 1945 两
威望: 389 点
综合积分: 772 分
注册时间: 2011-04-25
最后登录: 2014-08-25
2楼  发表于: 2011-08-04 18:41
可以請問您iperf用不同的CROSS_COMPLIE arm-linux 版本可以正常執行?
因為我在Android 2.1/2.2 用是 4.4.0 成功編譯,Android 2.3.4 卻出了問題.....
差了一步,就可以在mini6410上測試Android 2.3.4 WIFI module 的throughput....
^很多问题的背后都是简单的原因......
级别: 荣誉会员
UID: 34780
精华: 0
发帖: 1219
金钱: 6230 两
威望: 1246 点
综合积分: 2438 分
注册时间: 2010-12-21
最后登录: 2017-09-18
3楼  发表于: 2011-08-05 09:47
如果要用Android自带的编译器, 那么应该按照其要求编写Android.mk

建议你试试友善提供的4.5.1的交叉编译器
级别: 圣骑士
UID: 44407
精华: 0
发帖: 386
金钱: 1945 两
威望: 389 点
综合积分: 772 分
注册时间: 2011-04-25
最后登录: 2014-08-25
4楼  发表于: 2011-08-08 11:31
iperf用不同的CROSS_COMPLIE編譯成功,但是在Android 上執行出現
Segmentation fault

kernel 編譯 採用的是arm-eabi-gcc 4.4.3
iperf編譯採用的是arm-linux-gcc 4.5.1
级别: 圣骑士
UID: 44407
精华: 0
发帖: 386
金钱: 1945 两
威望: 389 点
综合积分: 772 分
注册时间: 2011-04-25
最后登录: 2014-08-25
5楼  发表于: 2011-08-09 15:05
引用第4楼kazaya于2011-08-08 11:31发表的  :
iperf用不同的CROSS_COMPLIE編譯成功,但是在Android 上執行出現
Segmentation fault

kernel 編譯 採用的是arm-eabi-gcc 4.4.3
iperf編譯採用的是arm-linux-gcc 4.5.1

最後改用arm-linux的環境,並採用靜態編譯終於可以在android上執行了!!!!!

iperf交叉編譯:
1、PATH中有arm-linux相關工具
2、$ ./configure --host=arm-linux
3、vi configure.h
#define HAVE_MALLOC 0           改為    #define HAVE_MALLOC 1
/* #undef HAVE_QUAD_SUPPORT */ 改為    #define HAVE_QUAD_SUPPORT 1
#define malloc rpl_malloc       改為    /* #undef malloc */
3、$ make

出錯:
# ./iperf
./iperf: can't load library 'libstdc++.so.6'

要靜態編譯:
$cd  iperf-2.0.4/src
$vi  Makefile
在CFLAGS和CXXFLAGS都加-static參數
CFLAGS =  -O2  -static
CXXFLAGS =  -O2  -static


arm-linux-gcc 4.3.2
arm-linux-gcc 4.5.1
[ 此帖被kazaya在2011-08-09 15:33重新编辑 ]