WDR4300 + 3G Dongle usbmode doesn't work

Hi All!

I have just spend last 5 hours on finding out what is wrong with my 3g dongle (XSStick P14) plugged to the WDR4300 and haven't found any solution to this weird case... Hopping for little help here...

I am on OpenWrt 19.07.2 r10947-65030d81f3

To run this dongle i followed this guide:

https://openwrt.org/docs/guide-user/network/wan/wwan/3gdongle

Once, i get to the point that i needed to get message in dmesg like that: usb 1-1: generic converter now attached to ttyUSB1 i stuk, because my dongle is not being attached to any ttyUSB*.

I've started looking around the net for an answer what is going on. I read also the https://openwrt.org/docs/guide-user/network/wan/wwan/usb-modeswitching

Staying at this topic a little while longer, i found out that my dongle is visible by usbmode:

root@OpenWrt:~# usbmode -l
Found device: 1c9e:f000 (Manufacturer: "USB Modem", Product: "USB Modem", Serial: "1234567890ABCDEF")

But it won't switch dongle to modem mode:

root@OpenWrt:~# usbmode -s -v -c /etc/usb-mode.json
Failed to send switch message

dmesg after plugging the dongle

[10460.913725] usb-storage 1-1.2:1.0: USB Mass Storage device detected
[10460.938302] scsi host1: usb-storage 1-1.2:1.0

This was the moment i needed to find out how usbmode wroks, ale what are those 1c9e:f000. After some searching, i found out this command

root@OpenWrt:~# cat /sys/kernel/debug/usb/devices

which showed me this:

T:  Bus=01 Lev=02 Prnt=02 Port=01 Cnt=02 Dev#= 30 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

From this moment i learned about usbmode json files, looked into them, and found out what intrests me:

	"1c9e:f000": {
		"*": {
			"t_vendor": 7326,
			"t_product": [ 36864, 38403, 38405, 38407, 39168 ],
			"msg": [ 42 ],
			"wait": 1
		},
		":uMa=USB_Modem": {
			"t_vendor": 7326,
			"t_product": [ 36864, 38403, 38405, 38407, 39168, 39424 ],
			"msg": [ 17 ],
			"wait": 1
		}
	},

After some searching even in old way of doing this by usb_modeswitch, i realized that those files are fine.... messages should be also fine. But still... usbmode has the problem with communicating with dongle.

From old usb_modeswitch:

# Longcheer/Longsoon (aka Omega Technology) devices
TargetVendor=0x1c9e
TargetProductList="9000,9603,9605,9607,9900"
MessageContent="555342431234567800000000000001ff000000000000000000000000000000"
WaitBefore=1

# MobiData MBD-200HU and others
TargetVendor=0x1c9e
TargetProductList="9000,9603,9605,9607,9900,9a00"
MessageContent="55534243123456788000000080000606f50402527000000000000000000000"
WaitBefore=1

Interesting thing is that, when i change in usb-mode.json the "1c9e:f000" to "1c9e:9603" dongle suddenly starts doing something... usbmode no longer have a problem that had a little earlier:

root@OpenWrt:~# usbmode -s -v -c /etc/usb-mode.json (no error)

After replug of dongle it starts disco blinking with different colors, and dmesg shows this:

[10969.431111] usb 1-1.2: new high-speed USB device number 31 using ehci-platform
[10969.586619] usb-storage 1-1.2:1.0: USB Mass Storage device detected
[10969.611162] scsi host1: usb-storage 1-1.2:1.0
[10970.642750] scsi 1:0:0:0: CD-ROM            USBModem Disk             2.31 PQ: 0 ANSI: 2

usbmode -l after that change shows nothing:

root@OpenWrt:~# usbmode -l
root@OpenWrt:~#

The thing is how to finally switch this dongle to modem mode.....

If any further verification is needed, tell me the commands!

It's a lot to read, but hope it shows the way i followed, and allow you to help me... I've tried almost everything that internet has to offer...

Ok.... I figured it out by myself...

The trick was to use proper messages strings, for my XSStickp14 worked these to lines:

"55534243123456788000000080000606f50402527000000000000000000000"
"55534243123456788000000080010606f50402527000000000000000000000"

Those lines are taken from DDWRT usb_modeswitch.conf, because there everything worked out of the box.

Hope it helps somebody!

1 Like