arm linux 移植 iperf3


背景

新做的硬件需要有進行一些板級接口測試;關於網絡的測試很多時候只是停留在 ping 通;能夠使用就算了。不知道網絡的丟包率,也不知道網絡吞吐的性能。

因此,需要使用一些專業化的工具來進行測試;查閱有關資料,發現了一個測試工具 iperf。

iperf是一個基於Client/Server的網絡性能測試工具,可以幫助我們測試網絡性能,定位網絡瓶頸。其中抖動和丟包率適應於UDP測試,二帶寬測試適應於TCP和UDP:

  • TCP、UDP和SCTP帶寬質量,
  • 提供網絡吞吐率信息,
  • 震動、丟包率,最大段和最大傳輸單元大小
  • 其他統計信息

使用方法:使用iperf調試網絡

移植

老生常談,一個腳本搞定。

##
#    Copyright By Schips, All Rights Reserved
#    https://gitee.com/schips/

#    File Name:  make.sh
#    Created  :  Mon 28 Setp 2020 14:29:31 PM CST

##
#!/bin/sh
BASE=`pwd`
BUILD_HOST=arm-linux-gnueabihf
export PATH=${PATH}:/home/schips/work/gcc-arm-linux-gnueabi/bin

OUTPUT_PATH=${BASE}/install/

require () {
    if [ -z "$1" ];then
        return 
    fi
    command -v $1 >/dev/null 2>&1 || { echo >&2 "Aborted : Require \"$1\" but not found."; exit 1;   }
    echo "Using: $1"
}

make_dirs() {
    cd ${BASE}
    mkdir  compressed  install  source -p
}

tget () { #try wget
    filename=`basename $1`
    echo "Downloading [${filename}]..."
    if [ ! -f ${filename} ];then
        wget $1
    fi

    echo "[OK] Downloaded [${filename}] "
}

tar_package () {
    cd ${BASE}/compressed
    ls * > /tmp/list.txt
    for TAR in `cat /tmp/list.txt`
    do
        tar -xf $TAR -C  ../source
    done
    rm -rf /tmp/list.txt
}

download_package () {
    cd ${BASE}/compressed
    #下載包
    ## http://downloads.es.net/pub/iperf/
    tget    https://downloads.es.net/pub/iperf/iperf-3.6.tar.gz
}

set_compile_env_for_arm () {
	export CC=${BUILD_HOST}-gcc
	export AR=${BUILD_HOST}-ar
	export LD=${BUILD_HOST}-ld
	export RANLIB=${BUILD_HOST}-ranlib
	export STRIP=${BUILD_HOST}-strip
}

make_iperf_host () {
    cd ${BASE}/source/*
    ./configure --prefix=${OUTPUT_PATH}/iperf_host 
    make clean
    make -j4 && make install
}

make_iperf_target () {
    cd ${BASE}/source/*
    ./configure --host=${BUILD_HOST} --prefix=${OUTPUT_PATH}/iperf_target 
    make clean
    make -j4 && make install
}

require ${BUILD_HOST}-gcc

make_dirs
download_package
tar_package
make_iperf_host
set_compile_env_for_arm
make_iperf_target

拷貝

此后,生成2種iperf:

  • iperf_target : 板子上運行。
  • iperf_host : 在PC機上面運行

拷貝 iperf_target 中的 lib/* 到 板子上的 LD_LIBRARY_PATH 包括的路徑中即可(例如/lib) 中,拷貝 bin中的程序到 PATH包括的路徑中即可(例如/bin),此后運行,參考文前給出的鏈接。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM