当前位置: 首页 > news >正文

海思 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.lryc.cn/news/287339.html

相关文章:

  • Javascript--流程控制
  • 新定义51单片机(RD8G37)实现测距测速仪
  • Unity中URP下获取每一个额外灯数据
  • 差分进化算法求解基于移动边缘计算 (MEC) 的无线区块链网络的联合挖矿决策和资源分配(提供MATLAB代码)
  • Tomcat Notes: Web Security, HTTPS In Tomcat
  • 智能小程序登陆能力开发文档及示例代码
  • 常见の算法
  • openssl3.2/test/certs - 041 - 1024-bit leaf key
  • 「创新引领未来」科东软件荣获第十二届中国创新创业大赛(广东·广州赛区)优胜奖
  • Linux下安装 Redis7
  • spire.doc合并word文档
  • 蓝桥杯官网填空题(01串的熵)
  • 【CodeTop】TOP 100 刷题 51-60
  • k8s的图形化工具---rancher
  • npm安装卡住问题(最新版)
  • 什么是线程死锁
  • Django从入门到精通(二)
  • 建筑物防雷检测安全接地应用解决方案
  • 支付宝小程序开发踩坑笔记(支付宝、学习强国小程序)
  • 如何降低微服务复杂度丨云栖大会微服务主题分享实录
  • openresty 安装, nginx与 openresty
  • puppeteer实现截图
  • 【2024Java面试突击】并发编程、线程池面试实战
  • ASUS华硕无畏Pro15笔记本电脑(M6500QB,M6500QH)工厂模式原厂OEM预装Windows11.22H2系统 含Recovery恢复
  • 代码随想录算法训练营第三十天|51. N皇后
  • Kubernetes(K8S)各种攻击方法
  • 【MySQL】内外连接
  • selenium执行出现异常,SessionNotCreatedException ChromeDriver only supports
  • Flink:快速掌握批处理数据源的创建方法
  • 基于cubeMX的正点原子miniSTM32对W25Q64的存储使用