Linux 内核中USB鼠标枚举失败问题总结
一、环境:
机器平台:linux
内核版本:linux-3.4
二、问题:
USB鼠标接入后报错,log显示设备无法枚举
usb 1-1: new low-speed USB device number 10 using musb-hdrc
hub 1-0:1.0: unable to enumerate USB device on port 1
三、问题分析:
从log中可以看到,鼠标接入后,系统已经识别到全速设备,但是在枚举过程出现异常,导致设备枚举失败。设备枚举没有通过,此时还没有进入设备驱动环节,所以跟内核中USB鼠标驱动配置没有关系。
设备枚举异常通常跟硬件电路有关系,一般情况下是USB供电不足或者USB走线有干扰引起的。
USB走线干扰问题确认:
可以通过U盘或者其他USB设备间接定位下干扰问题,如果其他设备必现或者概率性出现工作不稳定的情况,说明硬件电路存在明显的干扰问题。
USB供电不足问题确认:
中间连接一个USB HUB,HUB可以提升供电电压。
四、问题定位
通过上述步骤三中的分析,定位到问题是USB供电不足,中间连接HUB后工作正常。
HUB连接打印:
musb-hdrc musb-hdrc.0:
usb 1-1: new high-speed USB device number 13 using musb-hdrc
hub 1-1:1.0: USB hub found
hub 1-1:1.0: 4 ports detectedHUB上接鼠标打印:
usb 1-1.1: new low-speed USB device number 14 using musb-hdrc
usbhid_probe start....................
input: SiGmaMicro Lenovo USB Optical Mouse as /devices/platform/musb-ark1680.0/musb-hdrc.0/usb1/1-1/1-1.1/1-1.1:1.0/input/input2
generic-usb 0003:17EF:608D.0001: input,hidraw0: USB HID v1.10 Mouse [SiGmaMicro Lenovo USB Optical Mouse] on usb-musb-hdrc.0-1.1/input0
连接鼠标后,/dev/input目录下新增event2节点,说明鼠标设备已经正常识别。
五、鼠标测试
控制台输入:cat /dev/input/event2| hexdump
滚动鼠标滚轮后收到鼠标事件,如下所示:
/ # cat dev/input/event2| hexdump
?
0000000 08f4 0000 3690 0007 0002 0000 ffff ffff
0000010 08f4 0000 369e 0007 0002 0001 ffff ffff
0000020 08f4 0000 36a8 0007 0000 0000 0000 0000
0000030 08f4 0000 6f06 0008 0002 0001 0002 0000
0000040 08f4 0000 6f17 0008 0000 0000 0000 0000
0000050 08f4 0000 9607 0008 0002 0001 0004 0000
0000060 08f4 0000 9615 0008 0000 0000 0000 0000
0000070 08f4 0000 bd15 0008 0002 0001 0005 0000
0000080 08f4 0000 bd22 0008 0000 0000 0000 0000
0000090 08f4 0000 e42a 0008 0002 0008 ffff ffff
00000a0 08f4 0000 e42f 0008 0000 0000 0000 0000
00000b0 08f4 0000 5956 0009 0002 0001 0003 0000
00000c0 08f4 0000 5963 0009 0000 0000 0000 0000
00000d0 08f4 0000 805a 0009 0002 0000 0001 0000
00000e0 08f4 0000 8064 0009 0002 0001 0001 0000
00000f0 08f4 0000 806f 0009 0000 0000 0000 0000
0000100 08f4 0000 a767 0009 0002 0000 0002 0000
0000110 08f4 0000 a779 0009 0000 0000 0000 0000
相关文章:
Linux 内核中USB鼠标枚举失败问题总结
一、环境: 机器平台:linux 内核版本:linux-3.4 二、问题: USB鼠标接入后报错,log显示设备无法枚举 usb 1-1: new low-speed USB device number 10 using musb-hdrc hub 1-0:1.0: unable to enumerate USB device o…...
十六进制转二进制
128 64 32 16 8 4 2 1 十六进制:0~9ABCDEF(A是10、B是11、C是12、D是13、E是14、F是15) 每一个十六进制位转换成4个二进制位,左边不足4个补0 示例: 109CBE:0001 0000 1001 1100 1011 1110 8 4 2 1 1 …...
Python保存CSV文件,Excel打开后中文乱码
情况描述 在做多语言文件处理时, 使用 pandas, 并且指定了encoding为 UTF-8, 在 IDE, Sublime等编辑器上查看都显示正常,使用Excel打开非英文字符, 例如汉字, 阿拉伯文, 希伯来文等显…...

数据湖数据仓库数据集市数据清理以及DataOps
一提到大数据我们就知道是海量数据,但是我们并不了解需要从哪些维度去考虑这些数据的存储。比如 数据湖、数据仓库、数据集市,以及数据自动化应用DataOps有哪些实现方式和实际应用,这篇文章将浅显的做一次介绍。 数据湖 数据湖是一种以自然…...

「Ubuntu」文件权限说明(drwxr-xr-x)
我们在使用Ubuntu 查看文件信息时,常常使用 ll 命令查看,但是输出的详细信息有些复杂,特别是 类似与 drwxr-xr-x 的字符串,在此进行详细解释下 属主:所属用户 属组:文件所属组别 drwxr-xr-x 7 apps root 4…...
JS-学生管理系统(功能实现)
基础知识点掌握: 1.DOM节点 首先DOM树当做一颗到着生长的树,DOM树里面的每一个内容称为节点 节点类型: 属性节点元素节点文本节点其他 2.查找节点: 查找节点分为3个类型: 父节点子节点兄弟节点 (1&…...

C# 屏幕录制工具
屏幕录制工具 开发语音:C# vb.net 下载地址:https://download.csdn.net/download/polloo2012/89879996 功能:屏幕录制,声卡采集,麦克风采集。 屏幕录制:录制屏幕所有操作,并转换视频格式&…...

前端开发攻略---前端ocr图片文字提取功能
1、引入资源 通过链接引用 <script src"https://cdn.bootcdn.net/ajax/libs/tesseract.js/5.1.0/tesseract.min.js"></script> npm或其他方式下载 npm i tesseract 2、示例 <!DOCTYPE html> <html lang"en"><head><meta…...

平凯星辰亮相 2024开放原子开源生态大会,分享开源教育及社区治理经验
9 月 25-27 日,2024 开放原子开源生态大会在北京成功举办,本次大会以“开源赋能产业,生态共筑未来”为主题,由开放原子开源基金会主办,聚焦地方开源实践、企业开源建设思路,围绕开源生态建设,突…...

OCR经典神经网络(二)文本检测算法DBNet算法原理及其在icdar15数据集上的应用
OCR经典神经网络(二)文本检测算法DBNet算法原理及其在icdar15数据集上的应用 场景文本检测任务,一直以来是OCR整个任务中最为重要的一环。虽然有一些相关工作是端对端的,但是从工业界来看,相关落地应用较为困难。因此,两阶段的OC…...

论文笔记:Prompt-Based Meta-Learning For Few-shot Text Classification
论文来源:EMNLP 2022 论文地址:2022.emnlp-main.87.pdf (aclanthology.org) 代码地址:GitHub - MGHZHANG/PBML GB/T 7714 Zhang H, Zhang X, Huang H, et al. Prompt-Based Meta-Learning For Few-shot Text Classification[C]//Proceedi…...

光耦知识分享 | AC晶体管光耦在照明控制领域的应用与选型推荐
随着智能建筑与智能家居技术的迅猛崛起,照明控制技术亦随之日新月异。传统的照明控制手段已难以适应现代化、智能化的新需求。在这样的技术革新浪潮中,AC晶体管光耦以其卓越的性能和可靠性,成为了照明控制领域中不可或缺的一环。AC晶体管光耦…...

RBTree(红黑树)的介绍和实现
欢迎来到杀马特的主页:羑悻的小杀马特.-CSDN博客 目录 编辑 一红黑树介绍: 1.1红黑树概念: 1.2红黑树遵循的原则: 1.3红黑树效率分析: 二.红黑树的实现: 2.1红黑树结构: 2.2红黑树节点…...

信息安全数学基础(30)指数及其基本性质
一、指数的定义 数学定义: 指数是幂运算a3表示3个a相乘。 经济学定义: 广义地讲,任何两个数值对比形成的相对数都可以称为指数。狭义地讲,指数是用于测定多个项目在不同场合下综合变动的一种特殊相对数。 二、指数的基本性质…...

Android开发首页底部tab切换图标有动画效果
Android开发首页底部tab切换图标有动画效果 主页tab切换很正常,但往往加上写动画更好看 一、思路: 用属性动画,并且事先准备多张图片,用于切换后播放动画 二、效果图: 单纯图看不出来,看下视频效果 An…...

Web前端高级工程师培训:异步处理专题
异步处理专题 课前准备 工具 编辑器 VSCode浏览器 Chorme 前置知识 ES6基础语法 课堂主题 同步及异步概念方块运动的实现promise的用法then的返还值Async 函数 和 await 课堂目标 理解并学会使用promise使用方式以及async 、await的使用 同步异步概念 js是单线程 单线程…...

ESP32-C3实现热点并在浏览器中输入域名访问网页
源代码 #include <WiFi.h> // 引入 WiFi 库,用于处理网络连接 #include <WebServer.h> // 引入 WebServer 库,用于创建 HTTP 服务器 #include <DNSServer.h> // 引入 DNSServer 库,用于处理 DNS 请…...
基于Python的自然语言处理系列(32):spaCy属性扩展
1. 介绍 在 spaCy 中,自定义扩展属性让我们能够为 Doc、Token 和 Span 对象添加元数据。通过这些扩展属性,开发者可以根据需要存储额外的上下文信息,或者动态计算属性值。 自定义属性通过点下划线(dot-underscore)属性访问,例如 token._.is_color。这种命名方式确保这些属…...
STM32 输入捕获模式详解:PWM 输入捕获与 PWI 模式(续篇)
在前两篇文章中,我们探讨了 STM32 输入捕获的基础和 PWI 模式的工作原理,特别是定时器的两个通道如何协同工作以捕获 PWM 信号。本文将进一步结合 STM32 标准库函数中的 TIM_PWMIConfig(),来讲解如何通过库函数配置定时器实现 PWI 模式。 我…...

【C++】set/map(重点解析)
目录 一、关联式容器和序列式容器 二、C中的键值对——pair 1.概念 2.定义 3.构造pair 三.set 1.construct构造 2.iterator迭代器 3.insert插入 4.erase删除 5.find查找 6.lower_bound和upper_bound 7.count 四.multiset 五.map 1.insert 2.operator[] 一、…...

C++ 求圆面积的程序(Program to find area of a circle)
给定半径r,求圆的面积。圆的面积应精确到小数点后5位。 例子: 输入:r 5 输出:78.53982 解释:由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982,因为我们只保留小数点后 5 位数字。 输…...
鱼香ros docker配置镜像报错:https://registry-1.docker.io/v2/
使用鱼香ros一件安装docker时的https://registry-1.docker.io/v2/问题 一键安装指令 wget http://fishros.com/install -O fishros && . fishros出现问题:docker pull 失败 网络不同,需要使用镜像源 按照如下步骤操作 sudo vi /etc/docker/dae…...
【碎碎念】宝可梦 Mesh GO : 基于MESH网络的口袋妖怪 宝可梦GO游戏自组网系统
目录 游戏说明《宝可梦 Mesh GO》 —— 局域宝可梦探索Pokmon GO 类游戏核心理念应用场景Mesh 特性 宝可梦玩法融合设计游戏构想要素1. 地图探索(基于物理空间 广播范围)2. 野生宝可梦生成与广播3. 对战系统4. 道具与通信5. 延伸玩法 安全性设计 技术选…...
Redis:现代应用开发的高效内存数据存储利器
一、Redis的起源与发展 Redis最初由意大利程序员Salvatore Sanfilippo在2009年开发,其初衷是为了满足他自己的一个项目需求,即需要一个高性能的键值存储系统来解决传统数据库在高并发场景下的性能瓶颈。随着项目的开源,Redis凭借其简单易用、…...

Git 3天2K星标:Datawhale 的 Happy-LLM 项目介绍(附教程)
引言 在人工智能飞速发展的今天,大语言模型(Large Language Models, LLMs)已成为技术领域的焦点。从智能写作到代码生成,LLM 的应用场景不断扩展,深刻改变了我们的工作和生活方式。然而,理解这些模型的内部…...
日常一水C
多态 言简意赅:就是一个对象面对同一事件时做出的不同反应 而之前的继承中说过,当子类和父类的函数名相同时,会隐藏父类的同名函数转而调用子类的同名函数,如果要调用父类的同名函数,那么就需要对父类进行引用&#…...
安卓基础(Java 和 Gradle 版本)
1. 设置项目的 JDK 版本 方法1:通过 Project Structure File → Project Structure... (或按 CtrlAltShiftS) 左侧选择 SDK Location 在 Gradle Settings 部分,设置 Gradle JDK 方法2:通过 Settings File → Settings... (或 CtrlAltS)…...

Android写一个捕获全局异常的工具类
项目开发和实际运行过程中难免会遇到异常发生,系统提供了一个可以捕获全局异常的工具Uncaughtexceptionhandler,它是Thread的子类(就是package java.lang;里线程的Thread)。本文将利用它将设备信息、报错信息以及错误的发生时间都…...

aardio 自动识别验证码输入
技术尝试 上周在发学习日志时有网友提议“在网页上识别验证码”,于是尝试整合图像识别与网页自动化技术,完成了这套模拟登录流程。核心思路是:截图验证码→OCR识别→自动填充表单→提交并验证结果。 代码在这里 import soImage; import we…...
Django RBAC项目后端实战 - 03 DRF权限控制实现
项目背景 在上一篇文章中,我们完成了JWT认证系统的集成。本篇文章将实现基于Redis的RBAC权限控制系统,为系统提供细粒度的权限控制。 开发目标 实现基于Redis的权限缓存机制开发DRF权限控制类实现权限管理API配置权限白名单 前置配置 在开始开发权限…...