openwrt下tcpdump抓取usb數(shù)據(jù)包

這兩天在看USB轉(zhuǎn)串口的驅(qū)動(dòng),并在想辦法解決一個(gè)4G設(shè)備通過(guò)USB插入openwrt后枚舉的串口無(wú)法收發(fā)的問(wèn)題。看了大概有一個(gè)星期了,大概把USB是什么搞清楚了。但是USB的世界實(shí)在是太復(fù)雜了,除了USB協(xié)議本身,枚舉出來(lái)的設(shè)備和系統(tǒng)中的其他總線總是有一腿,才剛接觸linux內(nèi)核的東西,感覺(jué)頭大,實(shí)在不是短時(shí)間能啃下來(lái)的。好了廢話不多說(shuō),先看看我處理tcpdump是怎么抓取usb總線數(shù)據(jù)的吧。

相關(guān)軟件

  • openwrt(我用的是bb版本,linux內(nèi)核3.10.49)
  • wireshark(我用的最新版本2.2.6)
  • tcpdump(抓包神器)
  • libpcap (tcpdump以來(lái)的庫(kù))
  • usbmonitor (usb數(shù)據(jù)包,就靠它了)

一,編譯openwrt支持tcpdump和libpcap

1.1, 在 menuconfig中選擇tcpdump和libpacap中的usb

Network-->
  [*] tcpdump

Libraries-->
  -*- libpcap-->
    Configuration--->
      [*] Include USB support  (注意這個(gè)一定要選上,否則你別想通過(guò)tcpdump抓usb包)

下面還有一個(gè) tcpdump mini,我沒(méi)有用,也沒(méi)管。

1.2, 在menuconfig 中選擇usbmointor

Kernel modules--->
  USB support-->
    [*] kmod-usbmon

1.3, 在kernel_menuconig 內(nèi)核配置中選擇usb monitor

Device Drivers -->
  [*] USB support  --->  
    <*>     USB Monitor 

二,執(zhí)行make編譯

三,下載到目標(biāo)板

具體的板子不一樣,我這里就不寫了

四,抓包

終于到了抓包了。

4.1,確認(rèn)一下你的設(shè)備在USB哪個(gè)總線上

$ cat /sys/kernel/debug/usb/devices

T:  Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#=  2 Spd=12   MxCh= 0
D:  Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs=  1
P:  Vendor=80ee ProdID=0021 Rev= 1.00
S:  Manufacturer=VirtualBox
S:  Product=USB Tablet
C:* #Ifs= 1 Cfg#= 1 Atr=80 MxPwr=100mA
I:* If#= 0 Alt= 0 #EPs= 1 Cls=03(HID  ) Sub=00 Prot=00 Driver=(none)
E:  Ad=81(I) Atr=03(Int.) MxPS=   8 Ivl=10ms

上面這個(gè)bus就表示總線號(hào),Dev#表示設(shè)備號(hào)。不同的總線對(duì)應(yīng)的usbmonx不一樣。例如BUS=1就對(duì)應(yīng)usbmon1,BUS=2對(duì)應(yīng)usbmon2。

4.2,查看tcpdump是否可以檢測(cè)到usbmonx設(shè)備

$ tcpdump -D
1.eth0
2.br-lan
3.usbmon1 (USB bus number 1)
4.any (Pseudo-device that captures on all interfaces)
5.lo

可以看到我這里有usbmon1設(shè)備可用了。

4.3,抓取usb數(shù)據(jù)

$ tcpdump -i usbmon1 -w usb.pcap

4.4,好了可以插入你想要抓取的USB設(shè)備了,抓取完成后,導(dǎo)出usb.pcap

4.5,用wireshark查看usb數(shù)據(jù)包

將導(dǎo)出的usb.pcap文件,用wireshark打開,就可以看看usb交互的數(shù)據(jù)流程了,看起來(lái)已經(jīng)比較直觀了。比起原始的usbmon數(shù)據(jù)直觀很多。


show一下效果

usb.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容