zoukankan      html  css  js  c++  java
  • 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),此后运行,参考文前给出的链接。

  • 相关阅读:
    详细讲解Linux下安装python3(Python3.5.4)
    JavaScript抽象语法树英文对照
    关于MacBook Pro外接4K/60HZ显示器的问题
    Vue组件v-if新渲染的组件不更新
    Vue 子组件与子组件之间传值
    Spring整合CXF步骤,Spring实现webService,spring整合WebService
    CXF错误:Unsupported major.minor version 51.0,java.lang.UnsupportedClassVersionErro
    springMvc中406错误解决,springMvc使用json出现406 (Not Acceptable)
    jquery.validate中使用remote,remote相同值不校验问题解决
    MyBatis返回主键,MyBatis Insert操作返回主键
  • 原文地址:https://www.cnblogs.com/schips/p/cross-compile-iperf-on-arm-linux.html
Copyright © 2011-2022 走看看