UMTS/3G stick: no /dev/ttyUSB*

Ok, I am so puzzled now. I have followed the wiki page (https://openwrt.org/docs/guide-user/network/wan/wwan/3gdongle), searched for multiple hours around the internet, but I have found no working solution. I even use a powered USB hub.

I have a "XS Stick P14" Modem (1c9e:f000 when unswitched, 1c9e:9605 switched [at least on Arch Linux]). It is confirmed that is works (no hardware failure)

I am unsure whether modeswitch works fine or what causes the problem.

usbmode -s returns:

Failed to send switch message

cat /sys/kernel/debug/usb/devices returns:


T:  Bus=01 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#=  1 Spd=480  MxCh= 1
B:  Alloc=  0/800 us ( 0%), #Int=  2, #Iso=  0
D:  Ver= 2.00 Cls=09(hub  ) Sub=00 Prot=01 MxPS=64 #Cfgs=  1
P:  Vendor=1d6b ProdID=0002 Rev= 4.09
S:  Manufacturer=Linux 4.9.152 ehci_hcd
S:  Product=EHCI Host Controller
S:  SerialNumber=ehci-platform
C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=  0mA
I:* If#= 0 Alt= 0 #EPs= 1 Cls=09(hub  ) Sub=00 Prot=00 Driver=hub
E:  Ad=81(I) Atr=03(Int.) MxPS=   4 Ivl=256ms

T:  Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#=  2 Spd=480  MxCh= 4
D:  Ver= 2.00 Cls=09(hub  ) Sub=00 Prot=01 MxPS=64 #Cfgs=  1
P:  Vendor=05e3 ProdID=0608 Rev=85.36
S:  Product=USB2.0 Hub
C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=100mA
I:* If#= 0 Alt= 0 #EPs= 1 Cls=09(hub  ) Sub=00 Prot=00 Driver=hub
E:  Ad=81(I) Atr=03(Int.) MxPS=   1 Ivl=256ms

T:  Bus=01 Lev=02 Prnt=02 Port=00 Cnt=01 Dev#= 17 Spd=480  MxCh= 4
D:  Ver= 2.00 Cls=09(hub  ) Sub=00 Prot=02 MxPS=64 #Cfgs=  1
P:  Vendor=0424 ProdID=a700 Rev= 0.00
C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr= 98mA
I:  If#= 0 Alt= 0 #EPs= 1 Cls=09(hub  ) Sub=00 Prot=01 Driver=hub
E:  Ad=81(I) Atr=03(Int.) MxPS=   1 Ivl=256ms
I:* If#= 0 Alt= 1 #EPs= 1 Cls=09(hub  ) Sub=00 Prot=02 Driver=hub
E:  Ad=81(I) Atr=03(Int.) MxPS=   1 Ivl=256ms

T:  Bus=01 Lev=03 Prnt=17 Port=00 Cnt=01 Dev#= 18 Spd=480  MxCh= 0
D:  Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
P:  Vendor=1c9e ProdID=f000 Rev= 0.00
S:  Manufacturer=USB Modem
S:  Product=USB Modem
S:  SerialNumber=1234567890ABCDEF
C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=500mA
I:* If#= 0 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=(none)
E:  Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=81(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms

If I see that correctly, that means that usb mode switch has switched the mode successfully, but the the USB product id didn't change. HOWEVER, there is no /dev/ttyUSB* created.

dmesg only returns:
[ 1892.721119] usb 1-1.1.1: new high-speed USB device number 19 using ehci-platform

I have even seen the USB modem blink purple (that means that it is trying to connect to an edge network) when there was no /dev/ttyUSB

lsmod returns:

root@OpenWrt:~# lsmod
ath                    16832  3 ath9k,ath9k_common,ath9k_hw
ath9k                  90992  0 
ath9k_common           10880  1 ath9k
ath9k_hw              331808  2 ath9k,ath9k_common
cdc_ether               4032  1 rndis_host
cfg80211              200528  4 ath9k,ath9k_common,ath,mac80211
compat                  4704  4 ath9k,ath9k_common,mac80211,cfg80211
crc_ccitt                960  1 ppp_async
ehci_hcd               33040  1 ehci_platform
ehci_platform           3968  0 
gpio_button_hotplug     4544  0 
ip_tables              10064  4 iptable_nat,iptable_mangle,iptable_filter
ip6_tables              9920 24 ip6table_mangle,ip6table_filter
ip6_udp_tunnel          1376  1 wireguard
ip6t_REJECT              896  2 
ip6table_filter          608  1 
ip6table_mangle         1120  1 
ipt_MASQUERADE           608  2 
ipt_REJECT               864  2 
iptable_filter           672  1 
iptable_mangle           896  1 
iptable_nat              704  1 
ledtrig_usbport         2160  0 
mac80211              392224  1 ath9k
mii                     3296  1 usbnet
nf_conntrack           52320  9 nf_conntrack_ipv6,xt_state,xt_conntrack,xt_CT,nf_nat_masquerade_ipv4,nf_conntrack_ipv4,nf_nat_ipv4,nf_nat,nf_conntrack_rtcache
nf_conntrack_ipv4       5280 19 
nf_conntrack_ipv6       5792 10 
nf_conntrack_rtcache    2432  0 
nf_defrag_ipv4           800  1 nf_conntrack_ipv4
nf_defrag_ipv6          4240  1 nf_conntrack_ipv6
nf_log_common           2336  2 nf_log_ipv4,nf_log_ipv6
nf_log_ipv4             3104  0 
nf_log_ipv6             3264  0 
nf_nat                  9456  4 xt_nat,nf_nat_redirect,nf_nat_masquerade_ipv4,nf_nat_ipv4
nf_nat_ipv4             3760  1 iptable_nat
nf_nat_masquerade_ipv4    1264  1 ipt_MASQUERADE
nf_nat_redirect          864  1 xt_REDIRECT
nf_reject_ipv4          2080  1 ipt_REJECT
nf_reject_ipv6          2304  1 ip6t_REJECT
nls_base                4736  1 usbcore
option                 30848  0 
ppp_async               6176  0 
ppp_generic            21008  3 pppoe,ppp_async,pppox
pppoe                   7808  0 
pppox                   1168  1 pppoe
rndis_host              4768  0 
slhc                    4160  1 ppp_generic
udp_tunnel              2176  1 wireguard
uhci_hcd               18672  0 
usb_common              1312  1 usbcore
usb_wwan                4128  1 option
usbcore               118944 10 option,usb_wwan,rndis_host,cdc_ether,usbserial,usbnet,uhci_hcd,ledtrig_usbport,ehci_platform,ehci_hcd
usbnet                 15536  2 rndis_host,cdc_ether
usbserial              16864  2 option,usb_wwan
wireguard             125152  0 
x_tables               11344 23 ipt_REJECT,ipt_MASQUERADE,xt_time,xt_tcpudp,xt_state,xt_nat,xt_multiport,xt_mark,xt_mac,xt_limit,xt_conntrack,xt_comment,xt_TCPMSS,xt_REDIRECT,xt_LOG,xt_CT,iptable_mangle,iptable_filter,ip_tables,ip6t_REJECT,ip6table_mangle,ip6table_filter,ip6_tables
xt_CT                   2496  0 
xt_LOG                   704  0 
xt_REDIRECT              608  0 
xt_TCPMSS               2624  2 
xt_comment               448196 
xt_conntrack            2144 28 
xt_limit                 960 20 
xt_mac                   576  0 
xt_mark                  608  0 
xt_multiport            1152  0 
xt_nat                  1088  0 
xt_state                 640  0 
xt_tcpudp               1664 10 
xt_time                 1568  0 

Ok. Stupid me. The step at "usbserial_generic missing in dmesg" in the wiki was failing because usbserial was a dependent module of usb_wwan. after rmmod all depencies and running insmod on usbserial with the vendor and product specified, it seems to work.

Update

It does not work. system log says

Sat Aug  3 23:41:12 2019 kern.err kernel: [  374.428706] generic ttyUSB0: usb_serial_generic_write_bulk_callback - urb stopped: -32
Sat Aug  3 23:41:12 2019 kern.err kernel: [  374.438699] generic ttyUSB0: usb_serial_generic_write_bulk_callback - urb stopped: -32
Sat Aug  3 23:41:12 2019 kern.err kernel: [  374.448820] generic ttyUSB0: usb_serial_generic_write_bulk_callback - urb stopped: -32
Sat Aug  3 23:41:12 2019 kern.err kernel: [  374.458949] generic ttyUSB0: usb_serial_generic_write_bulk_callback - urb stopped: -32
Sat Aug  3 23:41:12 2019 kern.err kernel: [  374.469078] generic ttyUSB0: usb_serial_generic_write_bulk_callback - urb stopped: -32

when trying to use the serial port.

** Update 2** This is the usb-mode.json file I wrote in hope it could fix things. It doesn't.

{
"messages" : [
		"555342431234567800000000000001ff000000000000000000000000000000"
],
"devices" : {
		"1c9e:f000": {
			"*": {
                "t_vendor": 7326,
                "t_product": [ 38405 ],
                "msg": [0],
                "wait": 1
			}
		}
	}
}

Again Failed to send switch message

EDIT3 with the message 55534243123456788000000080000606f50402527000000000000000000000 which I found out using the logging option of usb_modeswitch on my Arch Linux in the config above it now seems to create the serial console files at /dev/ttyUSB*