小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

linux下類似Bus Hound的工具

 lchjczw 2012-03-28
0
推薦在linux大家有時候需要調(diào)試usb接口的串口消息,但是沒有類似于windows下的bus hound工具,感覺比較痛苦,其實linux內(nèi)核提供了usbmon這個工具,可以收集串口信息。

1.準(zhǔn)備:

掛接debugfs (這個可以在內(nèi)核配置中使能),加載usbmon模塊(如果usbmon編譯成模塊). 如果usbmon編譯到內(nèi)核中的話,第二步可以省略

# mount -t debugfs none_debugs /sys/kernel/debug
# modprobe usbmon
#

確定bus數(shù)據(jù)已經(jīng)準(zhǔn)備就緒

# ls /sys/kernel/debug/usb/usbmon
0s  0u  1s  1t  1u  2s  2t  2u  3s  3t  3u  4s  4t  4u
#

現(xiàn)在你就可以選擇要么使用'0u'(抓bus上的所有包),并且直接跳到第三步,或者進行第二步找到你設(shè)備所在的bus,這樣就過濾掉很多煩人的信息

2. 查找設(shè)備所在的bus
運行"cat /proc/bus/usb/devices", 就會發(fā)現(xiàn)設(shè)備T開頭的行.T行有一個bus口,如下所示
 T:  Bus=03 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=0557 ProdID=2004 Rev= 1.00
 S:  Manufacturer=ATEN
 S:  Product=UC100KM V2.00
 Bus=03 說明它在bus3口上

3. 開始查看信息
# cat /sys/kernel/debug/usb/usbmon/3u > /tmp/1.mon.out

命令用來監(jiān)聽某個bus口,要么你可以監(jiān)聽所有的bus口

# cat /sys/kernel/debug/usb/usbmon/0u > /tmp/1.mon.out
* 數(shù)據(jù)格式
現(xiàn)在支持兩種數(shù)據(jù)格式: '1t'格式和'1u'格式. '1t' 在內(nèi)核 2.6.21上不支持. '1u'數(shù)據(jù)格式增加了一些數(shù)據(jù)項,如:ISO框架信息,間隔時間等.它產(chǎn)生了稍微多余的行,但是確實是'1t'格式的有效補充.
數(shù)據(jù)內(nèi)容的詳細說明(從左到右)
- URB Tag. URB地址

- Timestamp, 間隔時間

- Event Type. 時間類型.
支持的類型是: S - submission, C - callback, E - submission error.

- "Address" (通常是一個"管道").它包括4項內(nèi)容,用冒號分割: URB type ,direction, Bus number, Device address, Endpoint number.
Type和direction被封裝成如下數(shù)據(jù)格式:
Ci Co   Control input and output
Zi Zo   Isochronous input and output
Ii Io   Interrupt input and output
Bi Bo   Bulk input and output
Bus number, Device address, 和Endpoint是十進制數(shù)字, 但是他們可能因為閱讀便利而設(shè)置成為0.

- URB Status word. 這個要么是字母或者是一些由分號隔開的數(shù)字

- Setup packet, 如果出現(xiàn)的話,包括5個字串: 他們是bmRequestType,bRequest, wValue, wIndex, wLength, (USB Specification 2.0.協(xié)議中有詳細介紹)

- 同步號

- Data Length. 數(shù)據(jù)長度

- Data tag. 即使數(shù)據(jù)長度不為0,usbmon也不一定總能捕捉到數(shù)據(jù),數(shù)據(jù)包內(nèi)容只有在此tag為'='才有效

- Data words 大頭十六進制數(shù).
舉例:
輸入控制得到端口狀態(tài)的示例
d5ea89a0 3575914555 S Ci:1:001:0 s a3 00 0000 0003 0004 4 <
d5ea89a0 3575914560 C Ci:1:001:0 0 4 = 01050000
 
通過bus5口發(fā)送一個31字節(jié)長度的塊包(其中保存一個SCSI命令 0x5E )到存儲設(shè)備
dd65f0e8 4128379752 S Bo:1:005:2 -115 31 = 55534243 5e000000 00000000 00000600 00000000 00000000 00000000 000000
dd65f0e8 4128379808 C Bo:1:005:2 0 31 >


詳細信息請參閱:http://www./kernel/Documentation/usb/usbmon.txt

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多