Linux怎么调试USB设备

发布时间:2022-02-14 10:25:45 作者:iii
来源:亿速云 阅读:386

本文小编为大家详细介绍“Linux怎么调试USB设备”,内容详细,步骤清晰,细节处理妥当,希望这篇“Linux怎么调试USB设备”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

lsusb命令用于显示本机的USB设备列表,以及USB设备的详细信息。lsusb命令是一个学习USB驱动开发,认识USB设备的助手,推荐大家使用,如果您的开发板中或者产品中没有lsusb命令可以自己移植一个,放到文件系统里面。

Linux怎么调试USB设备

系统环境

Centos7

安装usbutils

默认Centos7系统中没有lsusb命令,我们需要安装usbutils安装包,才能使用lsusb:

[root@localhost ~]# yum -y install usbutils

列出usb设备信息

lsusb用于显示有关系统中的USB总线及其连接的设备的信息,下面运行lsusb:

[root@localhost ~]# lsusbBus 001 Device 010: ID 0bda:0129 Realtek Semiconductor Corp. RTS5129 Card Reader Controller
Bus 001 Device 055: ID 0951:1665 Kingston Technology Digital DataTraveler SE9 64GB
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 003: ID 0e0f:0002 VMware, Inc. Virtual USB Hub
Bus 002 Device 002: ID 0e0f:0003 VMware, Inc. Virtual Mouse
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

Linux怎么调试USB设备 

lsusb将显示系统内部连接的驱动程序和设备。

上面输出内容解释如下: Bus 001 Device 055: ID 0951:1665 Kingston Technology Digital DataTraveler SE9 64GB

我们还看到,系统中还附有USB 2.0 root hub 驱动程序和USB 1.1 root hub 驱动程序。

使用树状类型显示usb信息

使用-t选项,以树状结构显示usb信息:

[root@localhost ~]# lsusb -t/:  Bus 04.Port 1: Dev 1,, Driver=xhci_hcd/4p, 5000M
/:  Bus 03.Port 1: Dev 1,, Driver=xhci_hcd/4p, 480M
   |__ Port 1: Dev 2, If 0, Storage, Driver=usb-storage, 480M
/:  Bus 02.Port 1: Dev 1,, Driver=uhci_hcd/2p, 12M
   |__ Port 1: Dev 2, If 0, Interface Device, Driver=usbhid, 12M
   |__ Port 2: Dev 3, If 0,, Driver=hub/7p, 12M
/:  Bus 01.Port 1: Dev 1,, Driver=ehci-pci/6p, 480M

Linux怎么调试USB设备 

数字12M、480M、5000M表示USB的传输速度。

Linux从/usr/share/hwdata/usb.ids’识别USB设备的详细信息。lsusb列出的vendor和device name都是从这个文件里面识别出来的。

如何列出USB详细信息

使用-v参数查看usb详细信息:

[root@localhost ~]# lsusb -v | lessBus 001 Device 056: ID 0951:1665 Kingston Technology Digital DataTraveler SE9 64GB
Device Descriptor:
 bLength                18
 bDescriptorType         1
 bcdUSB               2.00
 bDeviceClass            0 (Defined at Interface level)
 bDeviceSubClass         0
 bDeviceProtocol         0
 bMaxPacketSize0        64
 idVendor           0x0951 Kingston Technology
 idProduct          0x1665 Digital DataTraveler SE9 64GB
 bcdDevice            1.00
 iManufacturer           1 Kingston
 iProduct                2 DataTraveler 2.0
 iSerial                 3 08606E6B6612FD50771C2A8B
 bNumConfigurations      1
 Configuration Descriptor:
   bLength                 9
   bDescriptorType         2
   wTotalLength           32
   bNumInterfaces          1
   bConfigurationValue     1
   iConfiguration          0
   bmAttributes         0x80
     (Bus Powered)
   MaxPower              100mA
   Interface Descriptor:
     bLength                 9
     bLength                 9
     bDescriptorType         4
     bInterfaceNumber        0
     bAlternateSetting       0
     bNumEndpoints           2
     bInterfaceClass         8 Mass Storage
     bInterfaceSubClass      6 SCSI
     bInterfaceProtocol     80 Bulk-Only
     iInterface              0
     Endpoint Descriptor:
       bLength                 7
       bDescriptorType         5
       bEndpointAddress     0x81  EP 1 IN
       bmAttributes            2
         Transfer Type            Bulk
         Synch Type               None
         Usage Type               Data
       wMaxPacketSize     0x0200  1x 512 bytes
       bInterval             255
     Endpoint Descriptor:
       bLength                 7
       bDescriptorType         5
       bEndpointAddress     0x02  EP 2 OUT
       bmAttributes            2
         Transfer Type            Bulk
         Synch Type               None
         Usage Type               Data
       wMaxPacketSize     0x0200  1x 512 bytes
       bInterval             255
Device Qualifier (for other device speed):
 bLength                10
 bDescriptorType         6
 bcdUSB               2.00
 bDeviceClass            0 (Defined at Interface level)
 bDeviceSubClass         0
 bDeviceProtocol         0
 bMaxPacketSize0        64
 bNumConfigurations      1
Device Status:     0x0000
 (Bus Powered)

查找连接了多少个USB设备

查找链接的设备数量,可以使用下面命令查找:

[root@localhost ~]# find /dev/bus/dev/bus
/dev/bus/usb
/dev/bus/usb/002
/dev/bus/usb/002/003
/dev/bus/usb/002/002
/dev/bus/usb/002/001
/dev/bus/usb/001
/dev/bus/usb/001/056
/dev/bus/usb/001/010
/dev/bus/usb/001/001

Linux怎么调试USB设备 

结合使用lsusb命令和-D参数,可以输出特定设备的详细信息。下面实例查看金士顿存储设备的详细信息:

  Linux怎么调试USB设备

[root@localhost ~]# lsusb -D /dev/bus/usb/001/056
Linux怎么调试USB设备

查找大容量存储设备

lsusb -v为我们提供了非常详细的信息,我们可以配合使用grep命令查找指定的信息,下面过滤出idVendorMass Storage,来获取大容量存储设备:

[root@localhost ~]# lsusb -v |grep -Ei '(idVendor|Mass\ Storage)' idVendor           0x0bda Realtek Semiconductor Corp.
 idVendor           0x0951 Kingston Technology
     bInterfaceClass         8 Mass Storage
 idVendor           0x1d6b Linux Foundation
 idVendor           0x0e0f VMware, Inc.
 idVendor           0x0e0f VMware, Inc.
 idVendor           0x1d6b Linux Foundation

Linux怎么调试USB设备 

可以看到只有idVendor是Kingston Technology的设备才是大容量存储设备。

读到这里,这篇“Linux怎么调试USB设备”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注亿速云行业资讯频道。

推荐阅读:
  1. linux如何和USB设备批量传输数据
  2. android 设备调试

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

linux usb

上一篇:怎么在bios界面中关闭防病毒保护模式

下一篇:怎么查看Linux内核版本

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》