文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Linux怎么调试USB设备

2023-06-27 15:34

关注

本文小编为大家详细介绍“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 ControllerBus 001 Device 055: ID 0951:1665 Kingston Technology Digital DataTraveler SE9 64GBBus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hubBus 002 Device 003: ID 0e0f:0002 VMware, Inc. Virtual USB HubBus 002 Device 002: ID 0e0f:0003 VMware, Inc. Virtual MouseBus 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

  • Bus 001: 表示第一个usb控制器,可以使用lspci|grep USB查看主机有几个usb控制器
  • Device 055: 表示系统分配给这个金士顿存储设备的设备号
  • ID: 表示usb设备的ID
  • 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的传输速度。

  • 12M表示12Mbit / s,这是USB 1.0 / 1.1类型
  • 480M表示480Mbit / s,这是USB 2.0类型
  • 5000M表示5Gbit / s,这是USB3.0类型

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 64GBDevice 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             255Device 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      1Device 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设备”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注编程网行业资讯频道。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-人工智能
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯