close

LinuxUSB驅動程式除錯

:這是LinuxUSB驅動程式除錯--003Ubuntu下的準備工作的詳細頁面,介紹了和linux,有關的知識、技巧、經驗,和一些linux源碼等。

Ubuntu下的準備工作:

1)如何查看核心中的printk輸出: dmesg
    
再配合管道命令,   dmesg |head       dmesg |tail

    通過這個命令,我們可以看到內中的printk輸出的內容,這是很有用的一個

    工具。

 

2)的USB抓封包工具:usb_mon

 其實,Ubuntu下已經內置了USB抓封包工具---USB_MON 

【其實 make menuconfig 時候會讓我們選擇的】

使用方法如下:

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

查看當前的USB device
         # cat  /sys/kernel/debug/usb/devices
        
 
   下面的輸出:
  T:  Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 12 Spd=480 MxCh= 0
  D:  Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
  P:  Vendor=601a ProdID=4740 Rev= 1.00
  S:  Manufacturer=Ingenic
  S:  Product=JZ4740 USB Boot Device
  C:* #Ifs= 1 Cfg#= 1 Atr=c0 MxPwr=  2mA
  I:* If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=00 Prot=50 Driver=skeleton
  E:  Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
  E:  Ad=81(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
        
 
  如何看懂上面的輸出?  Documentation/usb/usbmon.txt
  Bus=01 means it's bus 1.

 

通過上面的 Vendor=601a ProdID 可以找到我們設備的Bus號。

上面Bus=01

使用下面的名利,就開始監聽 Bus01上的全部USB資料包。
     # cat  /sys/kernel/debug/usb/usbmon/1u
 

要想開始監聽 全部 Bus 上的全部USB資料包:
     # cat  /sys/kernel/debug/usb/usbmon/0u
    
 
  一旦有資料包,就會列印出來:
    # cat /sys/kernel/debug/usb/usbmon/1u
      f07dbb80 3233986312 S Co:1:012:0 s 40 01 80c0 0000 0000 0
      f07dbb80 3234327703 C Co:1:012:0 0 0
      f07dbb80 3234327880 S Co:1:012:0 s 40 02 0000 0200 0000 0
      f07dbb80 3234329561 C Co:1:012:0 0 0
      f07dbb80 3234329625 S Bi:1:012:1 -115 32 <
      f07dbb80 3234331550 C Bi:1:012:1 -75 32 = 00000000 00000000  
。。。

 

讀懂上面的資料,還是要看usbmon.txt

   URB tag  :標誌
   TimeStamp:毫秒數
   Event Type  S - submission,

                 C - callback,

                 E - submission error.


   URBTypeBusNoDeviceAddrEndPointNum
          Ci Co   Control input and output
          Zi Zo   Isochronous input and output
          Ii Io   Interrupt input and output
          Bi Bo   Bulk input and output
   URB Status
0為沒有錯誤。-XXX是錯誤碼。

arrow
arrow
    全站熱搜

    立你斯 發表在 痞客邦 留言(0) 人氣()