I have soldered USB 2.0 header for GL-B1300

I have soldered USB 2.0 header for GL-B1300

Guys, I’ve soldered an additional USB header offered by GL-B1300 machine;
It works perfectly but still handled by xhci_hcd driver that doesn’t work with Huawei e3372h-153 dongle smoothly (crashes under high-load with 5Ghz is enabled, a kind of well-known bug);
Is there a way to force this additional port to be handled by ehci-hcd explicitly? Yes, I already has all usb2-related packages installed;
I’m using Stable OpenWrt 19.07.5.

Latest log with soldered USB 2.0 crashing:

[10520.213617] usb usb2-port1: Cannot enable. Maybe the USB cable is bad?
[11942.772301] usb usb2-port1: Cannot enable. Maybe the USB cable is bad?
[15316.523431] usb usb2-port1: Cannot enable. Maybe the USB cable is bad?
[17746.661742] usb usb2-port1: Cannot enable. Maybe the USB cable is bad?
[17750.981824] usb usb2-port1: Cannot enable. Maybe the USB cable is bad?
[17896.425110] xhci-hcd xhci-hcd.1.auto: ERROR unknown event type 37
[17905.846983] ------------[ cut here ]------------
[17905.847315] WARNING: CPU: 0 PID: 0 at net/sched/sch_generic.c:320 0xc0661ddc
[17905.850932] NETDEV WATCHDOG: eth2 (cdc_ether): transmit queue 0 timed out
[17905.858164] Modules linked in: pppoe ppp_async option cdc_mbim ath10k_pci ath10k_core ath usb_wwan pppox ppp_generic nf_conntrack_ipv6 mac80211 iptable_nat ipt_REJECT ipt_MASQUERADE huawei_cdc_ncm cfg80211 cdc_subset cdc_ncm cdc_ether cdc_eem xt_time xt_tcpudp xt_tcpmss xt_statistic xt_state xt_recent xt_nat xt_multiport xt_mark xt_mac xt_limit xt_length xt_hl xt_helper xt_ecn xt_dscp xt_conntrack xt_connmark xt_connlimit xt_connbytes xt_comment xt_TCPMSS xt_REDIRECT xt_LOG xt_HL xt_FLOWOFFLOAD xt_DSCP xt_CT xt_CLASSIFY wireguard usbserial usbnet slhc nf_reject_ipv4 nf_nat_redirect nf_nat_masquerade_ipv4 nf_conntrack_ipv4 nf_nat_ipv4 nf_nat nf_log_ipv4 nf_flow_table_hw nf_flow_table nf_defrag_ipv6 nf_defrag_ipv4 nf_conntrack_rtcache nf_conntrack iptable_raw iptable_mangle iptable_filter ipt_ECN ip_tables
[17905.913375]  hwmon crc_ccitt compat cdc_wdm xt_set ip_set_list_set ip_set_hash_netportnet ip_set_hash_netport ip_set_hash_netnet ip_set_hash_netiface ip_set_hash_net ip_set_hash_mac ip_set_hash_ipportnet ip_set_hash_ipportip ip_set_hash_ipport ip_set_hash_ipmark ip_set_hash_ip ip_set_bitmap_port ip_set_bitmap_ipmac ip_set_bitmap_ip ip_set nfnetlink nf_log_ipv6 nf_log_common ip6table_mangle ip6table_filter ip6_tables ip6t_REJECT x_tables nf_reject_ipv6 ehci_platform ehci_hcd ip6_udp_tunnel udp_tunnel mii leds_gpio xhci_plat_hcd xhci_pci xhci_hcd dwc3 dwc3_of_simple gpio_button_hotplug
[17905.965073] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 4.14.209 #0
[17905.987265] Hardware name: Generic DT based system
[17905.993437] Function entered at [<c030e2a8>] from [<c030a7a8>]
[17905.998118] Function entered at [<c030a7a8>] from [<c07416f4>]
[17906.003934] Function entered at [<c07416f4>] from [<c031dc0c>]
[17906.009749] Function entered at [<c031dc0c>] from [<c031dc60>]
[17906.015566] Function entered at [<c031dc60>] from [<c0661ddc>]
[17906.021381] Function entered at [<c0661ddc>] from [<c036be28>]
[17906.027197] Function entered at [<c036be28>] from [<c036c170>]
[17906.033012] Function entered at [<c036c170>] from [<c0301520>]
[17906.038829] Function entered at [<c0301520>] from [<c0321d30>]
[17906.044645] Function entered at [<c0321d30>] from [<c035b2b8>]
[17906.050462] Function entered at [<c035b2b8>] from [<c030140c>]
[17906.056275] Function entered at [<c030140c>] from [<c030b30c>]
[17906.062093] Exception stack(0xc0a01f40 to 0xc0a01f88)
[17906.067915] 1f40: 00000001 00000000 00000000 c0313960 ffffe000 c0a03cb8 c0a03c6c 00000000
[17906.073039] 1f60: 00000000 00000001 cfffce00 c092da28 c0a01f88 c0a01f90 c0307d88 c0307d8c
[17906.081194] 1f80: 60000013 ffffffff
[17906.089346] Function entered at [<c030b30c>] from [<c0307d8c>]
[17906.092648] Function entered at [<c0307d8c>] from [<c0351fe8>]
[17906.098550] Function entered at [<c0351fe8>] from [<c0352308>]
[17906.104365] Function entered at [<c0352308>] from [<c0900c08>]
[17906.110252] ---[ end trace d573e34a697b03e4 ]---
[17911.286981] xhci-hcd xhci-hcd.1.auto: xHCI host not responding to stop endpoint command.
[17911.303339] xhci-hcd xhci-hcd.1.auto: Host halt failed, -110
[17911.303578] xhci-hcd xhci-hcd.1.auto: xHCI host controller not responding, assume dead
[17911.311517] xhci-hcd xhci-hcd.1.auto: HC died; cleaning up
[17911.327236] usb 3-1: USB disconnect, device number 2
[17911.328804] cdc_ether 3-1:1.0 eth2: unregister 'cdc_ether' usb-xhci-hcd.1.auto-1, CDC Ethernet Device

Thanks in advance!

Does the dongle with with the USB-A port?

maybe it is a power issue.

Yes, it is standard USB-A dongle; And I’m using standard EU-type adapter from a bundle (that I’m almost sure should actually be enough for modem’s purposes);
Now I’m trying to build a stable-based owrt without kmod-usb3 pre-compiled in to a kernel;
Will let know if there are any lucks…

Ok, my results so far are:

1] Compiling Snapshot/Release without kmod-usb3 lead to drivers not to load correctly:

$ lsusb
unable to initialize libusb: -99

With no ways to force/load/insert kmod-usb2 manually (as far as I can see now);

2] Using a power-independent USB2 cable for modem lead to the same problem with xhci-hcd as was mentioned above (“Host halt failed, -110” etc.) in about 46 hours; So it isn’t a power-related issue for sure as the modem was powered using an external and pretty stable power supply correctly;

So do we have any chance to e.g. disable usb3 drivers/port entirely and let an extra usb2 header to work with EHCI drivers?
I’m still asking this as otherwise the additional usb2 header becomes almost useless; Doesn’t it?

I’d like to help but I don’t have a solution.

IIRC - the Huawei 3372 is a HiLink device - hence the cdc-ethernet USB end-point…

If it is changed from HiLink to “stick” mode - then QMI should work better here… (search the google on how to change).

Thank you very much! Are there any technical reasons for stick mode to work better?
Could you please give a link to a detailed explanations on the matter?

In short - HiLink works well with Windows because of closed source drivers.

“stick” mode uses QMI, which is easier to work with in Linux…