背景

新做的硬件需要有进行一些板级接口测试;关于网络的测试很多时候只是停留在 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),此后运行,参考文前给出的链接。

arm linux 移植 iperf3的更多相关文章

  1. arm linux 移植 x265

    背景 本来想着把 x265编译到ffmpeg里面,搞定了x265的编译:但是一直报ERROR: x265 not found using pkg-config这个错误,我按照网上的资料,查看了ffbu ...

  2. Linux 安装 go 以及 arm linux 移植 go

    背景 Go是一门全新的静态类型开发语言,具有自动垃圾回收,丰富的内置类型,函数多返回值,错误处理,匿名函数,并发编程,反射等特性. 从Go1.4之后Go语言的编译器完全由Go语言编写,所以为了从源代码 ...

  3. arm linux 移植 MQTT (paho、mosquitto)

    前言 我们在这里做2件事情: 1)编译 paho.mqtt.mosquitto 2个开源项目的c版本库(mosquitto库没有用上) 2)编译好 依赖 paho.mqtt的库编写例程 + mosqu ...

  4. arm linux 移植 ffmpeg 库 + x264

    背景 Ffmpeg 中带有h264的解码,没有编码,需要添加x264.libx264是一个自由的H.264编码库,是x264项目的一部分,使用广泛,ffmpeg的H.264实现就是用的libx264. ...

  5. arm linux 移植 PHP

    背景: PHP 是世界上最好的语言. host平台 :Ubuntu 16.04 arm平台 : 3531d arm-gcc :4.9.4 php :7.1.30 zlib :1.2.11 libxml ...

  6. arm linux 移植支持 HP打印机

    背景 由于业务需要,需要hi3531d主板上加入对于HP打印机的支持. 通过与产品经理,技术主管的沟通:通用支持是不现实的,只要求彩色打印,先不考虑打印机的价格,只要支持一款打印机即可. 注意: Li ...

  7. arm linux 移植 gdb/gdbserver

    背景 调试工具gdb的使用对于嵌入式Linux开发人员来说是一项不可少的技能. 目前,嵌入式 Linux系统中,主要有三种远程调试方法,分别适用于不同场合的调试工作:用ROM Monitor调试目标机 ...

  8. arm linux 移植 udhcp 与 使用

    背景 在一些网络环境下,需要静态IP不够现实,需要使用DHCP进行自动获取IP地址. udhcpc是一个面向嵌入式系统的非常小的DHCP客户端,字母的缩写微μ- DHCP -客户端client(μDH ...

  9. arm linux 移植 rsync

    背景: 在产品开发中可以使用rsync进行大文件的拷贝,断点续传. host平台 :Ubuntu 16.04 arm平台 : 3531d   rsync   :3.1.3 arm-gcc :4.9.4 ...

  10. arm linux 移植 jpeg

    背景: host平台 :Ubuntu 16.04 arm平台 : S5P6818 jpeg :v9c arm-gcc :4.8.1 主机准备: 运行以下脚本: ## # Copyright By Sc ...

随机推荐

  1. VUE知识体系、VUE面试题

    1. computed(计算属性)和方法有什么区别? 计算属性本质上是包含 getter 和 setter 的方法 当获取计算属性时,实际上是在调用计算属性的 getter 方法.vue 会收集计算属 ...

  2. golang将切片或数组进行分组

    例子一: golang 数组分割 需求:给定一个数组和一个正整数,要求把数组分割成多个正整数大小的数组,如果不够分,则最后一个数组分到剩余的所有元素. package main import ( &q ...

  3. 厉害了!12秒将百万数据通过EasyExcel导入MySQL数据库中

    一.写在开头 我们在上一篇文章中提到了通过EasyExcel处理Mysql百万数据的导入功能(一键看原文),当时我们经过测试数据的反复测验,100万条放在excel中的数据,4个字段的情况下,导入数据 ...

  4. Web3连接以太网

    1. Infura Infura 是一种托管服务,提供对各种区块链网络的安全可靠访问,消除了管理区块链基础设施的复杂性,使开发者能够专注于构建创新的 Web3 应用程序. Infura 作为连接应用程 ...

  5. PHP常用排序算法01——冒泡、插入

    对于排序算法,相信学计算机的同学都不会陌生.今天我们就来复习下常见的两个排序,适合小规模数据的排序算法:冒泡(bubbleSort)和插入(insertionSort). PS:对排序等算法还不太了解 ...

  6. 使用Redis实现短信登陆

    使用Redis实现发送验证码:验证码登陆.注册:登陆校验拦截.登陆状态刷新等一系列问题. 验证码发送和验证登陆注册 思路流程 整体的思路以及流程如题: 代码实现 实体类 User实体类 @Data @ ...

  7. FFmpeg Batch AV Converter 2.2.2 官方版

    基本简介 FFmpeg Batch AV Converter官方版是一款Windows FFmpeg用户的前端程序,FFmpeg Batch AV Converter最新版允许使用FFmpeg命令行的 ...

  8. Pod安全策略:PodSecurityPolicy(PSP)

    目录 一.系统环境 二.前言 三.PodSecurityPolicy 简介 四.为什么需要 PodSecurityPolicy 五.给客户端授权 六.启用PodSecurityPolicy(PSP) ...

  9. MySQL创建表的时候建立联合索引的方法

    1.MySQL创建表建立联合索引的步骤 在MySQL中,联合索引(也称为复合索引或多列索引)是基于表中的多个列创建的索引.这种索引可以提高多列查询的性能,特别是当查询条件涉及这些列时.下面是一个详细的 ...

  10. 循环demo

      // demo1,输出1-100所有可以同时被2和3同时整除的数值         //方法1         // 循环生成 1-100的数值         // for(var i = 1  ...