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