本文以Anycloud37D平台为例,介绍tcpdump工具的移植过程。
适用于Anycloud37D/Anycloud37E/Ancloud39EV330.
1. 环境介绍
1.1 Anyka工具链
工具链使用arm-anykav500-linux-uclibcgnueabi_V1.0.05:
gcc version 4.9.4 (Buildroot 2018.02.7_V1.0.05-gec2d034)
1.2 代码下载
官方网站:http://www.tcpdump.org/
需要下载libpcap包和tcpdump包:
- libpcap-1.10.4.tar.gz
- tcpdump-4.99.4.tar.gz
2. 移植编译
编译时需要将libpcap、tcpdump放在同一目录下。
2.1 libpcap
tar xzf libpcap-1.10.4.tar.gz
cd libpcap-1.10.4/
./configure --prefix=$PWD/install --host=arm-anykav500-linux-uclibcgnueabi --with-pcap=linux
make
make install
2.2 tcpdump
tar -xzf tcpdump-4.99.4.tar.gz
cd tcpdump-4.99.4/
./configure --prefix=$PWD/install --host=arm-anykav500-linux-uclibcgnueabi LDFLAGS="-static"
make
make install
其中 LDFLAGS="-static"
主要目的是静态编译tcpdump工具,如使用静态编译则可以去掉。
编译完成后将install目录下tcpdump工具拷贝至设备测试:
/mnt # ./tcpdump.4.99.4 --version
tcpdump.4.99.4 version 4.99.4
libpcap version 1.10.4 (with TPACKET_V3)
可以通过strp命令减少tcpdump大小:arm-anykav500-linux-uclibcgnueabi-strip tcpdump