下载和解压源码
以下载iperf-2.0.9为例:
wget https://sourceforge.net/projects/iperf2/files/iperf-2.0.9.tar.gz
tar -xvf iperf-2.0.9.tar.gz
交叉编译
进入到解压后的iperf源码目录:
cd iperf-2.0.9
编写编译脚本build.sh:
#!/bin/bash
set -e
if [ "$1" == "clean" ] || [ "$1" == "distclean" ];then
make $1
exit 0
fi
# 4.0.10.13
export OHOS_NDK_VERSION=4.1.7.5
export OHOS_SDK_HONE=/opt/sdk/ohos
export OHOS_NATIVE_HOME=/opt/sdk/ohos/native/${OHOS_NDK_VERSION}
export PATH=$OHOS_NATIVE_HOME/llvm/bin:$PATH
export AR=$OHOS_NATIVE_HOME/llvm/bin/llvm-ar
export AS=$OHOS_NATIVE_HOME/llvm/bin/llvm-as
export LD=$OHOS_NATIVE_HOME/llvm/bin/ld.lld
export RANLIB=$OHOS_NATIVE_HOME/llvm/bin/llvm-ranlib
export STRIP=$OHOS_NATIVE_HOME/llvm/bin/llvm-strip
export CC="$OHOS_NATIVE_HOME/llvm/bin/clang"
export CXX="$OHOS_NATIVE_HOME/llvm/bin/clang++"
export NM="$OHOS_NATIVE_HOME/llvm/bin/llvm-nm"
export OBJDUMP="$OHOS_NATIVE_HOME/llvm/bin/llvm-objdump"
export CFLAGS="--target=arm-linux-ohos --sysroot=$OHOS_NATIVE_HOME/sysroot -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -mthumb -mfpu=neon -funwind-tables -fstack-protector -fno-strict-aliasing -D__MUSL__"
export CPPFLAGS="--target=arm-linux-ohos --sysroot=$OHOS_NATIVE_HOME/sysroot -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -mthumb -mfpu=neon -funwind-tables -fstack-protector -fno-strict-aliasing -D__MUSL__"
export LDFLAGS="--target=arm-linux-ohos -static-libstdc++ --rtlib=compiler-rt -fuse-ld=lld"
./configure --prefix=${PWD}/_install \
--target=arm-linux-ohos \
--host=arm-linux \
make && make install
注意LBFLAGS中添加-static-libstdc++选项的目的是为了链接libc++静态库,默认链接动态库的名称为libc++_shared.so,而设备端默认只存在/system/lib/libc++.so,并不存在libc++_shared.so,所以此时执行编译好的iperf程序时会报错。
执行编译:
bash build.sh
将生成的iperf可执行程序部署到设备端即可使用,编译安装路径:
_install/bin/iperf
网络性能测试
本章仅做简单示例,更详细的使用说明请见官方文档。
启动server端:
iperf -s -p 9999 -f M
以服务端IP地址为192.168.1.110为例,启动client端:
iperf -c 192.168.1.110 -p 9999 -f M
测试结果:
------------------------------------------------------------
Server listening on TCP port 9999
TCP window size: 0.20 MByte (default)
------------------------------------------------------------
[ 4] local 192.168.1.110 port 9999 connected with 192.168.1.222 port 41056
[ ID] Interval Transfer Bandwidth
[ 4] 0.0-10.0 sec 111 MBytes 11.1 MBytes/sec
测试结果显示网络带宽速度为11.1 MBytes/sec,基本接近100Mbps带宽网络的理想传输速度12.5 MB/s。
364





