Jump to content
  • 0

Support Sierra Wireless EM9293


Question

Posted

Keenetic OS does not support probably the best 5G modem currently available without modifications on the modem.

Just plugging the modem in a USB adapter Keenetic OS does not recognize it as a modem:

I [Dec 21 13:07:31] kernel: usb 2-1: new SuperSpeed Gen 1x2 USB device number 3 using xhci-mtk
I [Dec 21 13:07:31] kernel: usb 2-1: LPM exit latency is zeroed, disabling LPM.
W [Dec 21 13:07:31] kernel: usb 2-1: config 1 has an invalid interface number: 4 but max is 3
W [Dec 21 13:07:31] kernel: usb 2-1: config 1 has no interface number 2
I [Dec 21 13:07:31] kernel: usb 2-1: New USB device found, idVendor=1199, idProduct=90e3, bcdDevice= 0.06
I [Dec 21 13:07:31] kernel: usb 2-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
I [Dec 21 13:07:31] kernel: usb 2-1: Product: Sierra Wireless EM9293
I [Dec 21 13:07:31] kernel: usb 2-1: Manufacturer: Sierra Wireless, Incorporated
I [Dec 21 13:07:31] kernel: usb 2-1: SerialNumber: XXXXXXXXXXXXXXXX

To get it to work one has to change the USBPID:

AT!USBPID?
!USBPID:
APP : 90E3
BOOT: 90E2

This has to be changed to match EM91xx series:

AT!USBPID=90D3

And verified:

AT!USBPID?
!USBPID:
APP : 90D3
BOOT: 90D2

This makes Keenetic OS see the device and try to connect:

I [Dec 21 13:23:20] kernel: usb 2-1: new SuperSpeed Gen 1x2 USB device number 5 using xhci-mtk
I [Dec 21 13:23:20] kernel: usb 2-1: LPM exit latency is zeroed, disabling LPM.
W [Dec 21 13:23:20] kernel: usb 2-1: config 1 has an invalid interface number: 4 but max is 3
W [Dec 21 13:23:20] kernel: usb 2-1: config 1 has no interface number 2
I [Dec 21 13:23:20] kernel: usb 2-1: New USB device found, idVendor=1199, idProduct=90d3, bcdDevice= 0.06
I [Dec 21 13:23:20] kernel: usb 2-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
I [Dec 21 13:23:20] kernel: usb 2-1: Product: EM9293
I [Dec 21 13:23:20] kernel: usb 2-1: Manufacturer: Sierra Wireless, Incorporated
I [Dec 21 13:23:20] kernel: usb 2-1: SerialNumber: XXXXXXXXXXXXXXXX
I [Dec 21 13:23:20] kernel: option 2-1:1.3: GSM modem (1-port) converter detected
I [Dec 21 13:23:20] kernel: usb 2-1: GSM modem (1-port) converter now attached to ttyUSB0
I [Dec 21 13:23:20] kernel: option 2-1:1.4: GSM modem (1-port) converter detected
I [Dec 21 13:23:20] kernel: usb 2-1: GSM modem (1-port) converter now attached to ttyUSB1
I [Dec 21 13:23:20] ndm: Network::Interface::Base: "UsbModem0": "usb" changed "link" layer state "detached" to "disabled".
I [Dec 21 13:23:20] ndm: Network::Interface::Usb: "UsbModem0": interface "UsbModem0" is plugged (port 1).
E [Dec 21 13:23:25] ndm: Core::Ndss: [31282] no registered connection.
E [Dec 21 13:23:34] ndm: Core::Ndss: [31308] no registered connection.
I [Dec 21 13:23:43] ndm: Network::Interface::Usb: "UsbModem0": started 5000 ms. power cycle.
I [Dec 21 13:23:43] kernel: usb 2-1: USB disconnect, device number 5

But this will always fail. Even when disabling online checking so that the modem is not power cycled.

Next the modem needs to be changed to rmnet.

The modem is by default in MBIM mode:

AT!USBCOMP?
Config Index: 1
Config Type:  4 (MBIM V2)
Interface bitmask: 00001009 (diag,modem,mbim)

Changing this to rmnet:

AT!USBCOMP=1,4,00000109

And verified:

AT!USBCOMP?
Config Index: 1
Config Type:  4 (MBIM V2)
Interface bitmask: 00000109 (diag,modem,rmnet0)

This gives the modem bare minimum functionality in Keenetic OS:

I [Dec 21 14:04:32] kernel: usb 2-1: new SuperSpeed Gen 1x2 USB device number 12 using xhci-mtk
I [Dec 21 14:04:32] kernel: usb 2-1: LPM exit latency is zeroed, disabling LPM.
W [Dec 21 14:04:32] kernel: usb 2-1: config 1 has an invalid interface number: 3 but max is 2
W [Dec 21 14:04:32] kernel: usb 2-1: config 1 has an invalid interface number: 4 but max is 2
W [Dec 21 14:04:32] kernel: usb 2-1: config 1 has an invalid interface number: 8 but max is 2
W [Dec 21 14:04:32] kernel: usb 2-1: config 1 has no interface number 0
W [Dec 21 14:04:32] kernel: usb 2-1: config 1 has no interface number 1
W [Dec 21 14:04:32] kernel: usb 2-1: config 1 has no interface number 2
I [Dec 21 14:04:32] kernel: usb 2-1: New USB device found, idVendor=1199, idProduct=90d3, bcdDevice= 0.06
I [Dec 21 14:04:32] kernel: usb 2-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
I [Dec 21 14:04:32] kernel: usb 2-1: Product: EM9293
I [Dec 21 14:04:32] kernel: usb 2-1: Manufacturer: Sierra Wireless, Incorporated
I [Dec 21 14:04:32] kernel: usb 2-1: SerialNumber: XXXXXXXXXXXXXXXX
I [Dec 21 14:04:32] kernel: option 2-1:1.3: GSM modem (1-port) converter detected
I [Dec 21 14:04:32] kernel: usb 2-1: GSM modem (1-port) converter now attached to ttyUSB0
I [Dec 21 14:04:32] kernel: option 2-1:1.4: GSM modem (1-port) converter detected
I [Dec 21 14:04:32] kernel: usb 2-1: GSM modem (1-port) converter now attached to ttyUSB1
I [Dec 21 14:04:32] ndm: Network::Interface::Base: "UsbModem0": "usb" changed "link" layer state "detached" to "pending".
I [Dec 21 14:04:32] ndm: Network::Interface::Usb: "UsbModem0": interface "UsbModem0" is plugged (port 1).
I [Dec 21 14:04:39] pppd[1567]: pppd 2.4.4-4 started by root, uid 0
I [Dec 21 14:04:40] chat[1571]: report (Manufacturer)
I [Dec 21 14:04:40] chat[1571]: report (Model)
I [Dec 21 14:04:40] chat[1571]: report (Revision)
I [Dec 21 14:04:40] chat[1571]: report (MF192-)
I [Dec 21 14:04:40] chat[1571]: report (BD_MF)
I [Dec 21 14:04:40] chat[1571]: report (COPS:)
I [Dec 21 14:04:40] chat[1571]: send (ATI^M)
I [Dec 21 14:04:40] chat[1571]: expect (OK)
E [Dec 21 14:04:46] ndm: Core::Ndss: [1576] no registered connection.
I [Dec 21 14:04:50] chat[1571]: alarm
I [Dec 21 14:04:50] chat[1571]: send (^M)
I [Dec 21 14:04:50] chat[1571]: send (AT+CGDCONT=1,"IP","internet.emt.ee"^M)
I [Dec 21 14:04:53] chat[1571]: expect (OK)
E [Dec 21 14:04:56] ndm: Core::Ndss: [1600] no registered connection.
I [Dec 21 14:05:03] chat[1571]: alarm
I [Dec 21 14:05:03] chat[1571]: Failed
E [Dec 21 14:05:03] pppd[1567]: Initializer script failed
I [Dec 21 14:05:04] pppd[1567]: Exit.
E [Dec 21 14:05:04] ndm: Service: "UsbModem0": unexpectedly stopped.
I [Dec 21 14:05:04] ndm: Network::Interface::Base: "UsbModem0": interface is up.
I [Dec 21 14:05:06] pppd[1636]: pppd 2.4.4-4 started by root, uid 0
I [Dec 21 14:05:07] chat[1639]: report (Manufacturer)
I [Dec 21 14:05:07] chat[1639]: report (Model)
I [Dec 21 14:05:07] chat[1639]: report (Revision)
I [Dec 21 14:05:07] chat[1639]: report (MF192-)
I [Dec 21 14:05:07] chat[1639]: report (BD_MF)
I [Dec 21 14:05:07] chat[1639]: report (COPS:)
I [Dec 21 14:05:07] chat[1639]: send (ATI^M)
I [Dec 21 14:05:07] chat[1639]: expect (OK)
I [Dec 21 14:05:07] chat[1639]: ATI^M^M
I [Dec 21 14:05:07] chat[1639]: Manufacturer: Sierra Wireless, Incorporated^M
I [Dec 21 14:05:07] chat[1639]: Model: EM9293^M
I [Dec 21 14:05:07] chat[1639]: Revision: SWIX65C_03.04.10.01 00b8ca jenkins 2025/06/18 05:56:16^M
I [Dec 21 14:05:07] chat[1639]: IMEI: XXXXXXXXXXXXXX^M
I [Dec 21 14:05:07] chat[1639]: IMEI SV: 11^M
I [Dec 21 14:05:07] chat[1639]: FSN: XXXXXXXXXXXXXX^M
I [Dec 21 14:05:07] chat[1639]: +GCAP: +CGSM^M
I [Dec 21 14:05:07] chat[1639]: ^M
I [Dec 21 14:05:07] chat[1639]: ^M
I [Dec 21 14:05:07] chat[1639]: OK
I [Dec 21 14:05:07] chat[1639]:  -- got it
I [Dec 21 14:05:07] chat[1639]: send (AT+CGDCONT=1,"IP","internet.emt.ee"^M)
I [Dec 21 14:05:07] chat[1639]: expect (OK)
I [Dec 21 14:05:07] chat[1639]: ^M
I [Dec 21 14:05:07] chat[1639]: AT+CGDCONT=1,"IP","internet.emt.ee"^M^M
I [Dec 21 14:05:07] chat[1639]: OK
I [Dec 21 14:05:07] chat[1639]:  -- got it
I [Dec 21 14:05:07] pppd[1636]: Serial port initialized.
I [Dec 21 14:05:07] chat[1640]: abort on (NO CARRIER)
I [Dec 21 14:05:07] chat[1640]: abort on (NO DIALTONE)
I [Dec 21 14:05:07] chat[1640]: abort on (NO DIAL TONE)
I [Dec 21 14:05:07] chat[1640]: abort on (BUSY)
I [Dec 21 14:05:07] chat[1640]: abort on (VOICE)
I [Dec 21 14:05:07] chat[1640]: abort on (FCLASS)
I [Dec 21 14:05:07] chat[1640]: abort on (NO ANSWER)
I [Dec 21 14:05:07] chat[1640]: send (ATD*99#^M)
I [Dec 21 14:05:07] chat[1640]: expect (CONNECT)
I [Dec 21 14:05:07] chat[1640]: ^M
I [Dec 21 14:05:07] chat[1640]: ATD*99#^M^M
I [Dec 21 14:05:07] chat[1640]: CONNECT
I [Dec 21 14:05:07] chat[1640]:  -- got it
I [Dec 21 14:05:07] pppd[1636]: Serial connection established.
I [Dec 21 14:05:07] pppd[1636]: Using interface ppp0
I [Dec 21 14:05:07] pppd[1636]: Connect: ppp0 <--> /dev/ttyUSB0
W [Dec 21 14:05:08] pppd[1636]: Could not determine remote IP address: defaulting to 10.64.64.64
I [Dec 21 14:05:08] pppd[1636]: local  IP address 10.49.216.46
I [Dec 21 14:05:08] pppd[1636]: remote IP address 10.64.64.64
I [Dec 21 14:05:08] pppd[1636]: primary   DNS address 192.98.49.8
I [Dec 21 14:05:08] pppd[1636]: secondary DNS address 192.98.49.9
I [Dec 21 14:05:08] ndm: Network::Interface::Base: "UsbModem0": interface is up.
I [Dec 21 14:05:08] ndm: Network::Interface::Base: "UsbModem0": "ppp" changed "link" layer state "connecting" to "running".
I [Dec 21 14:05:08] ndm: Network::Interface::Base: "UsbModem0": interface is up.
I [Dec 21 14:05:08] ndm: Network::Interface::Ip: "UsbModem0": interface "UsbModem0" is global, priority 350.
I [Dec 21 14:05:08] ndm: Network::Interface::Ip: "UsbModem0": adding default route via UsbModem0.
I [Dec 21 14:05:08] ndm: Dns::InterfaceSpecific: "UsbModem0": adding name server 192.98.49.8.
I [Dec 21 14:05:08] ndm: Dns::InterfaceSpecific: "UsbModem0": adding a host route to name server 192.98.49.8 (via 0.0.0.0).
I [Dec 21 14:05:08] ndm: Dns::InterfaceSpecific: "UsbModem0": host route for name server 192.98.49.8 added.
I [Dec 21 14:05:08] ndm: Dns::InterfaceSpecific: "UsbModem0": name server 192.98.49.8 added, domain (default).
I [Dec 21 14:05:08] ndm: Dns::InterfaceSpecific: "UsbModem0": adding name server 192.98.49.9.
I [Dec 21 14:05:08] ndm: Dns::InterfaceSpecific: "UsbModem0": adding a host route to name server 192.98.49.9 (via 0.0.0.0).
I [Dec 21 14:05:08] ndm: Dns::InterfaceSpecific: "UsbModem0": host route for name server 192.98.49.9 added.
I [Dec 21 14:05:08] ndm: Dns::InterfaceSpecific: "UsbModem0": name server 192.98.49.9 added, domain (default).
I [Dec 21 14:05:08] ndm: Network::Interface::Base: "UsbModem0": "ip" changed "ipv4" layer state "pending" to "running".
I [Dec 21 14:05:08] ndm: Network::Interface::Ip: "UsbModem0": IP address is 10.49.216.46/32.

 

But the speed is REALLY bad. Only 30mbit/s max, when plugging it into a Windows laptop gets 300mbit/s+. Or 100mbit/s+ in the same USB adapter with RM520N-GL modem and Keenetic OS.

Additionally there is no way to debug the modem as:

interface Usbmodem0 tty send AT

is unsupported. This works for RM520N-GL as it is not Usbmodem but UsbQmi.

So there is no way to diagnose why the speed is so slow.

 

Please at minimum add EM9293 USBID to known list so that it works without changing it on the modem.

Please add AT sending to Usbmodem to make at least some sort of diagnostics be possible with the modem.

Please add IPv6 support for the modem - it works with no problems on Windows or using RM520N-GL in the same USB adapter with Keenetic OS and my mobile provider.

0 answers to this question

Recommended Posts

There have been no answers to this question yet

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...