在刚把电脑系统转为linux之后,一直觉得需要通过命令:sudo rmmod psmouse来完成禁用触摸板的操作实在是太不方便了,于是就想着用一个python脚本来完成该操作。...于是在网上找到了pyUSB这个python库,可以轻松的完成对usb设备的操作。...我的整个思路是这样的,首先开机启动一个python程序,不断运行,不停的检查usb设备中是否有usb鼠标的身影,如果有,那么执行上面的那个禁用触摸板的命令,如果没有,就启用触摸板。...关于判断插入usb鼠标的代码已经完成,关于usb设备的必备知识: USB设备分类 USB从设备的分类可以从USB设备接口描述符(Standard Interface Descriptor)对应的的...下面是代码:(当然,前提是你要安装PyUSB库) import usb import os busses = usb.busses() for bus in busses: devices = bus.devices
五、端点与管道 1、管道的概念 管道是主机软件(数据缓存区),和USB设备各各端点之间的数据传输连接,他是两者之间通信流的抽象(实际上数据传输是USB总线接口完成)。...1)、“流”指不具有USB定义格式的数据流,流通道中的数据是流的形式,也就是该数据内容不具有USB要求的结构。...数据从流通道一端流进的顺序与它们从流通道另一端流出时的顺序是一样的(先进先出),并且流通道中的通信流总是单向的。 2)、“消息”指具有某种USB定义格式的数据流。...为了能够容纳请求/数据/状态的变化,消息通道要求数据有一个格式,此格式保证了命令能够被可靠地传送和确认。消息通道允许双方向的信息流。 六、端点的传输类型 一个具体的端点只能属于四个传输模式下中的一种。...数据传输类型分为四种分别是:控制传输、批量传输、同步传输和中断传输。一般情况下,通常把工作在什么模式下的端点就叫什么端点,例如:控制端点、批量端点、同步端点和中断端点。
一、Linux下Oracle数据库常用命令 Oracle用户下执行: $ sqlplus system/manager @ file.sql 执行sql脚本文件 $ sqlplus system/manager...Sqlplus下执行: sqlplus system/manage as sysDBA SQL> conn / as sysDBA sysDBA用户模式连接 SQL> startup 启动数据库 SQL...~~~~~~今就想到这些,先写到这,呵呵~~~ 二、Linux监听配置 相关说明: Oracle11g64位软件的安装位置为/u01/app/oracle/product/11.2.0/dbhome_...1 ,数据库名为默认的orcl,linux虚拟机的IP设置为192.168.1.121 先看看状态 lsnrctl status 查看listener状态 lsnrctl start 启动Oracle...下开放1521端口 1.
最近 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
一、前言 libuvc是一个开源的库,用于在Linux和其他操作系统上与USB视频设备进行交互。提供了一组函数和接口,使开发人员可以轻松地访问和控制USB摄像头。...libuvc库实现了对UVC(USB Video Class)设备的支持。UVC是一个标准的USB设备类别,用于视频流传输和摄像头控制。...通过使用libuvc库,开发人员可以从USB摄像头中获取视频流数据,并对摄像头的设置和属性进行控制,例如分辨率、帧速率、曝光等。...libuvc库提供了针对各种常见操作系统的API,包括Linux、Windows、macOS、Android等。使用USB协议与摄像头通信,并处理底层协议细节,简化了开发人员的工作。...libuvc仓库地址在这里:https://github.com/libuvc/libuvc 在Linux下的安装也是非常的简单。
Linux 内核源码:include\linux\usb.h Linux 内核源码:drivers\hid\usbhid\usbmouse.c 1....接口函数 在 USB 设备驱动程序中,能使用的 USB 函数都在这个头文件里:include\linux\usb.h。...关键就在于需要填充 URB: dev:跟谁传输数据 pipe:跟哪个 pipe 传输数据 buffer:里面存有要发送的数据,或者用来接收要读取的数据 数据长度 回调函数 2.3.1 分配和释放 URB...对于一般的 buffer,在提交 URB 时会临时分配一个 DMA Buffer: 发送数据时:函数内部会先从一般 buffer 中把数据复制到 DMA Buffer,在提交给 USB 控制器 读取数据时...:USB 控制器先把数据传到 DMA Buffer,函数内部在把 DMA Buffer 的数据复制到一般 buffer 中间增加了一次数据的拷贝,效率低 我们可以直接使用 DMA Buffer,函数原型如下
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 高速眼图是否正常。
4 wMaxPacketSize 2 数字 当前配置下此端点能够接收或发送的最大数据包的大小。 对于实进传输,此值用于为每帧的数据净负荷预留时间。...四、 linux内核下USB相关的API函数与数据结构 前面介绍了USB相关一些基础概念与重要的数据结构,接下来就分析在linux内核中如何编写一个USB 驱动程序,编写与一个USB设备驱动程序的方法和其他总线驱动方式类似...urb(USB Request Block)Linux内核中USB驱动实现上的一个数据结构,用于组织每一次的USB设备驱动的数据传输请求。...该宏定义在linux/module.h>下 这个宏有两个参数,第一个参数设备名,第二个参数该设备加入到模块中时对应产生的设备搜索符号,这个宏生成了一个名为__mod_pci_device_table...该宏定义在linux/module.h>下 这个宏有两个参数,第一个参数设备名,第二个参数该设备加入到模块中时对应产生的设备搜索符号,这个宏生成了一个名为__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 国际许可协议 进行许可。
[ 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
,关注我的个人微信公众号,查看更多文章 ~ 事件监听和处理模型 进行网络编程时,一般的编写过程是这样的: 创建服务端Socket,监听某个端口; 当有客户端连接时,会创建一个新的客户端Socket,监听数据的可读...、可写状态,每一个连接请求都会创建一个客户端Socket; 读取和写入数据都会调用Socket提供的接口,接口列表在上一篇提到过; 传统的模型,每个客户端Socket会创建一个单独的线程监听socket...Netty就是采用多路复用IO进行事件监听,另外,使用不同的线程分别处理客户端的连接、数据读写。...整个处理结构如下图,简单说明下: Boss EventLoopGroup主要处理客户端的connect事件,包含多个EventLoop,每个EventLoop一个线程; Worker EventLoopGroup...使用Netty实现Websocket协议 Websocket协议 不是本篇的重点,简单说明下: 是一种长连接协议,大部分浏览器都支持,通过websocket,服务端可以主动发消息给客户端; Websocket
Linux3.11版本引入了基于configfs的usb gadget configfs。...初始化复合设备数据结构usb_composite_dev,设置USB设备描述符。...(gadget_strings, gadget_info); [include/linux/usb/gadget_configfs.h] #define USB_CONFIG_STRINGS_LANG(...gadget configfs代码,分析一下当用户空间配置时,内核中做了什么。...分配f_uac2数据结构,内部包含了usb_function。 填充usb_function数据结构,重要的是设置的回调函数,usb_gadget_driver在适当的时候会回调这些函数。
数据结构体, 分配成功返回一个urb结构体 urb全称为usb request block,USB传输数据时,就是打包成urb结构体来传输 iso_packets:表示iso类型的包个数,这里我们不是iso...设置input_dev支持L、S、回车、3个按键事件 3)注册input_dev结构体 4)设置USB数据传输: ->4.1)通过usb_rcvintpipe()创建一个接收中断类型的端点管道,用来端点和数据缓冲区之间的连接...释放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...未完待续~~~~~~~~~~ 下节 依葫芦画瓢 来写出 USB键盘驱动
/linux_c/usb_dev_ubuntu# 如果提示忙,表示当前系统已经默认挂载。...2.4 查看usbmon可以识别到的USB总线编号 root@wbyq:/mnt/hgfs/linux-share-dir/linux_c/usb_dev_ubuntu# ls /sys/kernel...2.6 监控指定总线上通信的数据 为了只看这个想要的设备数据,可以过滤一下。 后面的 "1:010" ,1表示总线编号。 010表示设备编号。 通过lsusb命令可以看到。...cat /sys/kernel/debug/usb/usbmon/1u | grep "1:010" 输入: cat /sys/kernel/debug/usb/usbmon/3u 读取总线上全部数据...root@wbyq:/mnt/hgfs/linux-share-dir/linux_c/usb_dev_ubuntu# cat /sys/kernel/debug/usb/usbmon/3u ffff9bbbaf235b00
于是灵机一动,直接把ssh监听多个端口,其中一个是非常用端口,然后网络策略申请到这个端口,不就可以了嘛,机制的一批。...在原来的Port xxx下面直接添加Port new_port(你想要监听的端口,比如60901) # If you want to change the port on a SELinux system
比如最近我本想安装个linux,选了一款兼容linux的网卡,突然一抽风又想装个黑苹果,结果兼容linux的网卡并不兼容黑苹果,装到一半装不下去了,这就尴尬了。...由于手边没有合适的网卡,因此只好急中生智,“独辟蹊径”地想了个办法来解决上网问题,因为彻底绕开了usb,没想到意外地解决了usb网卡不兼容这个老大难的问题,下面我将简单介绍一下这个万能方法。...解决方法 很多朋友使用usb无线网卡或是因为电脑离路由器太远,插网线不方便,或是有移动需求,但电脑没有无线网卡,因此usb网卡自然而然就成了首选。...但这里有个容易钻牛角尖问题,在usb网卡驱动不了的情况下,我们的目的依然是要上网而不是一定要把usb网卡驱动起来。...我们以水晶WM310R为例,来演示一下具体步骤。
事件说明 我们将键盘按下后事件的所有属性和方法打印出来(这里以按下1为例) document.onkeydown = function(event){ console.log(event)...; } 这里面有几个需要注意的属性 key:按下按键的名称 keyCode:按下按键的键码 altKey、ctrlKey、shiftKey:当组合按下(如ctrl+c)时,ctrlKey会变为...console.log("按下:"+event.key+"键:"+event.keyCode); } 按下任意按键后的效果: 二、监听回车按下事件 这里以回车键(键码为13)为例 ,如果需要监听不同的按键...document.onkeydown = function(event){ if(event.keyCode==13){ // 事件 console.log("按下了回车键") } } 三、监听组合键...这里以CTRL+A为例 altKey:按下Alt+*组合键时为true ctrlKey:按下Ctrl+*组合键时为true shiftKey:按下Shift+*组合键时为true document.onkeydown
USB是一种主从通信机制,所有互相连接在一起的设备中只有一个主机,其余的都是从机。从机不能主动发起通信,主机轮流对各从机进行访问。...USB协议比较复杂,这是因为USB的硬件接口线比较少,要完成很多的功能就只能把协议做的复杂。...USB协议里面有个描述符,分为好多个子类(设备描述符、配置描述符、接口描述符、端点描述符、字符串描述符、设备限定符描述符)。这些描述符其实就是一个个数据结构,对应程序里的几个结构体。...表征USB的状态,在主机询问时,将自身的状态汇报给主机。比如: 主机:性别? 从机:男 主机:身高? 从机:180 ...... 从机回答的这些自身属性的就是那些描述符中的数据。...不考虑USB具体的协议的话,数据传输并不复杂,就是主机轮询各个从机数据,传输按照功能等分了四种,分别是控制传输,中断传输,同步传输,批量传输。不同的USB设备使用各种传输进行数据收发。
事实上通过wireshark,我们可以捕获到usb设备发送给我们主机的数据,这样就可以进一步研究了。...本文中,我们将向大家介绍怎样通过wireshark捕获usb数据,使用的环境如下: l Wireshark 2.0.1(SVN)l Linux kernel 4.1.6 你也可以用其他版本的wireshark...这种方式下,设备只是简单的将USB用于接受和发射数据,除此之外就再没有其他通讯功能了。 HID是人性化的接口。这一类通讯适用于交互式,有这种功能的设备有:键盘,鼠标,游戏手柄和数字显示设备。...Bus 003 Device 010代表usb设备正常连接,这点需要记下来。 准备 我们用root权限运行Wireshark捕获USB数据流。但是通常来说我们不建议这么做。...我们需要给用户足够的权限来获取linux中的usb数据流。我们可以用udev来达到我们的目的。我们需要创建一个用户组usbmon,然后把我们的账户添加到这个组中。
领取专属 10元无门槛券
手把手带您无忧上云