OpenHarmony移植Iperf

下载和解压源码

以下载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。

参考资料

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值