iperf交叉编译与简单使用(转)
iperf交叉编译与简单使用
使用的iperf版本
iperf版本为 iperf-2.0.9 下载地址
iperf编译
下载后解压 iperf-2.0.9-source.tar.gz 文件,进入 iperf-2.0.9 目录,输入命令配置
./configure --host=arm-linux-gnueabihf CC=arm-linux-gnueabihf-gcc CFLAGS=-static CXX=arm-linux-gnueabihf-g++ CXXFLAGS=-static
然后 make 编译即可,编译完成,可在 src 目录下找到编译好的 iperf 应用,因其为静态编译,故直接将其放到开发板里就可以了。
测试
iperf 是一个网络性能测试工具,可以测试TCP与UDP的网络带宽。测试可在linux上进行,亦可在Windows上进行。
- Linux下TCP测试
先在Linux上安装iperf,然后将其当成服务器,输入命令
#iperf -s -i 1 -w 1M
开发板作为客户端,输入命令(假设服务器ip为192.168.1.20)
#iperf -c 192.168.1.20 -i 1 -w 1M
- Windows下TCP测试
先下载Windows下使用的测试软件,对应的版本为
iPerf 2.0.9 (6 jun 2016 - 1.7 MiB for Windows Vista 64bits to Windows 10 64bits) 或者
iPerf 2.0.9 (6 jun 2016 - 1.7 MiB for Windows XP to Windows 10)
下载地址与使用的iperf版本的 下载地址 一致。
解压 iperf-2.0.9-win64.zip 文件,可以看到一个 iperf.exe 文件,用 iperf.exe 替代上述Linux命令下 iperf 即可,打开Windows下的命令提示符,进入解压目录,输入命令
#iperf.exe -s -i 1 -w 1M
开发板作为客户端,命令不变。
这里为方便演示,直接使用 Linux(虚拟机作为服务器) 与 Windows(客户端) 下的测试。具体使用可查看此博客: https://www.cnblogs.com/Ph-one/p/10767962.html
Linux下打印如下:
Windows打印如下:
编译问题
使用iperf-2.0.8与iperf-2.0.5等版本编译会出现如下错误:
cpp_type_traits.h:205:12: error: redefinition of ‘struct std::__is_integer’
解决办法:为新编译器问题,使用 iperf-2.0.9 版本没有这个问题
(具体情况可查看以下两个网址)
https://gitlab.flux.utah.edu/emulab/emulab-devel/issues/336
https://www.huaweicloud.com/kunpeng/software/iperf.html