学习
实践
活动
工具
TVP
写文章

linux usb端点

一系列相互独立的端点在一起构成了USB逻辑设备,在系统结构中,位于下方红色方框内: 二、端点的分类 每个USB设备都有一个唯一的设备地址,设备地址是设备连接上主机时由主机分配的,主机主要依靠这个设备地址对 USB设备进行访问。 五、端点与管道 1、管道的概念 管道是主机软件(数据缓存区),和USB设备各各端点之间的数据传输连接,他是两者之间通信流的抽象(实际上数据传输是USB总线接口完成)。 1)、“流”指不具有USB定义格式的数据流,流通道中的数据是流的形式,也就是该数据内容不具有USB要求的结构。 2)、“消息”指具有某种USB定义格式的数据流。消息通道与端点的关系同流通道与端点的关系是不同的。

14730

Linux驱动开发: USB驱动开发

USB介绍: http:www.usb.orghome1.2 USB设备主要优点总结1. 可以热插拔用户在使用外接设备时,不需要关机再开机等动作,而是在电脑工作时,直接将USB插上使用。2. 端点在linux内核中使用结构 struct usb_host_endpoint 来描述,它所包含的真实端点信息在另一个结构中:struct usb_endpoint_descriptor(端点描述符, Linux内核中定义的端点描述符结构struct usb_endpoint_descriptor { _ _u8 bLength; 描述符长度 _ _u8 bDescriptorType; 描述符类型 四、 linux内核下USB相关的API函数与数据结构 前面介绍了USB相关一些基础概念与重要的数据结构,接下来就分析在linux内核中如何编写一个USB 驱动程序,编写与一个USB设备驱动程序的方法和其他总线驱动方式类似 USB的IDTABstatic const struct usb_device_id tiny4412_usb_id# insmod linux_usb_drv.ko usbcore: registered

88320
  • 广告
    关闭

    热门业务场景教学

    个人网站、项目部署、开发环境、游戏服务器、图床、渲染训练等免费搭建教程,多款云服务器20元起。

  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    20.Linux-USB鼠标驱动

    在上一章分析完USB总线驱动程序后, 接下来开始写一个USB驱动: 本节目的: 将USB鼠标的左键当作L按键,将USB鼠标的右键当作S按键,中键当作回车按键 参考/drivers/hid/usbhid/ : usb_deregister(struct usb_driver *driver); 注册一个usb_driver驱动,然后内核会通过usb_driver的成员.id_table函数匹配一次USB设备 释放input_device 3.5在出口函数中 1)通过usb_deregister ()函数注销usb_driver结构体 4.代码如下: #include <linux/kernel.h> #include <linux/slab.h> #include <linux/module.h> #include <linux/init.h> #include <linux/usb/input.h> #include <linux/hid.h> static struct input_dev *myusb_mouse_dev; //input_dev static char *myusb_mouse_buf

    1.5K81

    Linux清除U盘(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

    97630

    通过USB接入双目UVC协议人脸比对相机,外接AI相机实现1:1比对开发

    双目USB1.jpg 可用于智能零售,人证对比,顾客分析,人脸跟踪抓拍,等应用领域开发,二次开发资料完善,帮助开发者和系统集成商快速实现产品的人脸识别相关功能,开发周期短,成本低。 双目USB2.jpg 工作流程: 1、后端管理系统对接相机的SDK,通过身份证读卡器读取证内人脸图片,然后推送到相机内,相机完成与现场人员进行人证照片比对,并输出比对结果与活体检测结果。

    36060

    Linux 上如何禁用 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

    3K10

    19.Linux-USB总线驱动分析

    是因为windows自带了USB总线驱动程序, USB总线驱动程序负责: 识别USB设备,给USB设备找到对应的驱动程序 新接入的USB设备的默认地址(编号)是0,在未分配新编号前,PC主机使用0地址和它通信 然后USB总线驱动程序都会给它分配一个地址(编号) PC机想访问USB总线上某个USB设备时,发出的命令都含有对应的地址(编号) USB是一种主从结构。 主机叫做Host,从机叫做Device,所有的USB传输,都是从USB主机这方发起;USB设备没有"主动"通知USB主机的能力。 , 比如:鼠标的数据是从鼠标传到PC机, 对应的端点称为"中断输入端点" 其中端点0是设备的默认控制端点, 既能输出也能输入,用于USB设备的识别过程 同样linux内核也自带了USB总线驱动程序,框架如下 其中usb_bus_type是一个全局变量, 它和我们之前学的platform平台总线相似,属于USB总线, 是Linux中bus的一种.

    2.2K91

    详解linux usb host驱动编写入门

    usb协议是一个复杂的协议,目前涉及到的版本就有usb1.0, usb2.0, usb3.0。 那么,对于我们这些不是很了解usb的开发人员,如何了解usb的代码结构呢? c,通过Makefile和Kconfig发现,s3c2410依赖于USB_OHCI_HCD_S3C2410 和 USB_OHCI_HCD,那USB_OHCI_HCD呢? d,USB_OHCI_HCD只依赖于DMA和IOMEM。 但是,如果要深入了解usb host&device驱动,那么除了这些代码逻辑,那么还要熟读usb协议手册,更重要的学会用catc协议分析仪真正地去了解usb是如何发包和收包的。

    62375

    mini usb接口图片_linux查看接口速率

    试过很多官方驱动,都不太好,每个驱动都测试了5G, 3.3、不同驱动的对比测试 测试位置:距离路由器隔一堵墙的房间那头, USB3.0无线网卡稳定在130Mbps的下载速度 测网速:www.speedtest.cn

    9010

    21.Linux-写USB键盘驱动(详解)

    显然我们的buf[0]的0X04就是上传的usb_kbd_keycode[4+ 224] 2.3我们来看看usb_kbd_keycode[226]里的数据对应的到底是不是左ALT键 找到usb_kbd_keycode []的数据错位,这里就不做详细分析了 一切迎刃而解,我们只需要将自己的代码也通过这个码表添加所有按键按键事件,然后再在键盘中断函数中根据数据来上传事件即可 4.本节键盘代码如下: #include <linux /kernel.h> #include <linux/slab.h> #include <linux/module.h> #include <linux/init.h> #include <linux/ usb/input.h> #include <linux/hid.h> static struct input_dev *myusb_kbd_dev; //input_dev static usb_kill_urb(myusb_kbd_urb); usb_free_urb(myusb_kbd_urb); usb_buffer_free(dev, myusb_kbd_size

    1.3K91

    ubuntu外接显示器无信号_ubuntu笔记本外接显示器

    首先要确保开机能够自动启动远程控制。 Ubuntu 18 自带远程桌面控制服务软件;这里不具体写步骤,自行上网搜索。

    11630

    Mac和Linux下连接手机进行USB调试

    而Mac和Linux下要方便得多,你几乎不需要操作便可以轻松通过USB连上手机,进行开发调试。 参看http://developer.android.com/tools/device.html#VendorIds 首先通过文档找到USB Vendor IDs,文档中没有的话可以在Mac上连接USB Mac OSX下的配置: 1.创建或修改文件: /Users/<user>/.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

    91830

    求点集的外接矩形

    本文告诉大家给定点的集合,求点的集合的外接矩形 已知点的集合 $PL$ 求点的外接矩形 $R$ 包括 $R$ 的坐标和 $R$ 的宽度高度 假设坐标的计算是按照左上角为 $(0,0)$ 从左到右的坐标值增加

    58330

    谈一谈Flutter外接纹理

    导言:这篇文章主要介绍在Android上SurfaceTexture的应用 - Flutter外接纹理,并给出了外接纹理的正确姿势,而阿里闲鱼的技术方案则是错误的姿势。 3 闲鱼技术方案 在我调研flutter外接纹理的实现时,注意到阿里闲鱼团队的一篇文章: ? 4 具体实现 由上面可以知道,flutter外接纹理的正确实现方式应该是使用共享内存,由于这里只涉及到OpenGL,因此在安卓这里就是使用SurfaceTexture的方式。 5 结语 这篇文章主要介绍了flutter外接纹理的正确姿势,这也是SurfaceTexture诸多应用中的一种。 按照这种外接纹理的方式,我们就可以使用flutter进行实时音视频开发,利用flutter跨平台的能力提高生产力,并将性能损失降到最小。

    2.7K33

    解决库存扣减及订单创建时防止并发死锁的问题

    主要用到的技术有:树莓派/linux操作,crontab,python,ffmpeg。 【系列目录】 树莓派驱动usb摄像头(非官方摄像头模块) 树莓派加载外接USB硬盘 树莓派拍摄获取素材程序 树莓派定时任务编写 将素材图片合成视频 【实现过程】 树莓派驱动usb摄像头(非官方摄像头模块 当然直接用linux fdisk命令格式化成 ext2/3/4 也是可以的,但是后续在windows环境下读写又是新问题,如果硬盘不是准备永久挂载在linux系统下使用,还是建议用FAT32格式使用。 使用命令查看固态硬盘是否被识别 lsusb 可以看到,第二个usb设备便是我们的usb固态硬盘设备了(M.2硬盘放到了USB硬盘盒进行外接) 使用 fdisk 命令查看硬盘属性 fdisk -l 使用 首先下载 ffmpeg 软件的 exe 版本(windows),linux上可直接下载linux版。 然后将解压后 ffmpeg 的 exe 目录添加到环境变量,方便我们执行命令。

    6430

    外接收控制灯亮灭

    先上图 功能 红外接收头接收到红外信号,控制一个灯翻转 ? 使用74HC123是因为红外接收头接收的是一连串的高低电平,,在接收到第一个电平的跳变沿的时候就控制灯翻转,,剩余的电平跳变用延时来排除掉 接收到第一个电平的上升沿,74hc123产生一个高电平脉冲信号

    58160

    嵌入式Linux移植USB网卡驱动「建议收藏」

    TL-WN725N 2.0 驱动版本:8188eu_USB_Linux 因为我们是要移植到ARM开发板上,所以首先我们需要更改驱动的Makefile; CONFIG_PLATFORM_I386_PC = /usr/src/linux-3.0.8 endif 其中KVER是你开发板的linux版本,一般情况下跟我们电脑环境的Linux版本是不一样的,那么此时我们就需要把开发板上的内核在电脑上编译一下( zhaokeke@ubuntu:~/8188eu_USB_linux/driver/rtl8188eu$ make zhaokeke@ubuntu:~/8188eu_USB_linux/driver/ READEME make_drv Kconfig autoconf_rtl8188e_usb_linux.h modules.order Kconfig_rtl8188e_usb_linux autoconf_rtl8189e_sdio_linux.h os_dep Kconfig_rtl8189e_sdio_linux

    9130

    调用usb摄像头_usb监控

    在使用DirectShow控制USB摄像头的技术方面,需要做几件准备工作: 1、安装DirectShow SDK ,这个比较繁琐,具体可以网上搜索。

    7830

    解决Kali Linux 外接无线网卡显示不出来的问题?

    必须确保你在使用USB无线网卡,虚拟机只能挂载USB无线网卡,原理我就不解释 了。 启动虚拟机,在kali linux中打开终端,输入 airmon-ng 一般情况下没有任何信息,如下图: 找不到网卡,是没有办法抓包的,下面就VMWare和VirtualBox中如何加载USB无线网卡做简要的说明 之后在虚拟机的右下方找到usb设备,右键,选择连接。 现在检查是否网卡挂接成功,再次输入airmon-ng命令,结果如下: 1.2 VirtualBox下的配置 在启动Kali Linux之前,打开虚拟机设置,选择usb设备。 点击添加设备按钮: 在设备列表中选择你的USB无线网卡。 在网络配置界面,勾选启用网络连接。 启动虚拟机。

    6.5K30

    扫码关注腾讯云开发者

    领取腾讯云代金券