Huawei ME909s-821 not regonized by GL.iNet admin panel

I recently got a 4G modem to use with my GL-A1300 the device is just a generic adapter board that allows for any 4G modem to be installed, my specific one has the Huawei ME909s-821 modem installed, I’ve confirmed that the device does work in windows, I expect this to work right out of the box with my GL-A1300 but it does not, plugging it in will just cause the WAN light to blink, plugging it into a windows laptop the light will blink but as soon as the laptop establish the connection the light stays solid, in case of my a1300 it just kept blinking, I run /sys/kernel/debug/usb/devices and the router does see the device

T:  Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#=  4 Spd=480  MxCh= 0
D:  Ver= 2.10 Cls=00(>ifc ) Sub=00 Prot=ff MxPS=64 #Cfgs=  3
P:  Vendor=12d1 ProdID=15c1 Rev= 1.02
S:  Manufacturer=Huawei Technologies Co., Ltd.
S:  Product=HUAWEI Mobile V7R11
S:  SerialNumber=0123456789ABCDEF
C:  #Ifs= 6 Cfg#= 1 Atr=a0 MxPwr=  2mA
I:  If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=06 Prot=10 Driver=
E:  Ad=82(I) Atr=03(Int.) MxPS=  10 Ivl=32ms
E:  Ad=81(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
I:  If#= 1 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=06 Prot=13 Driver=
E:  Ad=83(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
I:  If#= 2 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=06 Prot=12 Driver=
E:  Ad=84(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=03(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
I:  If#= 3 Alt= 0 #EPs= 1 Cls=ff(vend.) Sub=06 Prot=16 Driver=
E:  Ad=86(I) Atr=03(Int.) MxPS=  16 Ivl=2ms
I:  If#= 3 Alt= 1 #EPs= 3 Cls=ff(vend.) Sub=06 Prot=16 Driver=
E:  Ad=86(I) Atr=03(Int.) MxPS=  16 Ivl=2ms
E:  Ad=85(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=04(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
I:  If#= 4 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=06 Prot=06 Driver=
E:  Ad=87(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=05(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
I:  If#= 5 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=06 Prot=1b Driver=
E:  Ad=88(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=06(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
C:* #Ifs= 7 Cfg#= 2 Atr=a0 MxPwr=  2mA
I:* If#= 0 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=06 Prot=00 Driver=(none)
E:  Ad=82(I) Atr=03(Int.) MxPS=  16 Ivl=2ms
I:* If#= 1 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=06 Prot=00 Driver=(none)
E:  Ad=81(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
I:* If#= 2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=06 Prot=10 Driver=option
E:  Ad=84(I) Atr=03(Int.) MxPS=  10 Ivl=32ms
E:  Ad=83(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
I:* If#= 3 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=06 Prot=13 Driver=option
E:  Ad=85(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=03(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
I:* If#= 4 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=06 Prot=12 Driver=option
E:  Ad=86(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=04(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
I:* If#= 5 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=06 Prot=06 Driver=option
E:  Ad=87(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=05(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
I:* If#= 6 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=06 Prot=1b Driver=option
E:  Ad=88(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=06(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
C:  #Ifs= 2 Cfg#= 3 Atr=a0 MxPwr=  2mA
A:  FirstIf#= 0 IfCount= 2 Cls=02(comm.) Sub=0e Prot=00
I:  If#= 0 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=0e Prot=00 Driver=
E:  Ad=82(I) Atr=03(Int.) MxPS=  16 Ivl=2ms
I:  If#= 1 Alt= 0 #EPs= 0 Cls=0a(data ) Sub=00 Prot=02 Driver=
I:  If#= 1 Alt= 1 #EPs= 2 Cls=0a(data ) Sub=00 Prot=02 Driver=
E:  Ad=81(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms

but in kernel logs I see this

[ 3436.583344] usb 1-1: new high-speed USB device number 5 using xhci-hcd
[ 3436.868287] cdc_ether 1-1:2.0 wwan0: register 'cdc_ether' at usb-xhci-hcd.0.auto-1, Mobile Broadband Network Device, 02:1e:10:1f:00:00
[ 3436.871395] option 1-1:2.2: GSM modem (1-port) converter detected
[ 3436.879800] usb 1-1: GSM modem (1-port) converter now attached to ttyUSB0
[ 3436.886693] option 1-1:2.3: GSM modem (1-port) converter detected
[ 3436.892645] usb 1-1: GSM modem (1-port) converter now attached to ttyUSB1
[ 3436.899755] option 1-1:2.4: GSM modem (1-port) converter detected
[ 3436.905548] usb 1-1: GSM modem (1-port) converter now attached to ttyUSB2
[ 3436.912203] option 1-1:2.5: GSM modem (1-port) converter detected
[ 3436.918525] usb 1-1: GSM modem (1-port) converter now attached to ttyUSB3
[ 3436.924987] option 1-1:2.6: GSM modem (1-port) converter detected
[ 3436.931261] usb 1-1: GSM modem (1-port) converter now attached to ttyUSB4
[ 3436.997627] cdc_ether 1-1:2.0 wwan0: unregister 'cdc_ether' usb-xhci-hcd.0.auto-1, Mobile Broadband Network Device
[ 3437.053732] usb 1-1: usbfs: process 2828 (usbmode) did not claim interface 1 before use
[ 3437.254768] usb 1-1: usbfs: interface 1 claimed by usbfs while 'usbmode' sets config #0
[ 3438.511687] usb 1-1: usbfs: process 3203 (usbmode) did not claim interface 1 before use
[ 3438.712362] usb 1-1: usbfs: interface 1 claimed by usbfs while 'usbmode' sets config #0
[ 3439.358670] usb 1-1: usbfs: process 3378 (usbmode) did not claim interface 1 before use
[ 3439.559470] usb 1-1: usbfs: interface 1 claimed by usbfs while 'usbmode' sets config #0
[ 3440.454985] usb 1-1: usbfs: process 3539 (usbmode) did not claim interface 1 before use
[ 3440.655773] usb 1-1: usbfs: interface 1 claimed by usbfs while 'usbmode' sets config #0
[ 3441.482296] usb 1-1: usbfs: process 3701 (usbmode) did not claim interface 1 before use
[ 3441.683578] usb 1-1: usbfs: interface 1 claimed by usbfs while 'usbmode' sets config #0
[ 3442.517242] usb 1-1: usbfs: process 3861 (usbmode) did not claim interface 1 before use
[ 3442.718062] usb 1-1: usbfs: interface 1 claimed by usbfs while 'usbmode' sets config #0
[ 3443.539794] usb 1-1: usbfs: process 4019 (usbmode) did not claim interface 1 before use
[ 3443.741011] usb 1-1: usbfs: interface 1 claimed by usbfs while 'usbmode' sets config #0
[ 3444.598227] usb 1-1: usbfs: process 4194 (usbmode) did not claim interface 1 before use
[ 3444.799339] usb 1-1: usbfs: interface 1 claimed by usbfs while 'usbmode' sets config #0
[ 3445.579411] usb 1-1: usbfs: process 4503 (usbmode) did not claim interface 1 before use
[ 3445.780192] usb 1-1: usbfs: interface 1 claimed by usbfs while 'usbmode' sets config #0

it looks like something is trying to claim the device, maybe this has something to do with the built in file sharing feature

can someone give some pointers on the next troubleshooting step?
thanks

so I managed to get it working, here’s what I did

  1. make usbmode stop caring about the modem, it kept changing mode so just make it ignore the modem
sed -i -e '/12d1:15c1/,+5d' /etc/usb-mode.json

this should do the job

  1. ssh into the router and setup NCM
ssh root@192.168.8.1

install necessary libraries

opkg update
opkg install kmod-mii kmod-usb-net kmod-usb-wdm kmod-usb-net-cdc-ether kmod-usb-serial-option kmod-usb-serial kmod-usb-serial-wwan kmod-usb-net-cdc-ncm luci-proto-ncm usbutils

ensure the modem is connected

you should see the Huawei device listed, if you done the first part correctly there should be a driver on the first 2 subdevice, if not reboot the system or unplug and replug the modem

lsusb && lsusb -t
  1. access Luci
    since GL.iNet doesn’t have proper implementation of modem using NCM, we have to manually set up the interface
    goto the gl.inet admin panel click on “advanced settings” and login to luci
    from this point on you’re leaving GL.inet interface, what you’re seeing is pure OpenWRT

  2. back up the router
    you don’t want to be re-configuring everything from scratch so head on over to “System” → “Backup / Flash Firmware” then click on “Generate Archive” This should download a .tar.gz file to your system

  3. prep the interface config
    go to “Network” → “Interfaces” it should ask you to convert the config to luci version, click convert, this doesn’t affect the functionality of gl.inet admin panel as far as I know because my VPN switch and wifi client is still working

  4. create a interface
    scroll down and look for “Add new Interface” click it, then on name use what you can remember I use “HUAWEI” for protocol select NCM

click “create interface” then for “Modem Device” select the first one “/dev/ttyUSB0” for “APN” use your ISP’s for mine it’s “internet” go to the “Firewall Settings” and choose the “wan” zone then click save

  1. Done! reboot the router and see if it’s working, you know it’s working because this reply is written on the modem connected to my GL-A1300

Note: this is just a workaround until GL.inet can get their engineer to work on proper support for this modem or in general mbim modem (the protocol is known to work with almost every modern modem, NCM still have issue, I would prefer proper MBIM support), GL’s Admin Panel will show no internet access, VPN, adguard, multi function switch will still work, failover will not function properly, from my testing it will prioritize LAN and wifi first (if connected), you cannot change it, you might be able to I haven’t tried it yet