当前位置: 首页 > news >正文

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 detected

HUB上接鼠标打印:

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

http://www.lryc.cn/news/459228.html

相关文章:

  • 十六进制转二进制
  • Python保存CSV文件,Excel打开后中文乱码
  • 数据湖数据仓库数据集市数据清理以及DataOps
  • 「Ubuntu」文件权限说明(drwxr-xr-x)
  • JS-学生管理系统(功能实现)
  • C# 屏幕录制工具
  • 前端开发攻略---前端ocr图片文字提取功能
  • 平凯星辰亮相 2024开放原子开源生态大会,分享开源教育及社区治理经验
  • OCR经典神经网络(二)文本检测算法DBNet算法原理及其在icdar15数据集上的应用
  • 论文笔记:Prompt-Based Meta-Learning For Few-shot Text Classification
  • 光耦知识分享 | AC晶体管光耦在照明控制领域的应用与选型推荐
  • RBTree(红黑树)的介绍和实现
  • 信息安全数学基础(30)指数及其基本性质
  • Android开发首页底部tab切换图标有动画效果
  • Web前端高级工程师培训:异步处理专题
  • ESP32-C3实现热点并在浏览器中输入域名访问网页
  • 基于Python的自然语言处理系列(32):spaCy属性扩展
  • STM32 输入捕获模式详解:PWM 输入捕获与 PWI 模式(续篇)
  • 【C++】set/map(重点解析)
  • 【算法篇】动态规划类(1)(笔记)
  • mysql学习教程,从入门到精通,SQL 约束(Constraints)(41)
  • 使用CSS3与JavaScript实现炫酷的3D旋转魔方及九宫格交换动效
  • springboot项目通过maven的profile功能实现通过不同文件夹的方式来组织不同环境配置文件
  • GAN(Generative Adversarial Nets)
  • linux下使用mpi求自然数和
  • WebGl学习使用attribute变量绘制一个水平移动的点
  • 机器学习四大框架详解及实战应用:PyTorch、TensorFlow、Keras、Scikit-learn
  • linux源码安装slurm以及mung和openssl
  • 分享蓝牙耳机A2DP音频卡顿原因及解决思路
  • Mac 下编译 libaom 源码教程