USB设备进行访问。...五、端点与管道 1、管道的概念 管道是主机软件(数据缓存区),和USB设备各各端点之间的数据传输连接,他是两者之间通信流的抽象(实际上数据传输是USB总线接口完成)。...1)、“流”指不具有USB定义格式的数据流,流通道中的数据是流的形式,也就是该数据内容不具有USB要求的结构。...六、端点的传输类型 一个具体的端点只能属于四个传输模式下中的一种。数据传输类型分为四种分别是:控制传输、批量传输、同步传输和中断传输。...一般情况下,通常把工作在什么模式下的端点就叫什么端点,例如:控制端点、批量端点、同步端点和中断端点。
最近 VMware 莫名其妙的卡,开机一会就开始卡死了,找了好多办法也不行,暂时先换 VirtualBox,已安装但在使用网银 U 盾等 USB 设备时,无法识别 USB 设备。...sudo nano /etc/group 找到如下内容:vboxusers:x:131:,个别情况下 131 也有可能是其他,更改内容为 vboxusers:x:131:name name 为用户名,然后
而Mac和Linux下要方便得多,你几乎不需要操作便可以轻松通过USB连上手机,进行开发调试。...参看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.../android update adb 5.在$HOME创建或修改文件: ~/.android/adb_usb.ini 添加内容0x0421 $ vi ~/.android/adb_usb.ini 6
Linux 内核源码:include\linux\usb.h Linux 内核源码:drivers\hid\usbhid\usbmouse.c 1....BUS/DEV/DRV 模型 "USB 接口"是逻辑上的 USB 设备,编写的 usb_driver 驱动程序,支持的是"USB 接口": USB 控制器或 Hub 识别出 USB 设备后,会创建、...注册 usb_device usb_device 被"drivers\usb\core\generic.c" 驱动认领后,会选择、设置某个配置 这个配置下面的接口,都会分配、设置、注册一个 usb_interface...左边的 usb_driver 和右边的 usb_interface 如果匹配,则调用 usb_driver.probe 2....接口函数 在 USB 设备驱动程序中,能使用的 USB 函数都在这个头文件里:include\linux\usb.h。
一、前言 libuvc是一个开源的库,用于在Linux和其他操作系统上与USB视频设备进行交互。提供了一组函数和接口,使开发人员可以轻松地访问和控制USB摄像头。...libuvc库实现了对UVC(USB Video Class)设备的支持。UVC是一个标准的USB设备类别,用于视频流传输和摄像头控制。...libuvc库提供了针对各种常见操作系统的API,包括Linux、Windows、macOS、Android等。使用USB协议与摄像头通信,并处理底层协议细节,简化了开发人员的工作。...许多应用程序和项目使用libuvc库来构建基于USB摄像头的应用程序,如视频监控、机器视觉、视频采集等。它提供了一个方便且跨平台的解决方案,使开发人员能够轻松地利用USB摄像头的功能。...libuvc仓库地址在这里:https://github.com/libuvc/libuvc 在Linux下的安装也是非常的简单。
1.3 适用范围 表 1-1: 适用产品列表 内核版本 驱动文件 Linux-4.9 drivers/usb/* Linux-5.4 drivers/usb/* 2 模块介绍 2.1 模块功能介绍...2.6.1 打开内核配置 需在 “USB functions configurable through configfs” 下选择需要的功能。 ...图 2-11: linux-4.x usb gadget 配置选择 2.6.2 linux-4.x/linux-5.4 USB Gadget 配置流程 Linux-4.x/Linux-5.4 使用 configfs...• 若硬件有多个 USB 口,尝试同样条件下测试其他 USB 口的主机功能是否正常。...• 同样条件下,分别打印出功能异常板子和功能正常板子的相关寄存器,并进行对比,确认是否有异常。 • 出现异常时,确认 USB 高速眼图是否正常。
注意:高速设备首先会被识别为全速设备,然后再通过集线器和设备二者的确认最后切换到高速模式下。 在高速模式下,采用的是电流传输模式,这个时候上拉电阻需要从D+上断开。.../usb.h> 4.2 USB设备注册框架示例 #include #include #include //定义...该宏定义在下 这个宏有两个参数,第一个参数设备名,第二个参数该设备加入到模块中时对应产生的设备搜索符号,这个宏生成了一个名为__mod_pci_device_table...#include #include #include #include ...该宏定义在下 这个宏有两个参数,第一个参数设备名,第二个参数该设备加入到模块中时对应产生的设备搜索符号,这个宏生成了一个名为__mod_pci_device_table
通过扫描以下目录获取物理节点所有 USB 设备: /sys/bus/usb/devices/usb* /sys/bus/usb/devices/usb*/$busnum-* 从该文件系统收集某一个设备的主要信息如下...设备生产商向USB-IF官方来统一管理和申请 idProduct: 该生产商生产的产品编号,同一厂商下的不同idProduct代表着该公司不同的产品系列 product: 制造商 manufacturer...: 产品 serial: USB 硬件设备序列号 ,例如 0000:00:01.2 定位方法# 定位某一个 USB 设备的方法有两种: busnum + devnum idVendor + idProduct...设备类bDeviceClass、bDeviceSubClass、bDeviceProtocol By USB 中文网 USB设备描述符中的idVendor、idProduct和bcdDevice By...USB 中文网 USB 硬件设备的序列号 By IBM 注:本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。
释放input_device 3.5在出口函数中 1)通过usb_deregister ()函数注销usb_driver结构体 4.代码如下: #include #include... #include #include #include #include... static struct input_dev *myusb_mouse_dev; //input_dev static char *myusb_mouse_buf...endpoint = &interface->endpoint[0].desc; //当前接口下的端点描述符...未完待续~~~~~~~~~~ 下节 依葫芦画瓢 来写出 USB键盘驱动
[ 0.513302] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002 [ 0.513303] usb usb1...Controller [ 0.513304] usb usb1: Manufacturer: Linux 3.10.0-327.el7.x86_64 xhci-hcd [ 0.513305...] usb usb1: SerialNumber: 0000:00:14.0 [ 0.518700] usb usb2: New USB device found, idVendor=1d6b,...0.518702] usb usb2: Product: xHCI Host Controller [ 0.518702] usb usb2: Manufacturer: Linux 3.10.0...] usb 1-4: New USB device found, idVendor=413c, idProduct=301a [ 1.040348] usb 1-4: New USB device
Linux3.11版本引入了基于configfs的usb gadget configfs。.../bcdDevice # USB 1.1: 0x0110 # USB 2.0: 0x0200, USB 2.1: 0x0210, USB 2.5: 0x0250 # USB 3.0: 0x0300...(gadget_strings, gadget_info); [include/linux/usb/gadget_configfs.h] #define USB_CONFIG_STRINGS_LANG(...gadget configfs代码,分析一下当用户空间配置时,内核中做了什么。...调用UDC驱动接口usb_udc_connect_control连接USB主机控制器,这样USB主机就能识别并枚举USB设备。
比如最近我本想安装个linux,选了一款兼容linux的网卡,突然一抽风又想装个黑苹果,结果兼容linux的网卡并不兼容黑苹果,装到一半装不下去了,这就尴尬了。...由于手边没有合适的网卡,因此只好急中生智,“独辟蹊径”地想了个办法来解决上网问题,因为彻底绕开了usb,没想到意外地解决了usb网卡不兼容这个老大难的问题,下面我将简单介绍一下这个万能方法。...解决方法 很多朋友使用usb无线网卡或是因为电脑离路由器太远,插网线不方便,或是有移动需求,但电脑没有无线网卡,因此usb网卡自然而然就成了首选。...但这里有个容易钻牛角尖问题,在usb网卡驱动不了的情况下,我们的目的依然是要上网而不是一定要把usb网卡驱动起来。...我们以水晶WM310R为例,来演示一下具体步骤。
例子:USB鼠标滑动一下立刻产生数据,但是它没有能力通知PC机来读数据,只能被动地等得PC机来读。...USB高速设备先是被识别为全速设备,然后通过HOST和DEVICE两者之间的确认,再切换到高速模式的。在高速模式下,是电流传输模式,这时将D+上的上拉电阻断开。..., 比如:鼠标的数据是从鼠标传到PC机, 对应的端点称为"中断输入端点" 其中端点0是设备的默认控制端点, 既能输出也能输入,用于USB设备的识别过程 同样linux内核也自带了USB总线驱动程序,框架如下...其中usb_bus_type是一个全局变量, 它和我们之前学的platform平台总线相似,属于USB总线, 是Linux中bus的一种....(struct usb_device *dev) { dev = get_device(dev); //使dev等于usb_device下的device成员 ... ...
为了消除这种可能性,机构会限制和监测访问互联网,同时禁用 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
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...[include/linux/usb/composite.h] #define DECLARE_USB_FUNCTION_INIT(_name, _inst_alloc, _func_alloc) \...Linux 3.11版本引入了USB Gadget Configfs。在用户层可以通过暴漏出来的API定义USB Gadget设备的任意功能和配置,极大的方便了USB复合设备的配置和使用。
usb协议是一个复杂的协议,目前涉及到的版本就有usb1.0, usb2.0, usb3.0。...那么,对于我们这些不是很了解usb的开发人员,如何了解usb的代码结构呢?...) += ohci-s3c2410.o b,再查看一下Kconfig, config USB_OHCI_HCD_S3C2410 tristate "OHCI support for Samsung...c,通过Makefile和Kconfig发现,s3c2410依赖于USB_OHCI_HCD_S3C2410 和 USB_OHCI_HCD,那USB_OHCI_HCD呢?...每个host driver其实就是注册了一下,告知了mem地址在哪。下面这段代码就是ohci-s3c2410.c中probe函数的代码。
Jetson的更新程序只能在Ubuntu Linux执行,所以,我们要先用UNetbootin做出一个随身碟,这个随身碟可以让任何计算机以 Ubuntu的方式开启。...将Arduino用USB连接线接上Jetson。 现在,你的雷射逗猫玩具已经大功告成,只要在Jetson写入猫咪侦测软件,逗猫玩具会就在侦测到猫咪的形体时有所反应了!...现在,请用第一个随身碟(有UNetbootin)将计算机重新启动,就可以在计算机上使用Ubuntu Linux。这是因为NVIDIA的软件工具JetPack必须在Ubuntu Linux上运作。...10.用USB接micro-USB转接线,将Jetson连接到运作Ubuntu的计算机上,micro-USB的那一头接在Jetson后。 ? 11.将Jetson关机。...cboot.bin --applet nvtboot_recovery.bin --chip 0x21 --cmd "write APP laser_cat_APP.img" 请让这个指令执行一下(
,所以这次换个无线网卡,要求双频,带蓝牙的,信号强稳定的,AX200很不错,价格便宜,参数强,就买了这个,折腾了好久,一波三折,终于完美了,写个教程,有想要改网卡的和想用AX200但不稳定的都可以参考下。...对转接卡还需要再剪一下,剪掉带固定螺孔的伸出去的一长段,这一段也没有线路的,剪掉后就不能固定AX200了,但是为了能安装上去,后盖正常闭合,不得不剪,固定用其它办法。...这部分没有详细拍照,上个最后的图看看,脑补一下吧。 下图主副天线接反,请注意!白色是主线接Main口,黑色是辅线接Aux口!...2、安装转接天线(ipx4代转1代大接口) 补充下转接天线的事,因为没有换天线,所以用到转接线。如下所示,买两根4代转1代线 直接接上转接线,两端天线接好后,再将网卡装上笔记本。...试过很多官方驱动,都不太好,每个驱动都测试了5G, 3.3、不同驱动的对比测试 测试位置:距离路由器隔一堵墙的房间那头, USB3.0无线网卡稳定在130Mbps的下载速度 测网速:www.speedtest.cn
制作 Kali 可启动 USB 驱动器 (Linux) 我们最喜欢的方式,也是最快的方法,启动和运行 Kali Linux 是从 USB 驱动器“实时”运行它。...USB 驱动器,该驱动器已从 Kali Linux 的 ISO 映像设置。...如果您在 Linux 下运行,则可以使用dd预先安装的命令或使用Etcher。 USB 拇指驱动器,4GB 或更大。(具有直接 SD 卡插槽的系统可以使用类似容量的 SD 卡。步骤相同。)...在 Linux (DD) 上创建可引导 Kali USB 驱动器 在 Linux 环境中创建可引导的 Kali Linux USB 驱动器很容易。...在没有将 USB 驱动器插入端口的情况下sudo fdisk -l,在终端窗口的命令提示符下执行命令(如果您不使用 fdisk 的提升权限,您将不会得到任何输出)。
本节目的: 根据上节写的USB鼠标驱动,来依葫芦画瓢写出键盘驱动 1.首先我们通过上节的代码中修改,来打印下键盘驱动的数据到底是怎样的 先来回忆下,我们之前写的鼠标驱动的id_table是这样:...2.1比如我们按下按键A,为什么打印0X04?...3.接下来再来仔细分析下内核自带的USB键盘驱动usbkbd.c里的中断函数: 代码如下: static void usb_kbd_irq(struct urb *urb) { struct.../kernel.h> #include #include #include #include #include static struct input_dev *myusb_kbd_dev; //input_dev static
领取专属 10元无门槛券
手把手带您无忧上云