解决方案:解决USB3接口下adb shell无法运行的问题
问题陈述
一个开发人员表示,他在尝试通过ADB连接一块RK30SDK板子时遇到了一些困难。当他使用USB3接口进行连接后,只能成功进入设备的引导状态(如fastboot oem version-get
能正常工作),而执行ADB shell命令却抛出了“Operation not permitted”的错误。
背景信息
- RK30SDK是Rockchip公司的一款低成本开发板。
- 问题主要发生在USB3接口,而转到USB2接口后情况有所改善。
发生的时间与地点
- 在一次特定的实验过程中,该开发人员于某年12月30日分别在不同时间尝试了两次不同的连接方式(即USB2和USB3)。
- 事件发生的具体时间和电脑环境均涉及一个名为“icebox”的设备或系统。
具体问题与症状
- 开发人员使用
adb devices
确认设备已经连接,但在执行任何关于shell的命令时遇到了问题:比如输出包括”Operation not permitted”在内的错误信息。 - 分别在USB2和USB3上实验显示了不同的结果:USB2口可以正常通过
adb shell
进入shell环境。
技术排查过程
开发人员进行了以下几步操作:
1. 确认板子是否正确连接,是否能被电脑识别和被fastboot模式检测。
2. 检查与ADB命令相关的日志信息。
具体输出如下面示例显示:
# 此为在USB3接口时的log
Dec 30 20:37:49 icebox colord: Device added: sysfs-rockchip-rk30sdk
...
Dec 30 20:38:03 icebox kernel: ... (其他日志)
[1153.038284] usb 9-1.1: ...
...(省略更多细节)
解决措施及效果
经过多番尝试后,开发人员发现转到USB2接口后,使用adb shell
能够正常工作。这一行为可以解释为:相较于标准未完全遵守的USB3端口的驱动程序表现更加宽容。
总结与建议
解决此问题的一个有效途径是将设备连接至支持USB 2.0规范较为严格的非3.0接口,或进行更深层次的驱动代码审查以改进对不合规设备的支持处理。这一方式已由其他使用相同硬件配置(如Mac笔记本)的研究人员证实为可行。
注意事项:以上信息均基于特定事件和情境产生,实际应用时可能需要根据具体情况调整方法和手段。
正文完