海思 tcpdump 移植开发详解

目录

前言 

一、开发环境 

二、tcpdump 源码下载 

三、交叉编译 libpcap

四、交叉编译 tcpdump

五、tcpdump 移植到板子运行 


前言 

本章内容将讲解,如何在海思平台交叉编译、移植,并基于静态库生成的 tcpdump 网络抓包工具。

一、开发环境 

SS626V100 交叉工具链的安装流程,可以参考 《SS626V100_SDK_V2.0.1.0 安装编译 osdrv 问题汇总》 。 

1. windows10 电脑 + 虚拟机15 Pro + Ubuntu18.0.4 

2. 芯片型号: SS626V100

二、tcpdump 源码下载 

由于 tcpdump 依赖于 libpcap,所以这两份的源代码都需要下载。 以下示例将使用目前最新的版本 tcpdump-4.99.4.tar.gz 和 libpcap-1.10.4.tar.gz

  1. tcpdump 官方地址:https://www.tcpdump.org
  2. tcpdump 源码地址:https://github.com/the-tcpdump-group/tcpdump
  3. libcap 源码地址:https://github.com/the-tcpdump-group/libpcap

三、交叉编译 libpcap

1.  创建一个 libpcap 编译结果的安装目录(编译后的 libpcap 头文件和库将存储在这里)

cd /my_work/tools/tcpdump/  #这个路径大家要根据自己的实际情况修改
mkdir install

2. 为了防止编译过程产生的临时文件污染源码,所以先创建一个 build 目录,再编译 libpcap 源码

tar zxf libpcap-libpcap-1.10.4.tar.gz
cd libpcap-libpcap-1.10.4
mkdir build
cd build

3. 清空目录,执行上层的 configure,指定编译器和编译结果的安装目录,并要求生成静态库

make clean
../configure --host=aarch64-mix410-linux --with-pcap=linux --prefix=/my_work/tools/tcpdump/install --disable-shared

4. 编译安装

make
make install

四、交叉编译 tcpdump

1. 同理,为了防止编译过程产生的临时文件污染源码,所以先创建一个 build 目录,再编译 tcpdump 源码

tar zxf tcpdump-tcpdump-4.99.4.tar.gz
cd tcpdump-tcpdump-4.99.4
mkdir build
cd build

2. 清空目录,执行上层的 configure,指定编译器及依赖的 libpcap 头文件、库文件路径,并且要求不需要加密功能,生成 makefile

make clean
../configure --host=aarch64-mix410-linux --without-crypto CFLAGS="-I/my_work/tools/tcpdump/install/include" LDFLAGS=-L/my_work/tools/tcpdump/install/lib LIBS=-lpcap

3. 编译

make

执行成功后,tcpdump-tcpdump-4.99.4/build 目录下将生成 tcpdump 工具。 

五、tcpdump 移植到板子运行 

由于只生成静态库,所以不需要再把 libpcap 生成的(动态)库移植到板子,而是直接移植 tcpdump 工具到板子运行即可。在板子上授权并查看工具版本:

chmod +x tcpdump
./tcpdump -h

正常运行的版本信息如下: 

tcpdump version 4.99.4
libpcap version 1.10.4 (with TPACKET_V3)
Usage: tcpdump [-AbdDefhHIJKlLnNOpqStuUvxX#] [ -B size ] [ -c count ] [--count][ -C file_size ] [ -E algo:secret ] [ -F file ] [ -G seconds ][ -i interface ] [ --immediate-mode ] [ -j tstamptype ][ -M secret ] [ --number ] [ --print ] [ -Q in|out|inout ][ -r file ] [ -s snaplen ] [ -T type ] [ --version ][ -V file ] [ -w file ] [ -W filecount ] [ -y datalinktype ][ --time-stamp-precision precision ] [ --micro ] [ --nano ][ -z postrotate-command ] [ -Z user ] [ expression ]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/653906.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SpringBoot整合Xxl-Job实现异步任务调度中心

目录 一、下载 1、源码 2、项目结构 3、模块说明 二、部署任务调度中心 1、创建数据库xxl-job 2、配置数据库 3、启动admin模块 4、打开任务调度中心 三、SpringBoot整合xxl-job 1、导入依赖 2、配置yml文件 3、配置类 4、启动项目 5、任务配置 6、测试 一、下…

UE5在VisualStudio升级后产生C++无法编译的问题

往期的虚幻引擎项目在VS更新后,编译时会报错,这一般出现在VS升级之后,UE对于VC的编译器定位没有更新导致; 有出现如下问题: 问题1: Running I:/EPCI/Epic Games/UE_5.3/Engine/Build/BatchFiles/Build.ba…

笔记 | mysqldump 时 --net_buffer_length 的作用

--net_buffer_length 是 mysqldump 命令中的一个选项,它设置了缓冲区的初始大小,该缓冲区用于存储SQL语句。在mysqldump操作期间,可能需要传输大量数据。如果单个记录(或多个小记录)的大小超过了这个缓冲区的大小&…

vue3+threejs+koa可视化项目——实现登录注册(第三步)

文章目录 ⭐前言💖往期node系列文章💖threejs系列相关文章💖vue3threejs系列 ⭐koa后端登录注册逻辑(jwt)💖 koa登录注册 ⭐vue3前端登录注册权限控制💖 登录页面💖 注册页面 ⭐总结…

带Cookies信息操作页面(Selenium)

文章目录 一、Cookie介绍二、使用Selenium获取Cookies信息(登入)三、带Cookies操作页面(Selenium)四、带Cookies操做页面(session)五、自动登入(验证处理)1、超级鹰(图片…

Promethues:普罗米修斯

promethues是一个开源的系统监控以及报警系统。整和zabbix的功能,系统,网络,设备promethues可以兼容网络,设备。容器监控。告警系统。因为他和k8s是一个项目基金开发的产品,天生匹配k8s的原生系统。对容器化和云原生服…

MySQL(下)

四、事务 一、概念 对数据库的一次执行中有多条sql语句执行。这多条sql在一次执行中,要么都成功执行,要么都不执行。保证了数据完整性。MySQL中只有innodb引擎支持事务。 二、特性 事务是必须满足 4 个条件(ACID)&#x…

江西公务员考试报名照如何上传成功

2024年江西省考报名公告已经发布了,想要参加江西省考报名的姐妹们,快来看看,提前了解报名流程,和报名照上传要求。 网上报名时间:1月28日9:00至2月2日17:00 网上缴费时间:1月28日9:00至2月3日17:00 打印准考…

MookLab 和 SGVision

什么是马克拉伯(MookLab) MookLab是一个机器视觉应用开放社区,MookLab致力于帮助用户以最低的成本、门槛构建视觉系统。具体为:1)提供免费软件:平台提供免费的视觉软件,专业团队进行免费软件服务支持。 2)…

备战蓝桥杯----数据结构及STL应用(基础2)

上次我们讲了vector的大致内容,接下来让我们讲一下栈,队列吧! 什么是栈呢? 很简单,我们用的羽毛球桶就是,我们取的球,是最后放的,栈是一种先进后出的数据结构。 方法函数 s.push(…

SpringBoot深入解析:掌握自动装配机制及其定制化原理

推荐一款我一直在用的ChatGPT4.0国内站点,每日有免费使用额度,支持PC、APP、VScode插件同步使用 SpringBoot篇:SpringBoot的自动装配原理 SpringBoot是一个旨在简化Spring应用初始搭建以及开发过程的框架。它利用了Spring框架的依赖注入特性…

HDFS Federation前世今生

一 背景 熟悉大数据的人应该都知道,HDFS 是一个分布式文件系统,它是基于谷歌的GFS实现的开源系统,设计目的就是提供一个高度容错性和高吞吐量的海量数据存储解决方案。在经典的HDFS架构中有2个NameNode和多个DataNode,如下 从上面…

美易官方《阿迪达斯一季度营收微降,大中华区连续八季下滑》

阿迪达斯一季度营收微降,大中华区连续八季下滑 近日,阿迪达斯公布了2023财年第一季度的财务报告。尽管公司营收总体实现了微幅增长,但是大中华区的营收却出现了连续八个季度的下滑。这一现象引发了市场对阿迪达斯在中国市场表现的的关注和担忧…

内网安全:RDP WinRS WinRM SPN Kerberos 横向移动

目录 WinRM协议 RDP协议 域横向移动:RDP协议 RDP协议利用 一. 探针服务 二. 获取NTML Hash 明文密码 三. 连接执行 域横向移动:WinRM WinRS WinRM协议、WinRS命令利用 一. cs 内置端口扫描5985 二. 连接执行 三. 上线CS 四. CS插件横向移动…

如何在Unity中无缝衔接播放视频,避免卡顿

如何在Unity中无缝衔接播放视频,避免卡顿 问题描述**解决方案概览**实现步骤**1. 准备工作****2. 视频播放控制器**初始化视频播放器预加载视频**举例说明****技术实现**细节提醒**1. 准备UI元素****2. 添加和配置VideoPlayer****3. 创建RenderTexture****4. 绑定脚本与UI元素…

第五篇:express路由路径方式(字符串,字符串模式,和正则)

🎬 江城开朗的豌豆:个人主页 🔥 个人专栏 :《 VUE 》 《 javaScript 》 📝 个人网站 :《 江城开朗的豌豆🫛 》 ⛺️ 生活的理想,就是为了理想的生活 ! 目录 📘 引言: &#x1f4…

(二十一)Flask之上下文管理第二篇(细细扣一遍源码)

每篇前言: 🏆🏆作者介绍:【孤寒者】—CSDN全栈领域优质创作者、HDZ核心组成员、华为云享专家Python全栈领域博主、CSDN原力计划作者 🔥🔥本文已收录于Flask框架从入门到实战专栏:《Flask框架从入…

《幻兽帕鲁》1月29日游戏服务器推荐!腾讯云降低规格再次降价!

腾讯29日刷新规格,从14M降低到12M,硬盘和流量都有降低,但价格打下来了!价格从66元/月降低到32元/月,277元/3个月降低到96元/3个月! 三大厂商4核16G的云服务器价格对齐,不过具体参数略有不同 阿里…

C语言数据结构——链表

(图像由AI生成) 0.前言 在计算机科学中,数据结构是存储和组织数据的一种方式,它不仅影响数据的存储,也影响数据的检索和更新效率。C语言,作为一种经典的编程语言,提供了灵活的方式来处理数据…

安装pygraphviz报错——fatal error: graphviz/cgraph.h: 没有那个文件或目录的解决方法

今天想在一台新的pc上用networkx输出dot图: nx.drawing.nx_agraph.write_dot(G_PDG,test.dot) 结果报错:requires pygraphviz http://pygraphviz.github.io/ 然后运行 pip install pygraphviz 结果就报错: pygraphviz/graphviz_wrap.c:3…