本文研究在openwrt的路由器(基于ARM架构)上用libpcap采集数据包。
一. 安装ARM交叉编译环境
下载openwrt源码,编译时勾取 Build OpenWrt Toolchain。编译过程参见:http://tcspecial.iteye.com/blog/2280873
二. 下载源码
libpcap只有同一套源码,支持嵌入式编译,没有单独的嵌入式版本。
wget http://www.tcpdump.org/release/libpcap-1.4.0.tar.gz tar -xzvf libpcap-1.4.0.tar.gz cd libpcap-1.4.0
三. 编译libpcap
3.1 设置交叉编译环境
因为libpcap是运行在路由器上的,因此要用arm-openwrt-linux-gcc 工具来编译。
#armenv.sh Workdir=~/openwrt-arm export STAGING_DIR=${Workdir}/bin export PATH=${Workdir}/bin:$PATH export CROSS_COMPILE=arm-openwrt-linux- export CROSS_PREFIX=arm-openwrt-linux- export CC=${CROSS_PREFIX}gcc export STRIP=${CROSS_PREFIX}strip export AR=${CROSS_PREFIX}ar export RANLIB=${CROSS_PREFIX}ranlib export OBJCOPY=${CROSS_PREFIX}objcopy
source ~/mipsenv.sh ./configure --prefix=/home/ubuntu/libpcap-arm --host=arm-openwrt-linux
注:MIPS平台,指定 --host=mips-openwrt-linux
出错提示:
configure: error: pcap type not determined when cross-compiling; use --with-pcap=...
方法一:添加--with-pcap参数,指定采集类型
./configure --prefix=/home/ubuntu/libpcap-arm --host=arm-openwrt-linux --with-pcap=linux
方法二:注释该段代码
Line 7210
vi configure #if test -z "$with_pcap" && test "$cross_compiling" = yes; then # { { echo "$as_me:$LINENO: error: pcap type not determined when cross-compiling; use --with-pcap=..." >&5 #echo "$as_me: error: pcap type not determined when cross-compiling; use --with-pcap=..." >&2;} { (exit 1); exit 1; }; } #fi
make && make install
四. 测试
相关推荐
libpcap交叉编译 libpcap是一种流行的网络嗅探器库,它提供了一个跨平台的接口来捕获和分析网络流量。下面是关于libpcap交叉编译的知识点: 交叉编译环境配置 在开始编译libpcap之前,需要首先配置交叉编译环境。...
完成交叉编译后,确保动态链接库(如libpcap.so)和对应的头文件(如pcap.h)已经正确放置。动态链接库应放在系统的动态库路径下,比如/lib或/usr/lib,而头文件则应放在/usr/local/include或其他包含路径中。 **...
在ARM架构上编译iftop涉及到交叉编译环境的搭建以及对依赖库如libpcap和ncurses的编译。 #### 二、准备工作 在开始编译之前,确保已经完成以下步骤: 1. **准备开发环境**:确保您的开发环境已经安装了必要的...
- **依赖库**:确保所有必要的库(如libpcap、openssl等)都已为AT91RM9200进行了交叉编译并可用。 - **配置文件**:根据你的具体需求,可能需要创建或修改PPPD的配置文件(如`pppd.conf`)。 - **设备驱动**:确保...
交叉编译指南.txt文件则可能包含了一套详细的过程,指导用户如何在不同的硬件平台或操作系统上编译tcpdump和libpcap。交叉编译是将软件编译为运行在不同架构上的目标代码的过程,这对于在嵌入式系统或资源有限的环境...
这个压缩包包含了Snort 2.9.0.5的源代码,以及与其配合使用的几个关键库,包括DAQ(Data Acquisition)、libdnet、libpcap和pcre。 1. Snort 2.9.0.5: 这是Snort的一个版本,它能够通过解析网络流量来识别已知的...
标题中的"compile-tcpdump.tar.gz"是一个压缩文件,它包含了一个用于交叉编译tcpdump的脚本和源代码。tcpdump是一款强大的网络封包分析软件,常被用来捕获和分析网络流量,帮助网络管理员监控、调试和解决网络问题。...
首先,需要安装增强工具和交叉编译工具,并将其解压缩到对应的目录中。然后,需要安装一些必要的工具,例如 bison、flex 和 build-essential。 接下来,需要下载 libpcap 源码,并将其解压缩到 cross 目录中。然后...
libpcap_1.0.0-2_ar71xx.ipk 你使用路由器进行交叉编译和上网时候,使用mentohust需要用的的库
libcap6410交叉编译测试代码可以获取当前完整数据包..相关资料可以到本人博客查看.
- 解压源码至`cross`目录,修改Makefile以适应交叉编译,指定`CC`为`mipsel-linux-uclibc-g++`,并添加相应的编译标志和静态链接libpcap。 8. **Makefile修改**: - 更改Makefile的目标和规则,使其使用交叉...
已经交叉编译好的libpcap的ipk包,适用于OpenWrt路由器。 Package architecture:mips_24kc,自己在Target:ar71xx-ath79,Device:Netgear WNDR3700v2(WNDR3800)上测试通过,其他类似路由器硬件应该也可以使用。 ...
然后,从DD-WRT官方网站下载交叉编译工具`toolchains.x86.debian.sp1.tar.bz2`,解压并将其中的`4.1.0-uclibc-0.9.28`移动到`tools`目录,并重命名为`dd`。这个工具编译的程序可以在Tomato和DD-WRT上运行。 为了...
这涉及到交叉编译技术,即在一种架构上编译出适用于另一种架构的软件。以下是详细步骤和知识点: 首先,你需要一个Ubuntu Linux环境,这里建议在Vista系统上的VirtualBox中安装。安装完成后,创建几个关键目录,如`...
《Beaglebone交叉编译代码演示》 在嵌入式系统开发中,交叉编译是一项重要的技术,它允许我们在宿主机(通常是PC或Linux系统)上为目标平台(如Beaglebone)构建软件。Beaglebone是一款基于ARM架构的开源硬件开发板...
海思arm-hisiv300-linux- 交叉编译 tcpdump libpcap-1.8.1.tar.gz tcpdump-4.9.0 tcpdump-4.9.0.tar.gz 字数补丁
交叉编译是为不同架构的目标平台编译软件的过程,对于ARM设备,我们需要安装对应的交叉编译工具链,例如arm-linux-gnueabi-gcc。确保工具链安装无误后,可以开始下载pppd和chat的源代码。通常,你可以通过访问它们的...
gxgk-zte ...老的客户端源代码搬迁 yzx老师把源代码寄放在Google代码上,但是Google代码大部分人已经访问不了了,我就把其搬迁到... 编译方法之一:下载openwrt并编译或用sdk,利用openwrt的gcc交叉编译(设置环境变量)
tcpdump源码编译,需要多个部件的源码进行顺序编译而成。...libpcap-1.10.4.tar.gz tcpdump-4.99.4.tar.gz tar xvf *.tar解压后,分别执行./configure 和make install(root执行),即可编译和安装好tcpdump