跳转至

FAQ

3 FAQ

3.1 常见问题

3.1.1 USB 基本功能异常排查

3.1.1.1 USB Host 基本功能异常排查步骤

多找几个 USB 设备试试,排除个别 USB 设备本身的问题。

多更换几根 USB 线缆试试,排除个别 USB 线缆的问题。

多找几个 PC 主机做相同的实验,作为参考对比。若在 PC 有相同现象,则认为正常。

若硬件有多个 USB 口,尝试同样条件下测试其他 USB 口的主机功能是否正常。

样机设备 USB 口外接独立供电的 USB-HUB 设备,再将 USB 设备连接到 USB-HUB 上,确认主机功能是否正常。

确认主机驱动是否加载成功。

(1)若为 USB0 口,则可通过如下方式确认:

cat /sys/devices/platform/soc/usbc0/otg_role

(2)若为 USB1 口,可通过如下方式确认:

cat sys/devices/platform/soc/5200000.ehci1-controller/ehci_enable
cat sys/devices/platform/soc/5200000.ohci1-controller/ohci_enable

若为0,则没有加载Host驱动。

重新加载 Host 驱动,确认此时功能是否正常。

(1)若为 USB0 口,则可通过如下方式:

方式1:重新插拔OTG线。
方式2:手动切换到Host模式。

(2)若为 USB1 口,则可通过卸载驱动、再加载驱动。

对比 SDK 代码与最新发布的代码或者补丁, 确认代码是否更新到最新。

同样条件下,分别打印出功能异常板子和功能正常板子的相关寄存器,并进行对比,确认是否有不同之处。

出现异常时,测试 USB 高速眼图是否正常。

若眼图测试未通过,可尝试调节眼图参数。

3.1.1.2 USB Device 基本功能异常排查步骤

多换几个 PC 主机做相同的测试,排除个别 PC 的问题。

多更换几根 USB 线缆做相同的测试,排除个别 USB 线缆的问题。

确认 Device 驱动是否加载成功,可通过如下方式:

(1)通过 Log。

[ 104.732695]  insmod_device_driver
[ 104.732695] 
device_chose finished!

(2)通过节点查看当前 Role。

重新加载 Device 驱动,确认此时功能是否恢复正常。

(1)重新插拔 USB 线。

(2)手动切换到 Device 模式。

对比 SDK 代码与最新发布的代码或者补丁, 确认代码是否更新到最新。

同样条件下,分别打印出功能异常板子和功能正常板子的相关寄存器,并进行对比,确认是否有异常。

出现异常时,确认 USB 高速眼图是否正常。

3.1.2 配置其他 gadget 功能前关闭 adb 功能时却报异常的解决办法

问题产生的原因是:仅执行./etc/adb_conf.sh stop 只是强制杀死 adb 守护进程,但 adb 功能链接仍存,当配置其他 gadget 功能时,便会复合 adb 链接导致异常,故在需要配置其他 gadget 功能时,除了强制杀死 adb 守护进程还须移除 adb 功能链接,在小机中操作步骤如下:

1、./etc/adb_conf.sh stop
2、umount /sys/kernel/config
3、rm -fr /sys/kernel/config/usb_gadget/g1/configs/c.1/ffs.adb

执行以上操作,正常关闭 adb 后,根据需要的 gadget 功能,参考【附录】章节进行配置即可。