背景

新做的硬件需要有进行一些板级接口测试;关于网络的测试很多时候只是停留在 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. 面试官:素有Java锁王称号的‘StampedLock’你知道吗?我:这什么鬼?

    一.写在开头 我们在上一篇写ReentrantReadWriteLock读写锁的末尾留了一个小坑,那就是读写锁因为写锁的悲观性,会导致 "写饥饿",这样一来会大大的降低读写效率,而 ...

  2. 请查收这份 6.3k star的 Java 攻城狮学习指南!

    大家好,我是 Java陈序员. 自从一入 Java 开发的坑,可谓是每天过得神清气爽(水深火热). 每天不是被项目经理赶进度,就是被测试小姐姐追着改 Bug!都没有时间好好学习(摸鱼)了! 今天给大家 ...

  3. 引爆你的网页乐趣!前端十个令人捧腹的JavaScript整蛊代码。

    愚人节整蛊代码.想要在网页上增添一抹幽默与惊喜吗?或是想给你的朋友一个意想不到的"小惊喜"?那么,这十款简单而有趣的JavaScript前端整蛊代码绝对能满足你的需求!每一个代码都 ...

  4. Solution Set - SAM

    讲解一些 SAM 经典的应用.可以结合 字 符 串 全 家 桶 中 SAM 的部分食用. 洛谷P2408 求不同子串个数.在 SAM 中,所有结点是一个等价类,包含的字符串互不相同.结点 \(u\) ...

  5. XOps笔记

    当前是 Ops盛行的时代,在互联网圈内的你一定经常都会听到这些名词,DevOps.DevSecOps.GitOps.NetOps.ItOps.Aiops.DataOps.MLOps.NoOps:无论是 ...

  6. wordpress多站点设置,移除 多站点链接中的 /blog 前缀

    ★★★最近想给自己的wordpress添加多个站点,就查了查相关的设置方法,以下我亲自尝试可行 1.首先需要开始配置:在网站根目录下的 wp-config.php 添加: define('WP_ALL ...

  7. Ajax 请求总共有八种 Callback

    1)onSuccess 2)onFailure 3)onUninitialized 4)onLoading 5)onLoaded 6)onInteractive 7)onComplete 8)onEx ...

  8. AIRIOT答疑第7期|如何快速提升物联网项目交付速度?

    平台+模板,套上就能用!贼拉快! AIRIOT提供物联网低代码平台+多套行业案例模板,针对于有明确项目的服务商,用平台已经配置好的节点数.功能模块.流程,直接上手干项目! AIRIOT解答: 多套物联 ...

  9. 美团一面问我i++跟++i的区别是什么

    美团一面问我i++跟++i的区别是什么 面试官:"i++跟++i的区别是什么?" 我:"i++是先使用然后再执行+1的操作,++i是先执行+1的操作然后再去使用i&quo ...

  10. 超详细!深入分析PPTP虚拟专用网搭建与抓包

    PPTP虚拟专用网搭建与抓包分析实验 实验目的:掌握PPP协议VPN的搭建,通过分析pptp建立,理解chap连接建立的过程 实验过程: 环境搭建 Windows 11系统 VMware虚拟机.kal ...