yocto 下基于SDK的 tcpdump 移植

系列文章目录

【1】yocto系统构建

【2】yocto下mosquitto用户名和密码配置

【3】yocto 下基于SDK的 tcpdump 移植


文章目录


前言

tcpdump 是一个强大的网络数据包分析工具,可以捕获并显示通过网络接口传输的TCP/IP和其他协议数据包。它通常用于网络故障排查、性能监测以及安全分析等场合。在Yocto项目中,移植tcpdump到目标设备可以大大增强其网络分析能力,帮助开发者和运维人员更好地理解网络通信。

前段时间,拿到一块板子上并没有tcpdump 工具,对于一个涉及网络开发人员来说,没有这个工具开发定位问题很不方便,简直不可忍受,这边90%的网络问题定位诊断都依靠它了,不知道大家有没有和我一样的感受,这边记录下总结下yocto上基于SDK环境移植tcpdump 的过程,这个工具经常会用到的,方便其他平台上也有类似需求,供后面回顾,减少重复性工作。


一、移植tcpdump的意义

1.网络排错:在嵌入式设备中,网络问题往往难以下判断。tcpdump 提供实时网络流量监控,帮助开发者快速定位问题。

2.数据包分析:抓取并分析网络数据包,可以帮助开发者优化应用性能,减少不必要的网络开销。

3.安全监测:通过抓包分析,能够识别潜在的网络攻击或异常流量,增强设备的安全性。

开发调试:在网络应用开发过程中,tcpdump可以作为重要的调试工具,帮助开发者理解网络协议的工作原理和数据交互方式。

二、移植步骤

1. 准备Yocto环境

确保你的工作环境中已正确设置Yocto,并且安装了所有必要的工具。你需要有一个有效的Yocto构建环境和相应的目标设备支持。

我这边编译主机及SDK工具链环境如下:

c 复制代码
iot@iot:~/som361/IOT/open_src$ cat /etc/os-release 
NAME="Ubuntu"
VERSION="18.04.6 LTS (Bionic Beaver)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 18.04.6 LTS"
VERSION_ID="18.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=bionic
UBUNTU_CODENAME=bionic
iot@iot:~/som361/IOT/open_src$ echo $CC
arm-poky-linux-gnueabi-gcc -march=armv7ve -marm -mfpu=neon -mfloat-abi=hard -mcpu=cortex-a7 --sysroot=/home/iot/som361/toolchain/sysroots/cortexa7hf-neon-poky-linux-gnueabi

目标机器环境如下:

c 复制代码
root@imx6ull14x14evk:~# cat /etc/os-release 
ID="fsl-imx-xwayland"
NAME="NXP i.MX Release Distro"
VERSION="4.14-sumo (sumo)"
VERSION_ID="4.14-sumo"
PRETTY_NAME="NXP i.MX Release Distro 4.14-sumo (sumo)"

2.获取源码,配置和编译

编写脚本 vi build_tcpdump.sh:

c 复制代码
#!/bin/bash 

# 交叉编译工具链的路径 
export SYSROOT=/home/iot/som361/toolchain/sysroots/cortexa7hf-neon-poky-linux-gnueabi

#下载源码
wget https://www.tcpdump.org/release/tcpdump-4.9.3.tar.gz

#解压源码
tar -xvf tcpdump-4.9.3.tar.gz

cd tcpdump-4.9.3

# 配置
./configure --host=arm-poky-linux-gnueabi --prefix=/home/iot/som361/IOT/open_src/install_tcpdump_dir CFLAGS="--sysroot=$SYSROOT" CXXFLAGS="--sysroot=$SYSROOT"

# 编译安装
make
make install

给脚本执行权限并执行

c 复制代码
chmod 777 build_tcpdump.sh
./build_tcpdump.sh

执行成功后结果如下

可以看到install_tcpdump_dir/sbin/目录下成功生成 tcpdump, tcpdump.4.9.3

3.移植到目标设备

可用scp 命令或可视化工具,拷贝tcpdump到目标板子 /usr/bin下,

并给可执行权限 chmod 777 tcpdump

c 复制代码
root@imx6ull14x14evk:~# ls -l /usr/bin/tcpdump
-rwxr-xr-x 1 root root 2061836 Oct 30 14:28 /usr/bin/tcpdump

4.测试tcpdump

在设备上运行以下命令,我这边用web端UI操作了下,可以看到抓到数据:

---

总结

在Yocto下移植tcpdump可以极大增强嵌入式设备的网络分析能力,帮助开发者解决各种网络相关问题。通过上述步骤,您将能够在自己的Yocto项目中成功集成和使用tcpdump。希望这篇博文能够为您的工作提供帮助!

***你好,我是阿灿,慢慢理解世界,慢慢更新自己。

相关推荐
se-tester5 天前
JMeter、Postman 和 SoapUI 在做接口测试上的优势和缺点
测试工具·jmeter·接口测试·postman·soapui
xixi09245 天前
selenium IDE——command
selenium·测试工具
代码游侠5 天前
STM32开发——基础外设
linux·运维·arm开发·stm32·单片机·嵌入式硬件·学习
xixi09245 天前
selenium IDE安装使用教程
ide·selenium·测试工具
代码游侠6 天前
Linux驱动复习——驱动
linux·运维·arm开发·笔记·学习
Wpa.wk6 天前
har文件转为接口自动化测试用例
运维·测试工具·自动化·测试用例·接口自动化
Wpa.wk6 天前
ubuntu22桌面版安装
经验分享·测试工具
古译汉书6 天前
【IoT死磕系列】Day 6:工业控制底层大动脉—CAN总线
linux·网络·arm开发·单片机·物联网·tcp/ip
007张三丰6 天前
软件测试专栏(6/20):Selenium从0到1实战指南:元素定位、等待机制与框架封装
selenium·测试工具