最近 VMware 莫名其妙的卡,开机一会就开始卡死了,找了好多办法也不行,暂时先换 VirtualBox,已安装但在使用网银 U 盾等 USB 设备时,无法识别 USB 设备。...sudo nano /etc/group 找到如下内容:vboxusers:x:131:,个别情况下 131 也有可能是其他,更改内容为 vboxusers:x:131:name name 为用户名,然后
Linux 内核源码:include\linux\usb.h Linux 内核源码:drivers\hid\usbhid\usbmouse.c 1....BUS/DEV/DRV 模型 "USB 接口"是逻辑上的 USB 设备,编写的 usb_driver 驱动程序,支持的是"USB 接口": USB 控制器或 Hub 识别出 USB 设备后,会创建、...左边的 usb_driver 和右边的 usb_interface 如果匹配,则调用 usb_driver.probe 2....接口函数 在 USB 设备驱动程序中,能使用的 USB 函数都在这个头文件里:include\linux\usb.h。...2.1 pipe 使用这些接口函数的主要目的是传输数据,传输数据的对象是 USB 设备里的某个 endpoint,这被称为 pipe: /* Create various pipes... */ #define
通过扫描以下目录获取物理节点所有 USB 设备: /sys/bus/usb/devices/usb* /sys/bus/usb/devices/usb*/$busnum-* 从该文件系统收集某一个设备的主要信息如下...(该总线的第几台设备) speed: 速率 bDeviceClass: 设备类型 idVendor: 设备的生产商ID,由USB设备生产商向USB-IF官方来统一管理和申请 idProduct: 该生产商生产的产品编号...,同一厂商下的不同idProduct代表着该公司不同的产品系列 product: 制造商 manufacturer: 产品 serial: USB 硬件设备序列号 ,例如 0000:00:01.2 定位方法...参考文献# USB设备类bDeviceClass、bDeviceSubClass、bDeviceProtocol By USB 中文网 USB设备描述符中的idVendor、idProduct和bcdDevice...By USB 中文网 USB 硬件设备的序列号 By IBM 注:本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。
Linux3.11版本引入了基于configfs的usb gadget configfs。...当加载libcomposite.ko模块后,会在/sys/kernel/config/目录下生成一个usb_gadget目录。...(gadget_strings, gadget_info); [include/linux/usb/gadget_configfs.h] #define USB_CONFIG_STRINGS_LANG(...gadget configfs代码,分析一下当用户空间配置时,内核中做了什么。...USB设备复合设备的工作过程。
为了消除这种可能性,机构会限制和监测访问互联网,同时禁用 USB 存储设备。 在本教程中,我们将讨论三种不同的方法来禁用 Linux 机器上的 USB 存储设备。...方法 2:删除 USB 驱动 这种方法要求我们将 USB 存储的驱动程序(usb_storage.ko)删掉或者移走,从而达到无法再访问 USB 存储设备的目的。.../user 现在在默认的位置上无法再找到驱动程序了,因此当 USB 存储器连接到系统上时也就无法加载到驱动程序了,从而导致磁盘不可用。...usb-storage 保存文件并退出。...usb-storage 就在就会被系统阻止加载,但这种方法有一个很大的缺点,即任何特权用户都可以通过执行以下命令来加载 usb-storage 模块, $ sudo modprobe usb-storage
当USB设备插上主机时,主机就通过一系列的动作来对设备进行枚举配置(配置是属于枚举的一个态,态表示暂时的状态),这些态如下: 1、接入态(Attached):设备接入主机后,主机通过检测信号线上的电平变化来发现设备的接入...; 2、供电态(Powered):就是给设备供电,分为设备接入时的默认供电值,配置阶段后的供电值(按数据中要求的最大值,可通过编程设置); 3、缺省态(Default):USB在被配置之前,通过缺省地址...0与主机进行通信; 4、地址态(Address):经过了配置,USB设备被复位后,就可以按主机分配给它的唯一地址来与主机通信,这种状态就是地址态; 5、配置态(Configured):通过各种标准的USB...请求命令来获取设备的各种信息,并对设备的某此信息进行改变或设置; 6、挂起态(Suspended):USB总线处于空闲状态的话,该设备就要自动进入挂起状态,在进入挂起状态后,总的电流功耗不超过280UA...是 是 __ __ __ __ __ __ 是 设备在至少3毫秒以内探测不到总线活动,自动进如挂起.设备功能不可用. 下图为设备状态转化图:
(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...&(__driver) , ##__VA_ARGS__); \ } \ module_exit(__driver##_exit); 2.2.参数 g_audio驱动将音频参数定义为模块参数,如下所示,加载模块的时候可以指定选项修改这些参数的默认值...module_param(c_ssize, uint, S_IRUGO); MODULE_PARM_DESC(c_ssize, "Capture Sample Size(bytes)"); 驱动模块加载成功后...USB gadget configfs根据名称查找USB设备控制器,而legacy方式只匹配第一个USB设备控制器,无法匹配指定的USB设备控制器。
今天在更新VMWare Workstation的时候需要进行加载光驱的操作,也就顺便看了看 Linux下的磁盘内容是作为子目录的形式出现的,需要进行驱动器的挂载 驱动器的挂载所需要的命令是mount,而需要
2.Gadget Function驱动 Linux内核的USB Gadget Function驱动都在drivers/usb/gadget/function/目录下,有通讯设备类(Communication...alloc_func创建usb_function并初始化,重点是设置里面的回调函数,通常情况下,不直接使用usb_function数据结构,而是嵌入到驱动的数据结构中使用。...[include/linux/usb/composite.h] struct usb_function_driver { const char *name; struct module...Linux 3.11版本引入了USB Gadget Configfs。在用户层可以通过暴漏出来的API定义USB Gadget设备的任意功能和配置,极大的方便了USB复合设备的配置和使用。...5.UDC驱动 5.1.函数接口 UDC驱动模块定义如下,内核初始化或模块加载时初始化,创建udc_class,设置uevent的回调函数为usb_udc_uevent。
一、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设备的状态就可以确定了。...比如说在USB设备的枚举阶段,在composite_setup()函数中USB设备接收到了USB Host发过来的USB_REQ_SET_CONFIGURATION命令后调用set_config()设置相应的配置
USB Function驱动通过调用这些接口匹配及访问USB设备控制器,而底层USB控制器驱动要实现这些接口定义的功能。下面分析一下主要的UDC驱动接口调用流程。 2....NYET(not yet) 只有高速设备才会发送NYET。高速批量和控制传输都支持一种协议,它使主机在有设备可接收数据的情况下,能够在发送数据之前找到此设备。...如果数据信息包很大且设备总是没有准备好,不断重新尝试可能会浪费很多总线时间。这种情况下,使用带有多个数据信息包的高速批量和控制传输将是更好的途径。...发送PING的方法只在确定了设备没有准备好,必须在稍后重传的情况下才会比发送整个数据信息包的方式更为有效。主机是否使用PING是可选的。 USB 2.0集线器可能会在完成分割事务中返回NYET。...无响应 另一种状态指示类型发生在主机或设备期望接收联络但却没有收到任何信息的情况下。接收端的错误检查发现错误时,就会产生这种响应缺失。
Linux驱动先注册总线,总线上可以先挂device,也可以先挂driver,那么究竟怎么控制先后的顺序呢。 1、初始化宏 Linux系统使用两种方式去加载系统中的模块:动态和静态。...静态加载:将所有模块的程序编译到Linux内核中,由do_initcall函数加载 核心进程(/init/main.c)kernel_inità do_basic_setup()àdo_initcalls...()该函数中会将在__initcall_start和__initcall_end之间定义的各个模块依次加载。...2、编译顺序 同一级别的初始化是和编译顺序有关的,并不是和设备列表一致。 【问题】 背光驱动初始化先于LCD驱动初始化,导致LCD驱动初始化时出现闪屏的现象。...PWM(xxxpwm_backlight_device)设备。
软件框架 APP 可以通过 USB 设备驱动程序访问 USB 设备,也可以绕过 USB 设备驱动,直接通过 USB 控制器驱动访问 USB 设备。...Hub 端口发出 SE0 信号,这就是复位信号 USB 设备监测到 SE0 信号后,会发出"a high-speed detection handshake"信号表示自 己能支持高速模式, 这可以细分为一下...) 在软件开发过程中, 我们可以忽略 Hub 的存在,硬件拓扑图简化如下: 一个物理设备里面可能有多个逻辑设备, Hos 可以外接多个逻辑设备, 硬件拓扑图如 下: 4.4.2 协议层 要理解协议层、理解数据如何传输...大多数的 USB 设备只有一种配置。 一个配置下,可以有多个接口(Interface),接口等同于功能(Function)。比如 USB 耳 机有两个接口(功能):声音收发、按键控制。...一个接口, 可能有多个设置(Setting),比如默认设置下它使用较低的带宽, 可以选择 其他设置以使用更高带宽。 一个接口, 由一个或多个端点(Endpoint)组成。
一.背景: arm linux的内核版本是3.13.0 二.准备工作 添加alsa驱动到内核中,也就是在编译内核的时候加入以下选项: ?...接下来就重新编译内核即可 三.交叉编译alsa-lib和alsa-utils (alsa-utils是一系列的音频设备控制工具,而alsa-lib是alsa-utils依赖的库,所以先将alsa-lib...设置录音时的音量大小 amixer cset numid=8,iface=MIXER,name='Mic Volume' 255 六:注意事项: 如果将编译好的alsa-utils中的工具复制到fat32格式的存储设备的时候...,注意fat32是不支持软链接的,此时需要直接复制一个aplay并将名称改为arecord: cp aplay arecord 总结 以上所述是小编给大家介绍的arm linux利用alsa驱动并使用...usb音频设备 ,希望对大家有所帮助!
一系列相互独立的端点在一起构成了USB逻辑设备,在系统结构中,位于下方红色方框内: 二、端点的分类 每个USB设备都有一个唯一的设备地址,设备地址是设备连接上主机时由主机分配的,主机主要依靠这个设备地址对...USB设备进行访问。...但是需要注意其中的一个特殊端点--端点0,每个USB设备必须要有一个端点0,其作用为对设备枚举和对设备进行一些基本的控制功能,端点0也被称为控制端点。...六、端点的传输类型 一个具体的端点只能属于四个传输模式下中的一种。数据传输类型分为四种分别是:控制传输、批量传输、同步传输和中断传输。...一般情况下,通常把工作在什么模式下的端点就叫什么端点,例如:控制端点、批量端点、同步端点和中断端点。
本文告诉大家如何获得设备的usb来进行判断是否有哪些usb和找不到usb可能是什么。...需要在项目右击引用,点击程序集,搜索 System.Management 然后安装他 然后使用下面的代码就可以获得设备的 usb 请看代码 static List<(string DeviceID...} collection.Dispose(); return devices; } 如果需要判断是否存在某个 usb...,就通过 pid vid 判断,判断的方法是拿PNPDeviceID字符串比较 参见:c# 获取移动硬盘信息、监听移动设备的弹出与插入事件 - Chris Cheung - 博客园 如果发现找不到 usb...,可能是在开机的时候进行找usb,一般需要开机之后很久才会把所有的设备添加,所以如果找不到,就看开机的时间,如果太短,那么可能是因为程序太快去查。
而Mac和Linux下要方便得多,你几乎不需要操作便可以轻松通过USB连上手机,进行开发调试。...尽管Google已经提供了 丰富的文档和技术支持,但还有一些设备或问题并不在文档中列出,如Nokia.....参看http://developer.android.com/tools/device.html#VendorIds 首先通过文档找到USB Vendor IDs,文档中没有的话可以在Mac上连接USB...Mac OSX下的配置: 1.创建或修改文件: /Users//.android/adb_usb.ini 添加USB Vendor IDs: 0x0421 注意:在Finder中隐藏文件默认不显示的...$ adb devices Linux 下的配置: 1.创建或修改文件:/etc/udev/rules.d/51-android.rules, $ sudo vi /etc/udev/rules.d/51
", ATTR{index}=="0", KERNELS=="1-1.4:1.0", MODE="0666", SYMLINK+="camera3", OPTIONS+="last_rule" 以USB...pyudev.Context() monitor = pyudev.Monitor.from_netlink(context) monitor.filter_by(subsystem='video4linux...—3.0_上' elif '1-1.2:1.0' in _path: location = 'usb-3.0_下' elif '1-1.3:1.0...' in _path: location = 'usb-2.0_上' elif '1-1.4:1.0' in _path: location...= 'usb-2.0_下' else: continue print(camera)
一、引言随着计算机技术的飞速发展,USB 设备因其便捷性而被广泛应用。然而,这也为恶意攻击者提供了可乘之机。...近年来,出现了利用特制 USB 设备,如特制鼠标,通过 Windows 系统漏洞来自动修改系统配置的安全事件,给用户和企业带来了严重的潜在风险。...三、特制鼠标利用漏洞的原理(一)硬件与软件交互漏洞Windows 系统在处理 USB 设备的连接和通信时,存在某些可被利用的交互漏洞。...(二)USB 设备管理实施严格的 USB 设备接入政策,只允许经过授权的设备接入。(三)安装安全防护软件实时监测系统的异常行为,拦截可疑的 USB 设备操作。...(四)用户安全意识培训提高用户对陌生 USB 设备的警惕性,不随意接入来源不明的设备。
领取专属 10元无门槛券
手把手带您无忧上云