ZYNQ 7020 網口測試 iperf3移植

2021-09-03 03:04:01 字數 3325 閱讀 6611

在接觸到zynq7020開發板後,需要對網口的速率進行測試。上網查了下資料,發現iperf是個好工具,於是就想著用它來測試。然後就開始查資料、進行各種嘗試。我在嘗試的過程中遇到了各種各樣的問題,比如交叉編譯的時候出錯、移植後無法執行等。由於本人是個小白,對這種問題束手無策······只想能簡簡單單跟著步驟、輸入命令就解決問題,所以放棄了其他部落格裡的修改文件等辦法。幸好最後在兩篇部落格的指導下,終於實現了iperf3的移植,實現了預期的目的,感謝兩位博主!

iperf是乙個基於client/server的網路效能測試工具,可以測試tcp、udp和sctp頻寬質量,能夠提供網路吞吐率資訊,以及震動、丟包率,最大段和最大傳輸單元大小等統計資訊,幫助我們測試網路效能,定位網路瓶頸。其中抖動和丟包率適應於udp測試,而頻寬測試適應於tcp和udp。

iperf的好處是純粹發包和接收,防止硬碟拖後腿,影響測試結果。對於時延,iperf無能無力。但是iperf能夠計算抖動。在iperf測試中需要傳送大量的包,因此計算出來的抖動值,就是連續傳送時延差值的平均值。

# mkdir ~/iperf

# cp iperf-3.0.3.tar.gz ~/iperf

# cd ~/iperf

# tar xzf iperf-3.0.3.tar.gz

# cd iperf-3.0.3

比如在linux主機上面工作的使用者是:alinx,那麼命令中的「~」就代表路徑:/home/alinx/目錄。

# mkdir ../install

# source /opt/xilinx/sdk/2017.4/settings64.sh #設定交叉編譯器的系統環境變數

# ./configure --host=arm-linux-gnueabihf --prefix=/home/alinx/iperf/install

本機使用的交叉編譯器是arm-linux-gnueabihf,讀者可以根據自己具體使用的交叉編譯器進行修改,相應的環境變數也請自行修改

# make                   

# sudo make install # 安裝完成後,檔案會自動安裝到上面指定的 install 目錄。

使用交叉編譯工具 strip 去除映象的除錯資訊,在不影響使程式使用的情況下,程式大小一般可以減小50%左右。本程式我們僅用到其中2個檔案,bin下的iperf3 和 lib下的libiperf.so.0.0.0。

# cd ../install                                     # 進入安裝目錄

# arm-linux-gnueabihf-strip bin/iperf3 # 去除iperf3映象除錯資訊

# arm-linux-gnueabihf-strip lib/libiperf.so.0.0.0 # 去除共享庫的除錯資訊

# rm lib/libiperf.a lib/libiperf.la # 刪除兩個不用的庫檔案

# tar jcf iperf-3.0.3.tar.bz2 bin lib # 壓縮bin和lib目錄

# mount -t nfs -o nolock 192.168.0.3:/home/alinx/linux_sdk_work  /mnt   //開發板端掛載nfs服務

# cp /mnt # 進入到nfs目錄

# tar jxf iperf-3.0.3.tar.bz2 bin -c /usr # 解壓映象到/usr/bin

# tar jxf iperf-3.0.3.tar.bz2 lib -c /usr # 解壓庫檔案到/usr/lib

# tar xzf iperf-3-current.tar.gz

# cd iperf-3.4

# ./configure# make

# sudo make install

如果執行 iperf3 命令時提示錯誤:

「iperf3: error while loading shared libraries: libiperf.so.0: cannot open shared object file: no such file or directory」
可以製作乙個軟連線可解決,命令如下:

# sudo ln -s /usr/local/lib/libiperf.so.0.0.0 /usr/lib/libiperf.so.0
預設情況客戶端使用tcp協議

伺服器端:

# iperf3 -s              -s:指明是伺服器端
客戶端:

1)測試tcp通訊的最大速率。

# iperf3 -c 《目標位址》
2)使用tcp傳送100兆位元組的資料
# iperf3 -c 《目標位址》 -l 100m
服務端:

# iperf3 -s
客戶端:

# iperf3 -c 192.168.1.100 -u -b 《傳輸頻寬》 -t 《測量時間[秒]> -i 《輸出報告時間間隔》
-u:指定是udp報文

-b:指定傳送頻寬

1)以udp方式向192.168.1.100傳送60秒的10m的資料流,每間隔兩秒鐘輸出報告結果

# iperf3 -c 192.168.1.100 -u -b 10m -t 60 -i 2
2)以udp方式向192.168.1.100傳送60秒的10m的雙向資料流
# iperf3 -c 192.168.1.100 -u -b 10m -t 60 -i 2 -d
3)以udp方式向192.168.1.100傳送60秒的10m的3路雙向資料流
# iperf3 -c 192.168.1.100 -u -b 10m -t 60 -i 2 -p 3
伺服器端:

# iperf3 -s -v
客戶端:

# iperf3 -c 《伺服器的ipv6位址》 -v
伺服器端:

# iperf3 -s -p 2480
客戶端:

# iperf3 -u -c 192.168.0.222 -b 100m -p 2480

Zynq7020核心板燒寫方法

宣告 與本文件環境保持一致,能夠保證燒寫成功,專家們和使用者提出寶貴的修改意見,避免該文件成為網路垃圾。軟體環境 vivado 2017.4 操作 1.先將拷貝的源程式的.sdk資料夾刪除 2.包含bit檔案,開啟sdk順序選擇以下按鈕file export export hardware,勾選in...

zynq7020開發板 Z turn除錯計畫

參加公尺爾zynq7020開發板試用活動。收到公尺爾z turn板子後,焊接了乙個jtag轉接板,以方便除錯pl部分,對於後面的除錯部分,主要分三個部分走 1 除錯fpga部分,實現邏輯控制外圍簡單的裝置,比如點個燈什麼的,用verilog語言實現,後期需要實現外部ad板卡的資料採集,並分析相關邏輯...

zynq7020不使用xSDK的簡單開發

本文主要介紹如何在不使用sdk的情況下進行zynq7020的程式設計。本實驗為點亮一盞led燈,使用mio0引腳。廢話不多說,開始正題。本文使用正點原子啟明星zynq7020開發板進行開發。開發環境為ubuntu。要使用gpio點亮led燈,第一步當然是設定gpio的引腳。將mio0對映到gpio上...