USB设备检测也是通过/proc目录下的USB文件系统进行的。为了使一个USB设备能够正常工作,必须要现在系统中插入USB桥接器模块。在检测开始时,一般要先检测是否存在/proc/bus/usb目录,若不存在则尝试插入USB桥接模块。

现在一般的USB桥接器模块有两种类型,UHCI和OHCI。在决定插入那一个桥接器模块时,可以察看/proc/pci文件来决定。打开此文件,您若发现USB节为 I/O at 0xHHHH格式(例如出现 I/O at 0xe000 [0xe01f]),HHHH为16进制数,则桥接器类型为UHCI。若是它为32 bit memory at 0xHH000000形式(例如出现32 bit memory at 0xee000000),HH为16进制数,则桥接器类型为OHCI。但是若您的桥接器类型不满足上述任何一种情况,唯一的解决办法就是您尝试插入这两种模块,直到成功为止。一般而言,UHCI类型的桥接器它的插入模块是uhci或usb-uhci(由内核版本决定);而对于OHCI类型的桥接器它的插入模块是ohci或usb-ohci。

您在正确的插入了桥接器模块之后,这时/proc文件系统下就会出现USB设备目录,不过这时这个目录是空的,没有任何文件。这时您就必须挂接usbdevfs文件系统,然后通过此文件系统检测连接的设备。在成功挂接usb文件系统之后,就会生成文件/proc/bus/usb/devices,/proc/bus/usb/drivers和目录/proc/bus/usb/busNo。挂接usbdevfs文件您可以通过如下操作实现:

mount -t usbdevfs none /proc/bus/usb或在/etc/fstab上加入none /proc/bus/usb usbdevfs defaults 0 0

然后通过/proc/bus/usb/devices文件的内容,您就可以获得连接的设备信息,包括设备标识和制造商标是等信息。

usb设备类型描述:

设备规范 设备类码 接口类码

应用程序特定 - 0xFE

声音接口 0x00 0x01

通信设备 0x02 -

CDC控制接口 - 0x02

CDC数据接口 - 0x0A

HID 0x00 0x03

HUB 0x09 0x09

批量存储设备 0x00 0x08

监视器 same as HID same as HID

电源设备 same as HID same as HID

物理设备 - 0x05

打印机 - 0x07

供应商特定 - 0xFF

5.2 usb文件系统简介

T = 总线拓扑结构(Lev, Prnt, Port, Cnt, 等),是指USB设备和主机之间的连接方式

B = 带宽 (仅用于USB主控制器)

D = 设备描述信息

P = 产品标识信息

S = 串描述符

C = 配置描述信息 (* 表示活动配置)

I = 接口描述信息

E = 终端点描述信息

一般格式:

d = 十进制数

x = 十六进制数

s = 字符串

拓扑信息

T: Bus=dd Lev=dd Prnt=dd Port=dd Cnt=dd Dev#=ddd Spd=ddd MxCh=dd

| | | | | | | | |__最大子设备

| | | | | | | |__设备速度(Mbps)

| | | | | | |__设备编号

| | | | | |__这层的设备数

| | | | |__此设备的父连接器/端口

| | | |__父设备号

| | |__此总线在拓扑结构中的层次

| |__总线编号

|__拓扑信息标志

带宽信息

B: Alloc=ddd/ddd us (xx%), #Int=ddd, #Iso=ddd

| | | |__同步请求编号

| | |__中断请求号

| |__分配给此总线的总带宽

|__带宽信息标志

设备描述信息和产品标识信息

D: Ver=x.xx Cls=xx(s) Sub=xx Prot=xx MxPS=dd #Cfgs=dd

P: Vendor=xxxx ProdID=xxxx Rev=xx.xx

D: Ver=x.xx Cls=xx(sssss) Sub=xx Prot=xx MxPS=dd #Cfgs=dd

| | | | | | |__配置编号

| | | | | |______缺省终端点的最大包尺寸

| | | | |

| | | | |__设备协议

| | | |__设备子类型

| | |__设备类型

| |__设备USB版本

|__设备信息标志编号#1

P: Vendor=xxxx ProdID=xxxx Rev=xx.xx

| | | |__产品修订号

| | |__产品标识编码

| |__制造商标识编码

|__设备信息标志编号#2

串描述信息

S: Manufacturer=ssss

| |__设备上读出的制造商信息

|__串描述信息

S: Product=ssss

| |__设备上读出的产品描述信息,对于USB主控制器此字段为"USB *HCI Root Hub"

|__串描述信息

S: SerialNumber=ssss

| |__设备上读出的序列号,对于USB主控制器它是一个生成的字符串,表示设备标识

|__串描述信息

配置描述信息

C: #Ifs=dd Cfg#=dd Atr=xx MPwr=dddmA

| | | | |__最大电流(mA)

| | | |__属性

| | |__配置编号

| |__接口数

|__配置信息标志

接口描述信息(可为多个)

I: If#=dd Alt=dd #EPs=dd Cls=xx(sssss) Sub=xx Prot=xx Driver=ssss

| | | | | | | |__驱动名

| | | | | | |__接口协议

| | | | | |__接口子类

| | | | |__接口类

| | | |__中断点数

| | |__可变设置编号

| |__接口编号

|__接口信息标志

终端点描述信息

E: Ad=xx(s) Atr=xx(ssss) MxPS=dddd Ivl=dddms

E: Ad=xx(s) Atr=xx(ssss) MxPS=dddd Ivl=dddms

| | | | |__间隔

| | | |__终端点最大包尺寸

| | |__属性(终端点类型)

| |__终端点地址(I=In,O=Out)

|__终端点信息标志 '

posted on 2005-08-15 10:14 cyberfan 阅读(73) 评论(0)  编辑 收藏 引用 所属分类: linux/unix

linux usb检测工具,Linux下USB设备检测全教程相关推荐

  1. win10用什么软件测试硬件,Win10系统下硬件设备检测工具的使用方法

    在win10系统中,自带有硬件设备检测工具,当电脑遇到故障的时候就可以用这个工具来检测并处理,可是许多win10系统用户并不知道要怎么使用硬件设备检测工具,接下来小编就给大家分享一下Win10系统下硬 ...

  2. Linux漏洞建议工具Linux Exploit Suggester

     Linux漏洞建议工具Linux Exploit Suggester 在Linux系统渗透测试中,通常使用Nessus.OpenVAS对目标主机进行扫描,获取目标主机可能存在的漏洞.如果无法进行漏洞 ...

  3. linux下硬件检测工具,Linux硬件检测工具

    Linux下的硬件检测和识别软件,做得比较完善了.选购Laptop,如果是自带Linux系统,完全可以用它们来检测硬件. 首先出场的当然是: 1. dmidecode  www.nongnu.org/ ...

  4. 硬盘检测工具+linux,linux硬盘检测工具:Smartmontools使用指南

    linux硬盘检测工具:Smartmontools使用指南 来源:互联网 作者:佚名 时间:2013-04-10 13:32 在服务器管理的实际环境中,硬盘是最容易出现问题及发生故障的硬件,而且硬盘中 ...

  5. linux硬盘检测工具,CrazyDiskInfo 硬盘检测工具 Linux版 | 厘米天空

    之前本站介绍过CrystalDiskInfo这款windows下的硬盘检测工具,今天来看看Linux下的版本CrazyDiskInfo.CrazyDiskInfo是一款用于Unix类系统的交互式TUI ...

  6. linux java测试工具_Linux下Java虚拟机状态监测工具

    Linux下Java虚拟机状态检测工具 工具名称: jps     JVM Process Status Tool - Lists instrumented HotSpot Java virtual ...

  7. linux c语言工具,Linux下C语言编程环境的工具.doc

    Linux下C语言编程环境的工具 Linux下C语言编程环境的工具 Linux下C语言编程环境的工具 要想在Linux下进行C语言编程,首先得搭建好一个编程环境.这里分别说明一下几个非常有用的软件包. ...

  8. linux 系统arp检测工具,linux网络常用诊断工具

    ping命令是检测网络通讯链路状况工具之一,主要用于查看网络上另一个主机系统的网络连接是否正常. 参数: -c   设置完成要求回应的次数. -f   极限检测. -i   指定收发信息的间隔时间. ...

  9. Linux命令辅助工具,linux命令快查小助手

    linux命令快查小助手是一款使用易语言编写的简单Linux系统快捷键查询工具,支持中文模糊查询,可右键复制命令,查看命令详情,对于使用linux系统的朋友来说非常实用!有需要的小伙伴欢迎来西西下载体 ...

最新文章

  1. Android shape 绘制左右 或者上下的渐变色
  2. java出现no XXX in java.library.path的解决办法及eclipse配置
  3. eq linux_linux之shell编程(二)
  4. 驰骋工作流程引擎,ccflow,如何把子线程的数据汇总到合流节点表单中去?
  5. tensorboard的可视化及模型可视化
  6. 【图像处理】——图像滤波(Python+opencv实现三种方法:均值滤波、中值滤波、高斯滤波等)
  7. vue 编辑弹框,编辑页面,列表数据也会跟着变
  8. 东京疫情数据开源当日斩获2k+ star,GitHub疫情项目源源不断
  9. 配置IIS Express 7.5以允许外部访问
  10. IDEA写java的一些快捷键
  11. JDBC batch批处理Statement executeBatch 具体解释
  12. qq空间把android改成iphone,qq空间利用代码修改iPhone6 Plus详细方法 qq空间修改手机型号教程...
  13. Linux常用命令和Vi编辑器操作
  14. selenium自动化学习--截取长图的方法
  15. Scrum板与Kanban如何抉择?vfmzulfdr板与按照ftjzox
  16. 计算机老师感言,信息技术教师感言
  17. 生信宝典:生物信息学习系列教程、视频教程
  18. 被全球数10万顶尖程序员关注收藏!这些JavaScript项目到底强在哪里?
  19. 【案例分享】项目施工进度报告 - 树形报表
  20. Smartbi:银行数字化转型案例分享

热门文章

  1. MATLAB小波变换图像处理简单示例
  2. javax.crypto.Cipher类--加密和解密
  3. opencv h264压缩视频
  4. vs2015单元测试 - error LNK2011: 未链接预编译对象;映像可能不能运行
  5. Java开源项目管理工具大全
  6. C语言execvp实现简易Shell的两种方法
  7. 实现strStr()
  8. strstr strcmp
  9. 根据设备不同,加载不同尺寸图片
  10. java高级面试题(易错题)