明明内核配置了cdc_acm,dmesg | grep acm也有,lsusb却看不到设备。
排查思路:
主机端:
1、设备树是否使能。
2、主模式和从模式是否配置正确。
设备端:
设备端有条件的话可以插入其它设备看,或者复位设备模拟设备重新插拔。
具体为:
1)主机端设备树 usb相关的状态是否为 okay ,如果为disable 修改为 okay。 一种更快捷的方法是反汇编设备树,然后查看设备树中usb节点的状态。
反汇编的大致为
dtc -I dtb -O dts -o my.dts arm-org.dtb
这将生成一个名为 my.dts 的文件,内容是原 .dtb 文件的反汇编设备树源码。
grep -i "usb" my.dts
另外如果 /sys/kernel/debug/msm_otg 这个目录都不存在,说明设备都没有使能usb。
2、主机usb模式的切换
cat /sys/kernel/debug/msm_otg/mode
如果为peripheral则是从机模式,切换为主机模式