调试高通USB,板上带有HUB,调试的时候发现鼠标可以识别,正常工作,但U盘不能识别。
一般来说鼠标交互数据少,U盘交互数据多,鼠标可以,说明硬件通道和软件识别没有问题,以前这种不涉及HUB,一般是USB参数问题,即眼图效果不好,调整眼图参数可以解决。
但HUB有点不一样,手头刚好有外置hub,发现外置hub可以识别,板载HUB通过LOG比较,终于发现问题点。
05-11 18:51:20.432 0 0 I usb 1-1.3: rejected 1 configuration due to insufficient available bus power
05-11 18:51:20.432 0 0 W usb 1-1.3: no configuration chosen from 1 choice
这个Log是与正常log不一样,显示是不够电,看起来是config交互的时候,交互说明bus power不够,因此上网查了一下
(4条消息) USB error: no configuration chosen from 1 choice_Sandy_Le的博客-CSDN博客
这位大神给出了答案,非常感谢。
在kernel/driver/usb/core中找到hub.c
设备被设置为100mA, 只需将其设置为500mA即可
hub_configure-----
hub->mA_per_port = 500; //unit_load
当然这个没有考虑hub真实的电流容量和分配,由于所用的场景是不需要考虑电流容量问题,因此这样修改可以解决读U盘报错的问题