解决USB设备 descriptor read/64, error -62 错误
4星 · 超过85%的资源 需积分: 48 13 浏览量
更新于2024-09-15
11
收藏 80KB DOC 举报
"本文主要探讨如何解决USB设备在插入时出现的'device descriptor read/64, error -62'错误,特别是在Linux环境下,针对s3c2410-ohci控制器的设备。该问题通常与USB主机控制器的初始化和设备枚举过程中的时序或配置错误有关。"
USB设备在插入时遇到的错误`device descriptor read/64, error -62`表明设备描述符读取过程中发生了问题。设备描述符是USB设备向主机报告其功能和能力的数据结构,如果无法正确读取,主机将无法识别和配置设备,导致连接失败。错误-62通常表示硬件故障或驱动程序错误。
在Linux内核中,特别是针对s3c2410-ohci(Open Host Controller Interface)的驱动,这个问题可能源于USB主机控制器的时钟配置。s3c2410-ohci驱动用于管理Samsung的S3C2410微处理器上的USB 1.1主控制器。当设备无法接受地址分配时,这可能是因为控制器没有正确设置或时钟频率不稳定。
在给出的代码片段中,可以看到针对`s3c2410_start_hc`函数的修改。这个函数负责启动USB控制器,并对其进行初始化。在修改后的版本中,首先设置了较高的时钟频率`upllvalue`和`upllvalue1`,然后在完成USB设备初始化后再恢复到正常频率48MHz。这种做法的目的是确保在设备枚举期间有足够的时钟稳定性,从而避免因时钟问题导致的错误。
修复步骤如下:
1. 找到内核源码中对应的`kernel26_h/drivers/usb/host/ohci-s3c2410.c`文件。
2. 修改`s3c2410_start_hc`函数,按照提供的代码增加高时钟频率的设置。
3. 重新编译并加载修改后的内核模块,或者在系统中更新内核以应用更改。
4. 重启系统,测试USB设备是否能被正确识别和枚举。
此外,还需要检查其他可能的原因,如USB总线的电源问题、硬件接触不良、USB驱动程序的兼容性问题以及内核版本与硬件之间的兼容性。如果问题仍然存在,可以尝试回退到已知良好的内核版本,或者查找与s3c2410-ohci相关的更新和补丁。
在处理这类问题时,日志分析是非常重要的,可以提供关于错误发生时的详细信息。通过观察`dmesg`命令的输出,可以获取更多有关USB控制器和设备交互的实时信息,帮助定位问题的根源。
解决USB设备的`device descriptor read/64, error -62`错误通常需要深入理解USB协议、内核驱动工作原理以及特定硬件的时序要求。通过调整时钟设置、排查硬件问题以及更新或修复驱动程序,大多数情况下都能找到解决方案。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2018-08-27 上传
2023-06-11 上传
2023-11-23 上传
2023-06-11 上传
2023-06-09 上传
2023-06-11 上传
wenxiaohua_supper
- 粉丝: 24
- 资源: 18
最新资源
- 火炬连体网络在MNIST的2D嵌入实现示例
- Angular插件增强Application Insights JavaScript SDK功能
- 实时三维重建:InfiniTAM的ros驱动应用
- Spring与Mybatis整合的配置与实践
- Vozy前端技术测试深入体验与模板参考
- React应用实现语音转文字功能介绍
- PHPMailer-6.6.4: PHP邮件收发类库的详细介绍
- Felineboard:为猫主人设计的交互式仪表板
- PGRFileManager:功能强大的开源Ajax文件管理器
- Pytest-Html定制测试报告与源代码封装教程
- Angular开发与部署指南:从创建到测试
- BASIC-BINARY-IPC系统:进程间通信的非阻塞接口
- LTK3D: Common Lisp中的基础3D图形实现
- Timer-Counter-Lister:官方源代码及更新发布
- Galaxia REST API:面向地球问题的解决方案
- Node.js模块:随机动物实例教程与源码解析