本文研究在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
四. 测试
相关推荐
网上看到的,略做了修改,试过了。在每一步介绍了要用到的软件,相应去下载或找我要都行
基于linux的snort源码,以及所有需要的相关服务,一次下完,安装无忧!注:安装步骤上百度,一搜就有。
libpcap_1.0.0-2_ar71xx.ipk 你使用路由器进行交叉编译和上网时候,使用mentohust需要用的的库
libcap6410交叉编译测试代码可以获取当前完整数据包..相关资料可以到本人博客查看.
已经交叉编译好的libpcap的ipk包,适用于OpenWrt路由器。 Package architecture:mips_24kc,自己在Target:ar71xx-ath79,Device:Netgear WNDR3700v2(WNDR3800)上测试通过,其他类似路由器硬件应该也可以使用。 ...
gxgk-zte ...老的客户端源代码搬迁 yzx老师把源代码寄放在Google代码上,但是Google代码大部分人已经访问不了了,我就把其搬迁到... 编译方法之一:下载openwrt并编译或用sdk,利用openwrt的gcc交叉编译(设置环境变量)
海思arm-hisiv300-linux- 交叉编译 tcpdump libpcap-1.8.1.tar.gz tcpdump-4.9.0 tcpdump-4.9.0.tar.gz 字数补丁
安霸arm-linux-gnueabihf- 交叉编译 tcpdump libpcap-1.8.1.tar.gz tcpdump-4.9.0 tcpdump-4.9.0.tar.gz 字数补丁
哈工大威海某大神写的客户端认证端源码,锐捷公司的,802.1x协议和UDP协议认证,屌的一批,非常具有参考价值,并且可以交叉编译进openwrt路由器。使用了boost库和libpcap和libpthread。
已经交叉编译好的mentohust 0.3.1的ipk包,适用于OpenWrt路由器的锐捷认证(802.1x)。 Package architecture:mips_24kc 自己在Target:ar71xx-ath79,Device:Netgear WNDR3700v2(WNDR3800)上测试通过,其他类似...