1. 程式人生 > >嵌入式系統下TCPDUMP的移植

嵌入式系統下TCPDUMP的移植

     TcpDump的作用就不用多說了,顧名思義,TcpDump可以將網路中傳送的資料包的“頭”完全截獲下來提供分析。它支援針對網路層、協議、主機、網路或埠的過濾,並提供and、or、not等邏輯語句來幫助你去掉無用的資訊。目前tcpdump工具主要在x86平臺上使用和移植,在嵌入式平臺下還是比較少。最近由於專案需要移植網絡卡驅動,然後參考了網上的文章在arm平臺下移植了tcpdump工具。 一、首先到tcpdump的開源網站http://www.tcpdump.org/下載工具的原始碼包,筆者此次下載了libpcap-1.0.0.tar.gztcpdump-4.0.0.tar.gz這兩個版本。 二、在/home/hlz目錄下建立編譯目錄tcpdumpsrc和安裝目錄tcpdumptools,把下載原始碼包解壓到此目錄下,例如:tar -zxvf libpcap-1.0.0.tar.gz  tar -zxvf tcpdump-4.0.0.tar.gz 三、首先編譯libpcap。 1、libpcap-1.0.0目錄下執行./configure --prefix=/home/hlz/tcpdumptools --host=arm-linux --target=arm-linux CC=/your-cross-compile-tool-dir/bin/arm-linux-uclibc-gcc
注:如果該步驟提示錯誤,請到configure中註釋掉相應的檢查,應該不影響結果。 2、執行make ;make install,編譯完成之後,會在/home/hlz/tcpdumptools目錄下生成libpcap.a的庫。 四、編譯tcpdump工具 1、註釋掉configure檔案中的if test $ac_cv_linux_vers = unknown(如果不註釋,執行configure的時候應該會提示錯誤) 2、./configure --prefix=/home/hlz/tcpdumptools --host=arm-linux --target=arm-linux CC=/your-cross-compile-tool-dir/bin/arm-linux-uclibc-gcc
3、執行make,此步驟如果出現“error: invalid 'asm': invalid operand for code 'w'”的錯誤,我的修改方式是修改生成的makefile,修改INCLSDEFSLDFLAGSLIBS,把裡面的相關路徑都指定到你的交叉編譯路徑。 4、重新make ;make install 5、步驟四完成之後就會在/home/hlz/tcpdumptools/sbin/目錄下生成tcpdump工具