本文告诉大家如何获得设备的usb来进行判断是否有哪些usb和找不到usb可能是什么。...需要在项目右击引用,点击程序集,搜索 System.Management 然后安装他 然后使用下面的代码就可以获得设备的 usb 请看代码 static List<(string DeviceID...} collection.Dispose(); return devices; } 如果需要判断是否存在某个 usb...,就通过 pid vid 判断,判断的方法是拿PNPDeviceID字符串比较 参见:c# 获取移动硬盘信息、监听移动设备的弹出与插入事件 - Chris Cheung - 博客园 如果发现找不到 usb...,可能是在开机的时候进行找usb,一般需要开机之后很久才会把所有的设备添加,所以如果找不到,就看开机的时间,如果太短,那么可能是因为程序太快去查。
Linux 内核源码:include\linux\usb.h Linux 内核源码:drivers\hid\usbhid\usbmouse.c 1....BUS/DEV/DRV 模型 "USB 接口"是逻辑上的 USB 设备,编写的 usb_driver 驱动程序,支持的是"USB 接口": USB 控制器或 Hub 识别出 USB 设备后,会创建、...接口函数 在 USB 设备驱动程序中,能使用的 USB 函数都在这个头文件里:include\linux\usb.h。...2.1 pipe 使用这些接口函数的主要目的是传输数据,传输数据的对象是 USB 设备里的某个 endpoint,这被称为 pipe: /* Create various pipes... */ #define...对于一般的 buffer,在提交 URB 时会临时分配一个 DMA Buffer: 发送数据时:函数内部会先从一般 buffer 中把数据复制到 DMA Buffer,在提交给 USB 控制器 读取数据时
在同一个设备上的所有App都会取到相同的值,是苹果专门给各广告提供商用来追踪用户而设的。...是给Vendor标识用户用的,每个设备在所属同一个Vender的应用里,都有相同的值。...其他一些硬件信息 CPU型号,CPU核数,CPU频率 设备总内存 磁盘总空间 电池容量、电池电压 屏幕分辨率 ..........能用于唯一标识设备的: UUID 把UUID保存到KeyChain里面,这样App卸载重装或者系统升级,都可以读出来之前的UUID。
通过扫描以下目录获取物理节点所有 USB 设备: /sys/bus/usb/devices/usb* /sys/bus/usb/devices/usb*/$busnum-* 从该文件系统收集某一个设备的主要信息如下...(该总线的第几台设备) speed: 速率 bDeviceClass: 设备类型 idVendor: 设备的生产商ID,由USB设备生产商向USB-IF官方来统一管理和申请 idProduct: 该生产商生产的产品编号...# 定位某一个 USB 设备的方法有两种: busnum + devnum idVendor + idProduct 设备类型bDeviceClass# 类代码 用法 描述 00h 设备描述符 Use...参考文献# USB设备类bDeviceClass、bDeviceSubClass、bDeviceProtocol By USB 中文网 USB设备描述符中的idVendor、idProduct和bcdDevice...By USB 中文网 USB 硬件设备的序列号 By IBM 注:本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。
Linux3.11版本引入了基于configfs的usb gadget configfs。...最后调用os_desc_type,在g1目录下生成os_desc目录,包含了操作系统信息,一般不需要设置。...(gadget_strings, gadget_info); [include/linux/usb/gadget_configfs.h] #define USB_CONFIG_STRINGS_LANG(...主要的工作流程为: 分配一个config_usb_cfg1结构体,该结构体包含了usb_configuration结构体,保存了该USB设备的配置信息。 设置USB设备的配置描述符的某些选项。...USB设备复合设备的工作过程。
为了消除这种可能性,机构会限制和监测访问互联网,同时禁用 USB 存储设备。 在本教程中,我们将讨论三种不同的方法来禁用 Linux 机器上的 USB 存储设备。...方法 2:删除 USB 驱动 这种方法要求我们将 USB 存储的驱动程序(usb_storage.ko)删掉或者移走,从而达到无法再访问 USB 存储设备的目的。...方法 3:将 USB 存储器纳入黑名单 我们也可以通过 /etc/modprobe.d/blacklist.conf 文件将 usb-storage 纳入黑名单。...usb-storage 保存文件并退出。...usb-storage 就在就会被系统阻止加载,但这种方法有一个很大的缺点,即任何特权用户都可以通过执行以下命令来加载 usb-storage 模块, $ sudo modprobe usb-storage
命令:lsusb查看 USB 设备详细信息:lsusb -v查看内核日志中的 USB 相关信息:dmesg | grep -i usb2....常见的 USB 设备问题及解决方案2.1 USB 设备未被识别问题:USB 设备插入后未被系统识别。解决方案:检查 USB 端口和设备连接,确保驱动已安装。...示例:检查驱动是否已安装:lsmod | grep usb 如果未安装相关驱动,可以尝试安装:sudo apt-get update sudo apt-get install linux-firmware2.2...install linux-generic2.3 USB 设备权限问题问题:USB 设备权限设置不正确,导致用户无法访问。...3.1 使用 lsblk安装 lsblk:sudo apt-get install util-linux使用 lsblk 查看 USB 设备:lsblk3.2 使用 fdisk安装 fdisk:sudo
当USB设备插上主机时,主机就通过一系列的动作来对设备进行枚举配置(配置是属于枚举的一个态,态表示暂时的状态),这些态如下: 1、接入态(Attached):设备接入主机后,主机通过检测信号线上的电平变化来发现设备的接入...; 2、供电态(Powered):就是给设备供电,分为设备接入时的默认供电值,配置阶段后的供电值(按数据中要求的最大值,可通过编程设置); 3、缺省态(Default):USB在被配置之前,通过缺省地址...0与主机进行通信; 4、地址态(Address):经过了配置,USB设备被复位后,就可以按主机分配给它的唯一地址来与主机通信,这种状态就是地址态; 5、配置态(Configured):通过各种标准的USB...请求命令来获取设备的各种信息,并对设备的某此信息进行改变或设置; 6、挂起态(Suspended):USB总线处于空闲状态的话,该设备就要自动进入挂起状态,在进入挂起状态后,总的电流功耗不超过280UA...是 是 __ __ __ __ __ __ 是 设备在至少3毫秒以内探测不到总线活动,自动进如挂起.设备功能不可用. 下图为设备状态转化图:
在 中我们使用lsusb 列出USB设备及其属性,lsusb用于显示系统中的USB总线及其连接的设备信息。下面介绍如何安装并使用。...设备信息 lsusb用于显示有关系统中的USB总线及其连接的设备的信息,下面运行lsusb: [root@localhost ~]# lsusb Bus 001 Device 010: ID 0bda:.../share/hwdata/usb.ids'识别USB设备的详细信息。.../bus/usb/001/010 /dev/bus/usb/001/001 image.png 结合使用lsusb命令和 -D参数,可以输出特定设备的详细信息。...总结 在Linux中我们使用lsusb命令列出USB设备及其属性,lsusb用于显示系统中的USB总线及其连接的设备信息。
起因 近期,学校开始对研究生实验室这边进行设备安全大检查,需要我们每个人填写自己的实验室设备信息并上报。我顺手把获取设备的过程记录了下来。...获取设备信息 硬盘序列号 查看台式机上的硬盘情况: sudo fdisk -l 可看出我的台式机上有 /dev/sda1 和 /dev/sdb1 两块硬盘: WARNING: GPT (GUID Partition...Start End Blocks Id System /dev/sdb1 2048 312580095 156289024 83 Linux...内核版本 uname -a 本机内核版本: 4.4.0 Linux hok 4.4.0-31-generic #50~14.04.1-Ubuntu SMP Wed Jul 13 01:07:32 UTC...2016 x86_64 x86_64 x86_64 GNU/Linux 操作系统版本 查看当前OS版本: cat /proc/version 操作系统安装日期 stat /lost+found/ 一看日期就知道了
2.音频复合设备驱动 从前面的分析中可以看出,复合设备驱动围绕usb_composite_driver和usb_composite_dev两个数据结构展开,legacy方式的复合设备驱动也不例外。...(audio_driver); // 注册audio_driver [include/linux/usb/composite.h] #define module_usb_composite_driver...[include/linux/device.h] #define module_driver(__driver, __register, __unregister, ...) \ static int...USB gadget configfs根据名称查找USB设备控制器,而legacy方式只匹配第一个USB设备控制器,无法匹配指定的USB设备控制器。...若要使用音频设备,则只能通过g_audio驱动构造复合设备,若使用USB虚拟网卡,则只能通过g_ether驱动构造复合设备,若需要多个功能的USB设备,则需要重新构造复合设备,编码定义usb_composite_driver
最近 VMware 莫名其妙的卡,开机一会就开始卡死了,找了好多办法也不行,暂时先换 VirtualBox,已安装但在使用网银 U 盾等 USB 设备时,无法识别 USB 设备。
2.Gadget Function驱动 Linux内核的USB Gadget Function驱动都在drivers/usb/gadget/function/目录下,有通讯设备类(Communication...[include/linux/usb/composite.h] struct usb_function_driver { const char *name; struct module...[include/linux/usb/composite.h] #define DECLARE_USB_FUNCTION_INIT(_name, _inst_alloc, _func_alloc) \...(__usb_composite_driver, usb_composite_probe, \ usb_composite_unregister) [include/linux/device.h...Linux 3.11版本引入了USB Gadget Configfs。在用户层可以通过暴漏出来的API定义USB Gadget设备的任意功能和配置,极大的方便了USB复合设备的配置和使用。
一、USB设备状态 在USB 2.0协议中第 9.1 USB Device States 章节规定了USB设备的6种状态,包括: Attached/Powered/Default/Address/Configured...在 Linux Kernel ch9.h 文件中用 enum usb_device_state 来标记这几种状态。...// /include/uapi/linux/usb/ch9.h enum usb_device_state { /* NOTATTACHED isn't in the...其中struct usb_gadget是用来标记一个USB设备的信息。此时USB设备的状态就可以确定了。.../class/udc -rw-r--r-- 0 0 4096 2017-05-01 16:17 uevent 这里面的信息其实就是一个USB设备的信息,用 struct
如果令牌和数据信息包被正确的接收了,设备必须在Setup事物的联络信息包中返回ACK。设备也可能会在OUT事物的联络信息包中返回ACK。...与设备一样,如果令牌和数据信息包被正确的接收了,主机也会在IN事务的联络信息包中返回ACK。 NAK(negative acknowledge) 表明设备繁忙或没有数据要返回。...若主机在设备繁忙的时候请求数据,则设备端点会在联络信息包中返回NAK。若主机向设备请求数据,而此时设备没有数据要发送,则设备端点会在数据信息包中返回NAK。主机从不发送NAK,等时传输不使用NAK。...在接收到数据信息包后,设备端点可返回NYET联络信息,它表明端点接收此数据但没有准备好接收另一数据信息包。当主机认为设备可能准备好的时候,主机可发送PING令牌信息包。...通过读取DWC3_DSTS寄存器的第22位判断,为0时表示已断开连接。
虽然 lshw 命令( 列出硬件(list hardware),读作 “ls hardware”)远不是每个人最先学会的 50 个 Linux 命令之一,但它可以提供很多系统硬件的有用信息。...它以一种相当易于理解的格式提取出可能比你知道的更多的信息。在看到描述、(设备)逻辑名称、大小等以后,你可能会理解到自己能获得多少信息。 这篇文章会研究 lshw 给出的信息,但侧重于磁盘及相关硬件。...要获得“磁盘”类设备的简略列表,可以运行下面这条命令。注意其中有两个设备被列出了两次,所以我们看到的仍然是五个磁盘设备。...,请坐稳了;你会得到一个包含的东西比你通常认为的“设备”要多得多的列表,下面是一个例子,这是一个“简短(short)”(信息很少)的列表: $ sudo lshw -short [sudo] password...,并统计每个类别中的设备数量。
USB 设备就必须回答"我是 xxx", 并且回答的格式是固定的。USB 总线驱动程序会 发出某些命令想获取设备信息(描述符),USB 设备必须返回"描述符"给 PC。 问 5....NAK:Host 发送数据给设备时, 设备可以回应 NAK 表示"我还没准备好,没办法接收数据"; Host 想读取设备的数据时, 设备可以回复 NAK 表示"我没有数据给你"。...端点描述符 5.示例 在 Ubuntu 中可以执行 lsusb -v查看 USB 设备的描述符信息: book@100ask:~$ sudo lsusb -v [sudo] password for book...使用"usbprotocolsuite"打开,可以看到设备的枚举过程: 使用控制传输,读取设备信息(设备描述符):第一次读取时, 它只需要得到 8 字节数据, 因为第 8 个数据表示端点 0 能传输的最大数据长度...Host 分配地址给设备, 然后把新地址发给设备: 使用新地址, 重新读取设备描述符, 设备描述符长度是 18: 读取配置描述符: 它传入的长度是 255,想一次性把当前配置描述符、它下面的接口描 述符
关于usbsas usbsas是一款功能强大的开源(GPLv3)工具&框架,该工具可以帮助广大用户以安全的方式读取不受信任的USB大容量存储设备。...该工具基于Rust语言开发,并且支持在GNU/Linux上运行。 功能介绍 1、从不受信任的USB设备读取文件(不使用uas、USB_storage和文件系统等内核模块)。...和NTFS; 4、将文件上传到远程服务器; 5、支持制作USB设备镜像; 6、擦除USB设备内容; usbsas架构 1、Web客户端/服务器:作为usbsas的主程序,可以部署一个安全的...USB文件传输中转站; 2、Fuse实现:使用usbsas以只读模式挂载USB设备; 3、Python:usbsas可以和Python搭配使用,并使用脚本将数据从一台设备拷贝到另一台设备;...打印帮助信息 -n, --part-num 加载的分区编号 [默认: 1] -V, --version 打印版本信息 工具运行截图
一系列相互独立的端点在一起构成了USB逻辑设备,在系统结构中,位于下方红色方框内: 二、端点的分类 每个USB设备都有一个唯一的设备地址,设备地址是设备连接上主机时由主机分配的,主机主要依靠这个设备地址对...USB设备进行访问。...但是需要注意其中的一个特殊端点--端点0,每个USB设备必须要有一个端点0,其作用为对设备枚举和对设备进行一些基本的控制功能,端点0也被称为控制端点。...虽然有16个端点,但通常我们只用到3个,如下: 1)、EP0:做传输配置和控制信息; 2)、EP1:做数据输入IN_EP; 3)、EP2:做数据输出OUT_EP。...设备中端点描述符描述了端点信息,端点描述符格式如下: typedef struct _USB_ENDPOINT_DESCRIPTOR_ { BYTE bLength, BYTE
领取专属 10元无门槛券
手把手带您无忧上云