TCUDUMP 交叉编译及使用

原创 2016年08月31日 12:10:49

一:下载源码:libpcap-1.1.1.tar.gz  tcpdump-4.1.1.tar.gz

二:编译libpcap

首先生成makefile,按照标准的交叉编译方法进行。

1.

root@wang:/work/libpcap-1.1.1# ./configure --host=mipsel-linux --prefix=/work/tcpdump

configure: WARNING: If you wanted to set the --build type, don't use --host.

    If a cross compiler is detected then cross compile mode will be used.

checking build system type... i686-pc-linux-gnu

checking host system type... mipsel-unknown-linux-gnu

checking if --disable-protochain option is specified... enabled

configure: error: pcap type not determined when cross-compiling; use --with-pcap=...

2.

oot@wang:/work/libpcap-1.1.1# ./configure --host=mipsel-linux --prefix=/work/tcpdump --with-pcap=linux

configure: WARNING: If you wanted to set the --build type, don't use --host.

    If a cross compiler is detected then cross compile mode will be used.

checking packet capture type... linux

checking Linux kernel version... unknown

configure: error: cannot determine linux version when cross-compiling

找不到linux的版本号,在网上搜了一下,处理的方法是直接屏蔽掉configure退出的代码。http://blog.csdn.net/qiaoliang328/article/details/4593909 觉得这样不好,仔细的看了一下configure文件:

Configure 7216行:

linux)

{ echo "$as_me:$LINENO: checking Linux kernel version" >&5

echo $ECHO_N "checking Linux kernel version... $ECHO_C" >&6; }

  if test "$cross_compiling" = yes; then

  if test "${ac_cv_linux_vers+set}" = set; then

  echo $ECHO_N "(cached) $ECHO_C" >&6

else

  ac_cv_linux_vers=unknown

fi

确定我们使用的linux版本号时在这里出错,交叉编译找不到linux版本号,“ac_cv_linux_vers=unknown”, 查看SDK确定我们使用的linux版本号为:2.6.18修改configure文件“ac_cv_linux_vers=unknown”为:ac_cv_linux_vers=2.6.18

3.

重新configure 

root@wang:/work/libpcap-1.1.1# ./configure --host=mipsel-linux --prefix=/work/tcpdump --with-pcap=linux

configure: WARNING: If you wanted to set the --build type, don't use --host.

    If a cross compiler is detected then cross compile mode will be used.

checking build system type... i686-pc-linux-gnu

checking host system type... mipsel-unknown-linux-gnu

checking target system type... mipsel-unknown-linux-gnu

checking for mipsel-linux-gcc... mipsel-linux-gcc

4.

编译运行:make

root@wang:/work/libpcap-1.1.1# ls libpcap.*

libpcap.a  libpcap.so.1.1.1

root@wang:/work/libpcap-1.1.1# file libpcap.a

libpcap.a: current ar archive

root@wang:/work/libpcap-1.1.1# file libpcap.so.1.1.1

libpcap.so.1.1.1: ELF 32-bit LSB shared object, MIPS, MIPS32 version 1 (SYSV), dynamically linked, not stripped

三.编译tcpdump

1.

root@wang:/work/tcpdump-4.1.1# ./configure --host=mipsel-linux

configure: WARNING: If you wanted to set the --build type, don't use --host.

    If a cross compiler is detected then cross compile mode will be used.

checking build system type... i686-pc-linux-gnu

checking host system type... mipsel-unknown-linux-gnu

checking for mipsel-linux-gcc... mipsel-linux-gcc

checking Linux kernel version... unknown

configure: error: cannot determine linux version when cross-compiling

报同样的错误:按照libpcap的方法修改configure

2.

root@wang:/work/tcpdump-4.1.1# ./configure --host=mipsel-linux 

configure: WARNING: If you wanted to set the --build type, don't use --host.

    If a cross compiler is detected then cross compile mode will be used.

checking build system type... i686-pc-linux-gnu

checking host system type... mipsel-unknown-linux-gnu

checking for mipsel-linux-gcc... mipsel-linux-gcc

checking for local pcap library... ./../libpcap-1.1.1/libpcap.a

check的过程中可以看到会自动找到libpcap.a的位置。

root@wang:/work/tcpdump-4.1.1# ll tcpdump -h

-rwxr-xr-x 1 root root 969K 2011-10-14 15:36 tcpdump*

root@wang:/work/tcpdump-4.1.1# file tcpdump

tcpdump: ELF 32-bit LSB executable, MIPS, MIPS32 version 1 (SYSV), dynamically linked (uses shared libs), not stripped

四.利用交叉编译出来的tcpdump抓包,这样就不用使用hub了 ,O(_)O~(o)哦。

1.

把编译出来的tcpdump复制到nfs 挂载目录,板子mount到主机上。

root@wang:/work/tcpdump-4.1.1# cp tcpdump /nfs/hryl/rootfs/usr/local/bin/

# df

Filesystem           1K-blocks      Used Available Use% Mounted on

/dev/romblock5           42268     42268         0 100% /

none                     62400         8     62392   0% /tmp

/dev/mtdblock10          10240      1172      9068  11% /var

172.16.7.153:/nfs/hryl/rootfs/usr/

                      10319168   9209824    585152  94% /usr

# tcpdump -i eth0 tcp  -w test.pcap &     

# [KERNL][bcmemac_enet_ioctl] NET IOCTL

device eth0 entered promiscuous mode

tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes

2.

在板子上浏览网页,然后查看抓包:

# ls -lh test.pcap 

-rw-r--r--    1 root     root       926.9K Oct 14 08:10 test.pcap

我们抓得包在板子的/usr 目录, 就是主机的/nfs/hryl/rootfs/usr/在我们的主机上wireshare打开test.pcap


<script>window._bd_share_config={"common":{"bdSnsKey":{},"bdText":"","bdMini":"2","bdMiniList":false,"bdPic":"","bdStyle":"0","bdSize":"16"},"share":{}};with(document)0[(getElementsByTagName('head')[0]||body).appendChild(createElement('script')).src='http://bdimg.share.baidu.com/static/api/js/share.js?v=89860593.js?cdnversion='+~(-new Date()/36e5)];</script>
阅读(1930) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

dingyujie2013-04-02 17:24:52

文章很好,不过我有一事不明,想请博主指导一下:TCUDUMP是个神马东西???

评论热议
阅读全文
版权声明:本文为博主原创文章,转载请注明出处。

TCUDUMP 交叉编译及使用

一:下载源码:libpcap-1.1.1.tar.gz  tcpdump-4.1.1.tar.gz 二:编译libpcap 首先生成makefile,按照标准的交叉编译方法进行。 1. roo...
  • chituhuan
  • chituhuan
  • 2016年08月31日 12:10
  • 631

为Android-x86编译tcpdump工具

在谷歌和必应上搜索的Android-x86专用的tcpdump工具多半不能使用,它们基本上都是在ARM架构的安卓手机上使用的,而且版本都较为老旧。由于Android-x86的Linux内核是通用的32...
  • yang1982_0907
  • yang1982_0907
  • 2015年05月09日 15:29
  • 2408

移植libev4.15到arm linux

1.本文链接地址 2.环境 linux系统版本:Ubuntu 10.04 交叉编译工具:arm-linux-gcc4.5.2 嵌入式linux内核版本:Linux  2.6 3....
  • lz_obj
  • lz_obj
  • 2016年10月15日 09:51
  • 1050

Lighttpd交叉编译及使用

Web服务器的主要功能是提供网上信息浏览服务。目前主流的Web Server有apache、nginx和kangle等,不过上述这些都体能齐全、体积庞大,如果想要在嵌入式设备上使用它们,显然是不现实的...
  • djstavaV
  • djstavaV
  • 2015年08月20日 11:17
  • 622

NDK交叉编译tcpdump实现安卓抓包

下面介绍一下具体过程。 1.Git clone libpcap和tcpdump两个项目。 git clone https://github.com/the-tcpdump-group/tc...
  • xuqiqiang1993
  • xuqiqiang1993
  • 2017年03月27日 16:09
  • 826

tcpdump静态编译

Cross-Compiling or Building Android tcpdump? Building There are multiple ways of building or com...
  • shichaog
  • shichaog
  • 2015年12月21日 17:37
  • 1137

tcpdump交叉编译及使用

第一步.下载 官方网站:http://www.tcpdump.org/ 需要下载libpcap包和tcpdump包 我下载的版本是:libpcap-1.4.0.tar.gz和tcpdump-4....
  • paomadi
  • paomadi
  • 2013年07月23日 22:34
  • 5605

嵌入式web服务器lighttpd的交叉编译及配置--xilinx zynq

一、前言 最近项目用到嵌入式web服务器lighttpd,在网上找了相关材料并不是很齐全,在这里整理总结一下; 二、编译环境 centos 7.0 lighttp-1.4.39 pcre-8.38 p...
  • ace_28
  • ace_28
  • 2016年08月05日 12:47
  • 493

锐捷认证客户端在嵌入式linux平台上的移植

一、TCP/IP协议简介 IP协议用于将多个包交换网络连接起来,IP不提供可靠的传输服务,它不提供端到端的或(路由)结点到(路由)结点的确认,对数据没有差错控制,它只使用报头的校验码,它不提供重...
  • sd137635162
  • sd137635162
  • 2012年08月25日 23:04
  • 1061

使用交叉编译编译在OpenWRT上运行的程序

首先下载OpenWrt-SDK-Linux-i686-1.tar.bz2包,解压缩tar jxf  OpenWrt-SDK-Linux-i686-1.tar.bz2为了方便,可以做个链接ln -s /...
  • ffilman
  • ffilman
  • 2010年07月18日 22:21
  • 36094
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:TCUDUMP 交叉编译及使用
举报原因:
原因补充:

(最多只允许输入30个字)