解决USB设备 descriptor read/64, error -62 错误
4星 · 超过85%的资源 需积分: 48 64 浏览量
更新于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 上传
2011-03-14 上传
2019-03-03 上传
2023-11-23 上传
2023-06-11 上传
2023-06-11 上传
2023-06-11 上传
2023-04-28 上传
2023-06-11 上传
wenxiaohua_supper
- 粉丝: 23
- 资源: 18
最新资源
- NIST REFPROP问题反馈与解决方案存储库
- 掌握LeetCode习题的系统开源答案
- ctop:实现汉字按首字母拼音分类排序的PHP工具
- 微信小程序课程学习——投资融资类产品说明
- Matlab犯罪模拟器开发:探索《当蛮力失败》犯罪惩罚模型
- Java网上招聘系统实战项目源码及部署教程
- OneSky APIPHP5库:PHP5.1及以上版本的API集成
- 实时监控MySQL导入进度的bash脚本技巧
- 使用MATLAB开发交流电压脉冲生成控制系统
- ESP32安全OTA更新:原生API与WebSocket加密传输
- Sonic-Sharp: 基于《刺猬索尼克》的开源C#游戏引擎
- Java文章发布系统源码及部署教程
- CQUPT Python课程代码资源完整分享
- 易语言实现获取目录尺寸的Scripting.FileSystemObject对象方法
- Excel宾果卡生成器:自定义和打印多张卡片
- 使用HALCON实现图像二维码自动读取与解码