rk3588端使用UAC2 gadget设备只有第一次创建能被外部windows电脑枚举,卸载uac2 gadget再创建后无法再次被枚举(必现问题)
硬件链接方式:
安卓端生成UAC2设备,通过otg线链接到外部windows电脑
开机后使用以下命令创建uac设备:
mkdir /config/usb_gadget/g1/functions/cvt_uac2.usb0
echo "none" > /config/usb_gadget/g1/UDC
echo UVC_UAC > /config/usb_gadget/g1/strings/0x409/product
echo "comm_audio_touch_ncm" > /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration
删除link的function
rm -rf /config/usb_gadget/g1/configs/b.1/f*
链接function
ln -s /config/usb_gadget/g1/functions/cvt_uac2.usb0 /config/usb_gadget/g1/configs/b.1/f2
使能udc
echo fc000000.usb > /config/usb_gadget/g1/UDC
setprop sys.usb.state fc000000.usb
第一次创建后能够被windows电脑正常枚举:
再次# 删除link的uac2 function重新创建后无法被windows电脑枚举:
无法获取配置描述符,不断触发usb reset
以下是使用wireshark重新抓取了枚举异常的过程,获取配置描述符后host端没有进行下一步动作,一段时间后就发起了reset操作:
补充情况:
1、windows无法枚举时,更换windows电脑也无法恢复,只能通过重启安卓才能恢复,unbind udc也无法恢复。
2、该问题与windows电脑相关,接linux系统能正常枚举。
有大佬解答下为什么吗?