We826 + Huawei me909 (s-120) - trying and failing to get up and running

I did not use LTE, but UMTS only, about 15MBit/s download.
Was good enough for our purpose.

Just bumping this to see if anyone can help, I guess I'll be needing to sell the Huawei pci-e card and find a more compatible one if i can't get this working :slightly_frowning_face:

You might consider Quectel EC25 as an alternative.

Thanks, are they one of the better supported modems?

Yes, I think. Check the number of posts referring to the EC25. Also cheaper than the Huawei, if still available.

Forget about EC-25. I used to have it and under heavy load it freezes. Eg. when I download and upload 10+mbit at the same time. Also it has its own set of bugs.
For example: https://bugs.openwrt.org/index.php?do=details&task_id=1252

I switched from EC25 to ME909s-120 recently and no more freezing...I don't know if there is update for EC-25 to fix the issues, because there is no firmware updates to it unlike ME909s-120 which gets bugfixes.

You only need to edit /etc/usb-mode.json file to get it working.

            "12d1:15c1": {
                    "*": {
                            "mode": "Huawei",
                            "msg": [  ]
                    }
            },

Then you can follow the NCM modem documentation https://openwrt.org/docs/guide-user/network/wan/wwan/ethernetoverusb_ncm

Use DHCP as protocol on WWAN interface. If you follow the old 3G dongle manual, you will be limited to speeds of ~20mbit due to PPP, so unless your requirements are much less than 20mbit, don't use it...

Hi,

Thanks a lot for your reply. Can I just ask - the file /etc/usb-mode.json does not exist after a fresh reset of the router. Should I just create this file or should it already exist?

Ok so quick update, still not working :frowning:

So I at first followed the guide, installing the following:

opkg update
opkg install comgt-ncm kmod-usb-net-huawei-cdc-ncm usb-modeswitch

This installed the /etc/usb-mode.json file.

I then added the entry you put in your post and rebooted.

Upon reboot I then ran the 'test' in the NCM guide you linked:

ls -l /dev/cdc-wdm0

Which just returns a file/directory not found error.

I checked in the Luci config and there is no WWAN interface to configure. The only interfaces I can select are:
Ethernet switch "eth0"
Switch VLAN "eth0.1" (lan)
Switch VLAN "eth0.2" (wan, wan6)
Wireless Network Master "OpenWRT" (lan)

So I tried installing the "optional packages":

opkg install kmod-usb-serial kmod-usb-serial-option kmod-usb-serial-wwan

But this made no difference, with the result the same as above.

So I am still stuck :frowning:

The file comes with usb-modeswitch package (as you found out). However it did not work for me out of the box and I had to modify it as I mentioned.

You have 2 options.

Option 1:

If you are using usb-modeswitch, you can make the change I made in the json file:

            "12d1:15c1": {
                    "*": {
                            "mode": "Huawei",
                            "msg": [  ]
                    }
            },

and reboot. There will NOT be a cdc-wdm0 device! You will have /dev/ttyUSB[0-4] and wwan0 when you boot you should see a line like this if you check dmesg:

[ 12.480301] cdc_ether 1-2:2.0 wwan0: register 'cdc_ether' at usb-1e1c0000.xhci-2, Mobile Broadband Network Device, XX:XX:XX:XX:XX:XX

I have these USB related packages installed

root@OpenWrt:~# opkg list-installed |grep usb
kmod-usb-core - 4.14.95-1
kmod-usb-net - 4.14.95-1
kmod-usb-net-cdc-ether - 4.14.95-1
kmod-usb-net-cdc-mbim - 4.14.95-1
kmod-usb-net-cdc-ncm - 4.14.95-1
kmod-usb-net-huawei-cdc-ncm - 4.14.95-1
kmod-usb-net-qmi-wwan - 4.14.95-1
kmod-usb-net-rndis - 4.14.95-1
kmod-usb-serial - 4.14.95-1
kmod-usb-serial-option - 4.14.95-1
kmod-usb-serial-wwan - 4.14.95-1
kmod-usb-wdm - 4.14.95-1
kmod-usb3 - 4.14.95-1
libusb-1.0 - 1.0.22-1
usb-modeswitch - 2017-12-19-f40f84c2-1
usbutils - 007-9
root@OpenWrt:~#

Not all are required but I sometimes put some USB 4G cards etc. so I have all popular choices ready.

root@OpenWrt:~# ifconfig |grep wwan
wwan0     Link encap:Ethernet  HWaddr XX:XX:XX:XX:XX:XX
root@OpenWrt:~#

You need to use NDISDUP to dial to your provider and setup DHCP client on wwan0. I use this method because I need access to AT commands to disable voice calls on the device.

Option 2:

Look at this and read carefully:
https://bugs.openwrt.org/index.php?do=details&task_id=1424
He has the same card and problem.

The problem is because usb-modeswitch has a bug. Please read carefully (and vote for fix!):
https://bugs.openwrt.org/index.php?do=details&task_id=2319
This bug effected the original usb_modeswitch and it should be fixed in it. but the OpenWRT rewrite still has this bug. In the bug report is link to usb_modeswitch forum also. Please read that thread too.

As you can see Sydney Meyer who made the bug report uses a script to set bConfigurationValue to 0 then to 3 to get this card work in MBIM mode.

I do not know if he uninstalled usb-modeswitch completely (I think he may have done that).

If you see his message sent at 14.06.2019 13:35 he shared his configuration settings. In MBIM mode, you will have /dev/cdc-wdm0. However in my case there were no ttyUSBX ports so I am not able to use them. If you try this, you can let me know if you see any ttyUSBX ports

This should be enough information for you to get things rolling. Let us know how it goes.

Thanks,

Thanks for all that, I tried what I could but I am either running into walls of me not understanding things well enough (I can follow guides, but my knowledge is very limited) or getting different results than expected.

Here is where I am:
I initially printed out a dmesg and searched for any instance of "wwan0" - there were none.
I then installed all the packages you have installed to see if it made a difference.
I could now see the line:

[   16.720068] cdc_ether 1-1.3:2.0 wwan0: register 'cdc_ether' at usb-101c0000.ehci-1.3, Mobile Broadband Network Device, xx:xx:xx:xx:xx:xx

However below it was a line reading:

[   18.748975] cdc_ether 1-1.3:2.0 wwan0: unregister 'cdc_ether' usb-101c0000.ehci-1.3, Mobile Broadband Network Device

I don't know if that is significant, but when I run ifconfig:

root@OpenWrt:~# ifconfig |grep wwan
ifconfig: ▒: error fetching interface information: Device not found

At the end of this first option I'm afraid I dont know how to NDISDUP to dial my provider.

I did see the scripts for starting NDIS manually - but I am unsure how to send an AT command to the modem. This guide: https://openwrt.org/docs/guide-user/network/wan/wwan/ethernetoverusb_ncm
that you posted earlier has troubleshooting which says that if wdm0 does not respond (which it doesn't) then you can start the modem manually by " sending the following to */dev/ttyUSB1". - I assume it means an AT command as this is the command it says to send:

AT^NDISDUP=1,1,"your_apn_address"

so is there a simple way for me to send AT commands to the device through OpenWRT?

For Option 2:

In the linked discussion poster Evren Yurtesen says that adding those lines to his json file stopped the looping - this did not work for me. Am I adding it correctly by adding it along with the other devices or should it be the only entry in the entire file?

 ],

        "devices" : {
                "12d1:15c1": {
                        "*": {
                                "mode": "Huawei",
                                "msg": [  ]
                        }
                },
                "03f0:002a": {
                        "*": {
                                "t_class": 7,
                                "msg": [ 0 ]
                        }
                },
                "03f0:032a": {
                        "*": {
                                "t_class": 7,
                                "msg": [ 0 ]
...(this continues on with hundreds of other devices)

The posts and links go on to explain that the usb-modeswitch needs to switch to 0 first then 3. As you say he mentions running a script that sets bConfigurationValue to 0 then to 3 - but I dont know how to achieve this.

Here is my dmesg in case it helps - thanks a lot for helping me with this, would love to crack it.

edit: Oh and I couldn't see how to vote for a bugfix?

login as: root
root@192.168.1.1's password:


BusyBox v1.28.4 () built-in shell (ash)

  _______                     ________        __
 |       |.-----.-----.-----.|  |  |  |.----.|  |_
 |   -   ||  _  |  -__|     ||  |  |  ||   _||   _|
 |_______||   __|_____|__|__||________||__|  |____|
          |__| W I R E L E S S   F R E E D O M
 -----------------------------------------------------
 OpenWrt 18.06.2, r7676-cddd7b4c77
 -----------------------------------------------------
root@OpenWrt:~# dmesg
[    0.000000] Linux version 4.14.95 (buildbot@builds-03.infra.lede-project.org) (gcc version 7.3.0 (OpenWrt GCC 7.3.0 r7627-753531d)) #0 Mon Jan 28 08:54:32 2019
[    0.000000] Board has DDR2
[    0.000000] Analog PMU set to hw control
[    0.000000] Digital PMU set to hw control
[    0.000000] SoC Type: MediaTek MT7620A ver:2 eco:6
[    0.000000] bootconsole [early0] enabled
[    0.000000] CPU0 revision is: 00019650 (MIPS 24KEc)
[    0.000000] MIPS: machine is ZBT-WE826 (16M)
[    0.000000] Determined physical RAM map:
[    0.000000]  memory: 08000000 @ 00000000 (usable)
[    0.000000] Initrd not found or empty - disabling initrd
[    0.000000] Primary instruction cache 64kB, VIPT, 4-way, linesize 32 bytes.
[    0.000000] Primary data cache 32kB, 4-way, PIPT, no aliases, linesize 32 bytes
[    0.000000] Zone ranges:
[    0.000000]   Normal   [mem 0x0000000000000000-0x0000000007ffffff]
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000000000000-0x0000000007ffffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000000000000-0x0000000007ffffff]
[    0.000000] On node 0 totalpages: 32768
[    0.000000] free_area_init_node: node 0, pgdat 80421050, node_mem_map 81000040
[    0.000000]   Normal zone: 256 pages used for memmap
[    0.000000]   Normal zone: 0 pages reserved
[    0.000000]   Normal zone: 32768 pages, LIFO batch:7
[    0.000000] random: get_random_bytes called from 0x8042472c with crng_init=0
[    0.000000] pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768
[    0.000000] pcpu-alloc: [0] 0
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 32512
[    0.000000] Kernel command line: console=ttyS0,115200 rootfstype=squashfs,jffs2
[    0.000000] PID hash table entries: 512 (order: -1, 2048 bytes)
[    0.000000] Dentry cache hash table entries: 16384 (order: 4, 65536 bytes)
[    0.000000] Inode-cache hash table entries: 8192 (order: 3, 32768 bytes)
[    0.000000] Writing ErrCtl register=0005a3d1
[    0.000000] Readback ErrCtl register=0005a3d1
[    0.000000] Memory: 125212K/131072K available (3590K kernel code, 178K rwdata, 464K rodata, 176K init, 214K bss, 5860K reserved, 0K cma-reserved)
[    0.000000] SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[    0.000000] NR_IRQS: 256
[    0.000000] CPU Clock: 580MHz
[    0.000000] clocksource: systick: mask: 0xffff max_cycles: 0xffff, max_idle_ns: 583261500 ns
[    0.000000] systick: enable autosleep mode
[    0.000000] systick: running - mult: 214748, shift: 32
[    0.000000] clocksource: MIPS: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 6590553264 ns
[    0.000013] sched_clock: 32 bits at 290MHz, resolution 3ns, wraps every 7405115902ns
[    0.007598] Calibrating delay loop... 385.84 BogoMIPS (lpj=1929216)
[    0.073551] pid_max: default: 32768 minimum: 301
[    0.078285] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.084662] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.097475] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[    0.107014] futex hash table entries: 256 (order: -1, 3072 bytes)
[    0.113006] pinctrl core: initialized pinctrl subsystem
[    0.119388] NET: Registered protocol family 16
[    0.129019] Can't analyze schedule() prologue at 8037d498
[    0.609305] mt7620-pci 10140000.pcie: PCIE0 no card, disable it(RST&CLK)
[    0.615802] mt7620-pci: probe of 10140000.pcie failed with error -1
[    0.640039] rt2880_gpio 10000600.gpio: registering 24 gpios
[    0.645436] rt2880_gpio 10000600.gpio: registering 24 irq handlers
[    0.651827] rt2880_gpio 10000638.gpio: registering 16 gpios
[    0.657201] rt2880_gpio 10000638.gpio: registering 16 irq handlers
[    0.663584] rt2880_gpio 10000688.gpio: registering 1 gpios
[    0.668877] rt2880_gpio 10000688.gpio: registering 1 irq handlers
[    0.679807] clocksource: Switched to clocksource systick
[    0.686132] NET: Registered protocol family 2
[    0.691336] TCP established hash table entries: 1024 (order: 0, 4096 bytes)
[    0.698062] TCP bind hash table entries: 1024 (order: 0, 4096 bytes)
[    0.704287] TCP: Hash tables configured (established 1024 bind 1024)
[    0.710555] UDP hash table entries: 256 (order: 0, 4096 bytes)
[    0.716182] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
[    0.722571] NET: Registered protocol family 1
[    0.726763] PCI: CLS 0 bytes, default 32
[    0.729553] rt-timer 10000100.timer: maximum frequency is 1220Hz
[    0.736288] Crashlog allocated RAM at address 0x3f00000
[    0.743138] workingset: timestamp_bits=30 max_order=15 bucket_order=0
[    0.755437] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    0.761083] jffs2: version 2.2 (NAND) (SUMMARY) (LZMA) (RTIME) (CMODE_PRIORITY) (c) 2001-2006 Red Hat, Inc.
[    0.781219] io scheduler noop registered
[    0.784967] io scheduler deadline registered (default)
[    0.790971] Serial: 8250/16550 driver, 16 ports, IRQ sharing enabled
[    0.800081] console [ttyS0] disabled
[    0.803534] 10000c00.uartlite: ttyS0 at MMIO 0x10000c00 (irq = 20, base_baud = 2500000) is a Palmchip BK-3103
[    0.813178] console [ttyS0] enabled
[    0.820217] bootconsole [early0] disabled
[    0.829010] cacheinfo: Failed to find cpu0 device node
[    0.834293] cacheinfo: Unable to detect cache hierarchy for CPU 0
[    0.847965] spi spi0.0: force spi mode3
[    0.861503] m25p80 spi0.0: w25q128 (16384 Kbytes)
[    0.866360] 4 fixed-partitions partitions found on MTD device spi0.0
[    0.872856] Creating 4 MTD partitions on "spi0.0":
[    0.877753] 0x000000000000-0x000000030000 : "u-boot"
[    0.883757] 0x000000030000-0x000000040000 : "u-boot-env"
[    0.890116] 0x000000040000-0x000000050000 : "factory"
[    0.896129] 0x000000050000-0x000001000000 : "firmware"
[    2.699800] random: fast init done
[    2.815961] 2 uimage-fw partitions found on MTD device firmware
[    2.822040] 0x000000050000-0x0000001aef28 : "kernel"
[    2.827988] 0x0000001aef28-0x000001000000 : "rootfs"
[    2.833946] mtd: device 5 (rootfs) set to be root filesystem
[    2.841339] 1 squashfs-split partitions found on MTD device rootfs
[    2.847669] 0x000000416000-0x000001000000 : "rootfs_data"
[    2.854886] libphy: Fixed MDIO Bus: probed
[    2.862528] gsw: setting port4 to ephy mode
[    2.866849] mtk_soc_eth 10100000.ethernet eth0 (uninitialized): port 4 link up (100Mbps/Full duplex)
[    2.877876] mtk_soc_eth 10100000.ethernet: loaded mt7620 driver
[    2.884667] mtk_soc_eth 10100000.ethernet eth0: mediatek frame engine at 0xb0100000, irq 5
[    2.893672] rt2880_wdt 10000120.watchdog: Initialized
[    2.900306] NET: Registered protocol family 10
[    2.908784] Segment Routing with IPv6
[    2.912722] NET: Registered protocol family 17
[    2.917308] bridge: filtering via arp/ip/ip6tables is no longer available by default. Update your scripts to load br_netfilter if you need this.
[    2.930543] 8021q: 802.1Q VLAN Support v1.8
[    2.950718] VFS: Mounted root (squashfs filesystem) readonly on device 31:5.
[    2.958880] Freeing unused kernel memory: 176K
[    2.963459] This architecture does not have kernel memory protection.
[    4.421136] init: Console is alive
[    4.424862] init: - watchdog -
[    6.598948] kmodloader: loading kernel modules from /etc/modules-boot.d/*
[    6.918696] usbcore: registered new interface driver usbfs
[    6.924478] usbcore: registered new interface driver hub
[    6.930043] usbcore: registered new device driver usb
[    6.941131] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    6.949493] ehci-platform: EHCI generic platform driver
[    6.965242] phy phy-usbphy.0: remote usb device wakeup disabled
[    6.971303] phy phy-usbphy.0: UTMI 16bit 30MHz
[    6.975852] ehci-platform 101c0000.ehci: EHCI Host Controller
[    6.981778] ehci-platform 101c0000.ehci: new USB bus registered, assigned bus number 1
[    6.989982] ehci-platform 101c0000.ehci: irq 26, io mem 0x101c0000
[    7.004507] ehci-platform 101c0000.ehci: USB 2.0 started, EHCI 1.00
[    7.011986] hub 1-0:1.0: USB hub found
[    7.016288] hub 1-0:1.0: 1 port detected
[    7.023634] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[    7.031535] ohci-platform: OHCI generic platform driver
[    7.037271] ohci-platform 101c1000.ohci: Generic Platform OHCI controller
[    7.044230] ohci-platform 101c1000.ohci: new USB bus registered, assigned bus number 2
[    7.052453] ohci-platform 101c1000.ohci: irq 26, io mem 0x101c1000
[    7.086233] hub 2-0:1.0: USB hub found
[    7.090525] hub 2-0:1.0: 1 port detected
[    7.107139] MTK MSDC device init.
[    7.128451] mtk-sd: MediaTek MT6575 MSDC Driver
[    7.137223] kmodloader: done loading kernel modules from /etc/modules-boot.d/*
[    7.148892] init: - preinit -
[    7.302378] usb 1-1: new high-speed USB device number 2 using ehci-platform
[    7.520143] hub 1-1:1.0: USB hub found
[    7.526576] hub 1-1:1.0: 4 ports detected
[    8.095432] random: procd: uninitialized urandom read (4 bytes read)
[    8.418580] usb 1-1.3: new full-speed USB device number 3 using ehci-platform
[    8.682042] usb 1-1.3: new high-speed USB device number 4 using ehci-platform
[    9.149263] 8021q: adding VLAN 0 to HW filter on device eth0
[   11.783286] jffs2: notice: (406) jffs2_build_xattr_subsystem: complete building xattr subsystem, 9 of xdatum (3 unchecked, 6 orphan) and 70 of xref (16 dead, 7 orphan) found.
[   11.814093] mount_root: switching to jffs2 overlay
[   11.851039] overlayfs: upper fs does not support tmpfile.
[   11.877883] urandom-seed: Seeding with /etc/urandom.seed
[   12.028789] procd: - early -
[   12.031855] procd: - watchdog -
[   12.826399] procd: - watchdog -
[   12.830455] procd: - ubus -
[   13.058107] random: ubusd: uninitialized urandom read (4 bytes read)
[   13.172141] random: jshn: uninitialized urandom read (4 bytes read)
[   13.189219] random: ubusd: uninitialized urandom read (4 bytes read)
[   13.198316] procd: - init -
[   14.526651] usb 1-1.3: usbfs: process 495 (usbmode) did not claim interface 1 before use
[   14.772871] usb 1-1.3: usbfs: interface 1 claimed by usbfs while 'usbmode' sets config #0
[   15.092158] usb 1-1.3: usbfs: process 591 (usbmode) did not claim interface 1 before use
[   15.312362] usb 1-1.3: usbfs: interface 1 claimed by usbfs while 'usbmode' sets config #0
[   15.949319] kmodloader: loading kernel modules from /etc/modules.d/*
[   15.983339] ip6_tables: (C) 2000-2006 Netfilter Core Team
[   16.324096] usbcore: registered new interface driver cdc_wdm
[   16.341802] Loading modules backported from Linux version wt-2017-11-01-0-gfe248fc2c180
[   16.350045] Backport generated by backports.git v4.14-rc2-1-31-g86cf0e5d
[   16.381224] ip_tables: (C) 2000-2006 Netfilter Core Team
[   16.407671] nf_conntrack version 0.5.0 (2048 buckets, 8192 max)
[   16.625069] usbcore: registered new interface driver usbserial
[   16.631229] usbcore: registered new interface driver usbserial_generic
[   16.638026] usbserial: USB Serial support registered for generic
[   16.702624] xt_time: kernel timezone is -0000
[   16.720068] cdc_ether 1-1.3:2.0 wwan0: register 'cdc_ether' at usb-101c0000.ehci-1.3, Mobile Broadband Network Device, 02:1e:10:1f:00:00
[   16.732966] usbcore: registered new interface driver cdc_ether
[   16.789484] usbcore: registered new interface driver cdc_ncm
[   16.929031] usbcore: registered new interface driver huawei_cdc_ncm
[   17.058784] PPP generic driver version 2.4.2
[   17.088581] NET: Registered protocol family 24
[   17.114275] usbcore: registered new interface driver qmi_wwan
[   17.127016] usbcore: registered new interface driver rndis_host
[   17.172491] usbcore: registered new interface driver cdc_mbim
[   17.206049] usbcore: registered new interface driver option
[   17.211946] usbserial: USB Serial support registered for GSM modem (1-port)
[   17.220097] option 1-1.3:2.2: GSM modem (1-port) converter detected
[   17.226786] usb 1-1.3: GSM modem (1-port) converter now attached to ttyUSB0
[   17.234373] option 1-1.3:2.3: GSM modem (1-port) converter detected
[   17.241157] usb 1-1.3: GSM modem (1-port) converter now attached to ttyUSB1
[   17.248734] option 1-1.3:2.4: GSM modem (1-port) converter detected
[   17.255438] usb 1-1.3: GSM modem (1-port) converter now attached to ttyUSB2
[   17.263009] option 1-1.3:2.5: GSM modem (1-port) converter detected
[   17.269756] usb 1-1.3: GSM modem (1-port) converter now attached to ttyUSB3
[   17.277330] option 1-1.3:2.6: GSM modem (1-port) converter detected
[   17.284044] usb 1-1.3: GSM modem (1-port) converter now attached to ttyUSB4
[   17.428705] rt2800_wmac 10180000.wmac: loaded eeprom from mtd device "factory"
[   17.436100] ieee80211 phy0: rt2x00_set_rt: Info - RT chipset 6352, rev 0500 detected
[   17.444074] ieee80211 phy0: rt2x00_set_rf: Info - RF chipset 7620 detected
[   17.451817] ieee80211 phy0: Selected rate control algorithm 'minstrel_ht'
[   17.487557] kmodloader: done loading kernel modules from /etc/modules.d/*
[   18.748975] cdc_ether 1-1.3:2.0 wwan0: unregister 'cdc_ether' usb-101c0000.ehci-1.3, Mobile Broadband Network Device
[   18.782125] usb 1-1.3: usbfs: process 854 (usbmode) did not claim interface 1 before use
[   19.013273] usb 1-1.3: usbfs: interface 1 claimed by usbfs while 'usbmode' sets config #0
[   19.648481] usb 1-1.3: usbfs: process 923 (usbmode) did not claim interface 1 before use
[   19.878221] usb 1-1.3: usbfs: interface 1 claimed by usbfs while 'usbmode' sets config #0
[   20.613799] usb 1-1.3: usbfs: process 986 (usbmode) did not claim interface 1 before use
[   20.853970] usb 1-1.3: usbfs: interface 1 claimed by usbfs while 'usbmode' sets config #0
[   21.814798] usb 1-1.3: usbfs: process 1065 (usbmode) did not claim interface 1 before use
[   22.071796] usb 1-1.3: usbfs: interface 1 claimed by usbfs while 'usbmode' sets config #0
[   22.668150] usb 1-1.3: usbfs: process 1129 (usbmode) did not claim interface 1 before use
[   22.887003] usb 1-1.3: usbfs: interface 1 claimed by usbfs while 'usbmode' sets config #0
[   23.462484] usb 1-1.3: usbfs: process 1176 (usbmode) did not claim interface 1 before use
[   23.692501] usb 1-1.3: usbfs: interface 1 claimed by usbfs while 'usbmode' sets config #0
[   24.674874] usb 1-1.3: usbfs: process 1239 (usbmode) did not claim interface 1 before use
[   24.906022] usb 1-1.3: usbfs: interface 1 claimed by usbfs while 'usbmode' sets config #0
[   26.057356] usb 1-1.3: usbfs: process 1318 (usbmode) did not claim interface 1 before use
[   26.323144] usb 1-1.3: usbfs: interface 1 claimed by usbfs while 'usbmode' sets config #0
[   27.026877] usb 1-1.3: usbfs: process 1358 (usbmode) did not claim interface 1 before use
[   27.260116] usb 1-1.3: usbfs: interface 1 claimed by usbfs while 'usbmode' sets config #0
[   28.143121] usb 1-1.3: usbfs: process 1426 (usbmode) did not claim interface 1 before use
[   28.378135] usb 1-1.3: usbfs: interface 1 claimed by usbfs while 'usbmode' sets config #0
[   29.777711] usb 1-1.3: usbfs: process 1493 (usbmode) did not claim interface 1 before use
[   30.008761] usb 1-1.3: usbfs: interface 1 claimed by usbfs while 'usbmode' sets config #0
[   31.750129] usb 1-1.3: usbfs: process 1622 (usbmode) did not claim interface 1 before use
[   31.998510] usb 1-1.3: usbfs: interface 1 claimed by usbfs while 'usbmode' sets config #0
[   33.005757] usb 1-1.3: usbfs: process 1699 (usbmode) did not claim interface 1 before use
[   33.258179] usb 1-1.3: usbfs: interface 1 claimed by usbfs while 'usbmode' sets config #0
[   34.110471] usb 1-1.3: usbfs: process 1770 (usbmode) did not claim interface 1 before use
[   34.340866] usb 1-1.3: usbfs: interface 1 claimed by usbfs while 'usbmode' sets config #0
[   35.139975] usb 1-1.3: usbfs: process 1838 (usbmode) did not claim interface 1 before use
[   35.388381] usb 1-1.3: usbfs: interface 1 claimed by usbfs while 'usbmode' sets config #0
[   36.275884] usb 1-1.3: usbfs: process 1912 (usbmode) did not claim interface 1 before use
[   36.518610] usb 1-1.3: usbfs: interface 1 claimed by usbfs while 'usbmode' sets config #0
[   37.399981] usb 1-1.3: usbfs: process 1977 (usbmode) did not claim interface 1 before use
[   37.638263] usb 1-1.3: usbfs: interface 1 claimed by usbfs while 'usbmode' sets config #0
[   38.566988] usb 1-1.3: usbfs: process 2051 (usbmode) did not claim interface 1 before use
[   38.805861] usb 1-1.3: usbfs: interface 1 claimed by usbfs while 'usbmode' sets config #0
[   39.569198] usb 1-1.3: usbfs: process 2123 (usbmode) did not claim interface 1 before use
[   39.799066] usb 1-1.3: usbfs: interface 1 claimed by usbfs while 'usbmode' sets config #0
[   40.398645] usb 1-1.3: usbfs: process 2175 (usbmode) did not claim interface 1 before use
[   40.520487] 8021q: adding VLAN 0 to HW filter on device eth0
[   40.534006] br-lan: port 1(eth0.1) entered blocking state
[   40.539601] br-lan: port 1(eth0.1) entered disabled state
[   40.545486] device eth0.1 entered promiscuous mode
[   40.550611] device eth0 entered promiscuous mode
[   40.590791] br-lan: port 1(eth0.1) entered blocking state
[   40.596321] br-lan: port 1(eth0.1) entered forwarding state
[   40.602299] IPv6: ADDRCONF(NETDEV_UP): br-lan: link is not ready
[   40.638525] usb 1-1.3: usbfs: interface 1 claimed by usbfs while 'usbmode' sets config #0
[   41.527625] IPv6: ADDRCONF(NETDEV_CHANGE): br-lan: link becomes ready
[   42.202163] usb 1-1.3: usbfs: process 2248 (usbmode) did not claim interface 1 before use
[   42.464429] usb 1-1.3: usbfs: interface 1 claimed by usbfs while 'usbmode' sets config #0
[   44.210290] usb 1-1.3: usbfs: process 2397 (usbmode) did not claim interface 1 before use
[   44.468239] usb 1-1.3: usbfs: interface 1 claimed by usbfs while 'usbmode' sets config #0
[   45.953798] usb 1-1.3: usbfs: process 2544 (usbmode) did not claim interface 1 before use
[   46.182382] usb 1-1.3: usbfs: interface 1 claimed by usbfs while 'usbmode' sets config #0
[   47.028405] usb 1-1.3: usbfs: process 2610 (usbmode) did not claim interface 1 before use
[   47.254942] usb 1-1.3: usbfs: interface 1 claimed by usbfs while 'usbmode' sets config #0
[   47.795316] usb 1-1.3: usbfs: process 2658 (usbmode) did not claim interface 1 before use
[   48.019118] usb 1-1.3: usbfs: interface 1 claimed by usbfs while 'usbmode' sets config #0
[   48.391042] IPv6: ADDRCONF(NETDEV_UP): wlan0: link is not ready
[   48.430911] br-lan: port 2(wlan0) entered blocking state
[   48.436349] br-lan: port 2(wlan0) entered disabled state
[   48.442245] device wlan0 entered promiscuous mode
[   48.466414] usb 1-1.3: usbfs: process 2706 (usbmode) did not claim interface 1 before use
[   48.517739] IPv6: ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready
[   48.524486] br-lan: port 2(wlan0) entered blocking state
[   48.529966] br-lan: port 2(wlan0) entered forwarding state
[   48.691024] usb 1-1.3: usbfs: interface 1 claimed by usbfs while 'usbmode' sets config #0
[   49.429705] usb 1-1.3: usbfs: process 2774 (usbmode) did not claim interface 1 before use
[   49.666300] usb 1-1.3: usbfs: interface 1 claimed by usbfs while 'usbmode' sets config #0
[   50.331837] usb 1-1.3: usbfs: process 2842 (usbmode) did not claim interface 1 before use
[   50.588290] usb 1-1.3: usbfs: interface 1 claimed by usbfs while 'usbmode' sets config #0
[   51.322751] usb 1-1.3: usbfs: process 2922 (usbmode) did not claim interface 1 before use
[   51.549659] usb 1-1.3: usbfs: interface 1 claimed by usbfs while 'usbmode' sets config #0
[   51.966923] usb 1-1.3: usbfs: process 2982 (usbmode) did not claim interface 1 before use
[   52.207825] usb 1-1.3: usbfs: interface 1 claimed by usbfs while 'usbmode' sets config #0
[   52.519844] usb 1-1.3: usbfs: process 3030 (usbmode) did not claim interface 1 before use
[   52.748965] usb 1-1.3: usbfs: interface 1 claimed by usbfs while 'usbmode' sets config #0
[   53.072160] usb 1-1.3: usbfs: process 3078 (usbmode) did not claim interface 1 before use
[   53.298145] usb 1-1.3: usbfs: interface 1 claimed by usbfs while 'usbmode' sets config #0
[   53.969029] usb 1-1.3: usbfs: process 3152 (usbmode) did not claim interface 1 before use
[   54.188750] usb 1-1.3: usbfs: interface 1 claimed by usbfs while 'usbmode' sets config #0
[   54.546914] usb 1-1.3: usbfs: process 3200 (usbmode) did not claim interface 1 before use
[   54.768483] usb 1-1.3: usbfs: interface 1 claimed by usbfs while 'usbmode' sets config #0
[   55.122799] usb 1-1.3: usbfs: process 3248 (usbmode) did not claim interface 1 before use
[   55.350873] usb 1-1.3: usbfs: interface 1 claimed by usbfs while 'usbmode' sets config #0
[   55.693153] usb 1-1.3: usbfs: process 3296 (usbmode) did not claim interface 1 before use
[   55.924288] usb 1-1.3: usbfs: interface 1 claimed by usbfs while 'usbmode' sets config #0
[   56.272861] usb 1-1.3: usbfs: process 3344 (usbmode) did not claim interface 1 before use
[   56.499037] usb 1-1.3: usbfs: interface 1 claimed by usbfs while 'usbmode' sets config #0
[   56.852382] usb 1-1.3: usbfs: process 3392 (usbmode) did not claim interface 1 before use
[   57.078419] usb 1-1.3: usbfs: interface 1 claimed by usbfs while 'usbmode' sets config #0
[   57.433039] usb 1-1.3: usbfs: process 3440 (usbmode) did not claim interface 1 before use
[   57.658053] usb 1-1.3: usbfs: interface 1 claimed by usbfs while 'usbmode' sets config #0
[   58.198092] usb 1-1.3: usbfs: process 3504 (usbmode) did not claim interface 1 before use
[   58.422472] usb 1-1.3: usbfs: interface 1 claimed by usbfs while 'usbmode' sets config #0
[   58.769332] usb 1-1.3: usbfs: process 3552 (usbmode) did not claim interface 1 before use
[   58.996805] usb 1-1.3: usbfs: interface 1 claimed by usbfs while 'usbmode' sets config #0
[   59.339269] usb 1-1.3: usbfs: process 3600 (usbmode) did not claim interface 1 before use
[   59.558548] usb 1-1.3: usbfs: interface 1 claimed by usbfs while 'usbmode' sets config #0
[   59.879902] usb 1-1.3: usbfs: process 3648 (usbmode) did not claim interface 1 before use
[   60.109098] usb 1-1.3: usbfs: interface 1 claimed by usbfs while 'usbmode' sets config #0
[   60.447402] usb 1-1.3: usbfs: process 3696 (usbmode) did not claim interface 1 before use
[   60.669308] usb 1-1.3: usbfs: interface 1 claimed by usbfs while 'usbmode' sets config #0
[   60.998073] usb 1-1.3: usbfs: process 3744 (usbmode) did not claim interface 1 before use
[   61.228550] usb 1-1.3: usbfs: interface 1 claimed by usbfs while 'usbmode' sets config #0
[   61.558892] usb 1-1.3: usbfs: process 3792 (usbmode) did not claim interface 1 before use
[   61.778770] usb 1-1.3: usbfs: interface 1 claimed by usbfs while 'usbmode' sets config #0
[   62.119024] usb 1-1.3: usbfs: process 3840 (usbmode) did not claim interface 1 before use
[   62.337526] usb 1-1.3: usbfs: interface 1 claimed by usbfs while 'usbmode' sets config #0
[   62.661419] usb 1-1.3: usbfs: process 3888 (usbmode) did not claim interface 1 before use
[   62.888041] usb 1-1.3: usbfs: interface 1 claimed by usbfs while 'usbmode' sets config #0
[   63.243816] usb 1-1.3: usbfs: process 3936 (usbmode) did not claim interface 1 before use
[   63.469154] usb 1-1.3: usbfs: interface 1 claimed by usbfs while 'usbmode' sets config #0
[   63.819435] usb 1-1.3: usbfs: process 3984 (usbmode) did not claim interface 1 before use
[   64.054459] usb 1-1.3: usbfs: interface 1 claimed by usbfs while 'usbmode' sets config #0
[   64.409049] usb 1-1.3: usbfs: process 4032 (usbmode) did not claim interface 1 before use
[   64.633949] usb 1-1.3: usbfs: interface 1 claimed by usbfs while 'usbmode' sets config #0
[   65.156433] usb 1-1.3: usbfs: process 4108 (usbmode) did not claim interface 1 before use
[   65.379243] usb 1-1.3: usbfs: interface 1 claimed by usbfs while 'usbmode' sets config #0
[   65.798007] usb 1-1.3: usbfs: process 4170 (usbmode) did not claim interface 1 before use
[   66.024005] usb 1-1.3: usbfs: interface 1 claimed by usbfs while 'usbmode' sets config #0
[   66.369767] usb 1-1.3: usbfs: process 4218 (usbmode) did not claim interface 1 before use
[   66.599424] usb 1-1.3: usbfs: interface 1 claimed by usbfs while 'usbmode' sets config #0
[   66.980376] usb 1-1.3: usbfs: process 4270 (usbmode) did not claim interface 1 before use
[   67.209513] usb 1-1.3: usbfs: interface 1 claimed by usbfs while 'usbmode' sets config #0
[   67.551212] usb 1-1.3: usbfs: process 4318 (usbmode) did not claim interface 1 before use
[   67.779904] usb 1-1.3: usbfs: interface 1 claimed by usbfs while 'usbmode' sets config #0
[   68.206706] usb 1-1.3: usbfs: process 4380 (usbmode) did not claim interface 1 before use
[   68.430146] usb 1-1.3: usbfs: interface 1 claimed by usbfs while 'usbmode' sets config #0
[   68.760591] usb 1-1.3: usbfs: process 4428 (usbmode) did not claim interface 1 before use
[   68.989788] usb 1-1.3: usbfs: interface 1 claimed by usbfs while 'usbmode' sets config #0
[   69.319658] usb 1-1.3: usbfs: process 4476 (usbmode) did not claim interface 1 before use
[   69.547956] usb 1-1.3: usbfs: interface 1 claimed by usbfs while 'usbmode' sets config #0
[   69.898067] usb 1-1.3: usbfs: process 4524 (usbmode) did not claim interface 1 before use
[   70.128548] usb 1-1.3: usbfs: interface 1 claimed by usbfs while 'usbmode' sets config #0
[   70.480650] usb 1-1.3: usbfs: process 4572 (usbmode) did not claim interface 1 before use
[   70.709766] usb 1-1.3: usbfs: interface 1 claimed by usbfs while 'usbmode' sets config #0
[   71.042538] usb 1-1.3: usbfs: process 4620 (usbmode) did not claim interface 1 before use
[   71.270428] usb 1-1.3: usbfs: interface 1 claimed by usbfs while 'usbmode' sets config #0
[   71.600541] usb 1-1.3: usbfs: process 4668 (usbmode) did not claim interface 1 before use
[   71.829946] usb 1-1.3: usbfs: interface 1 claimed by usbfs while 'usbmode' sets config #0
[   72.148412] usb 1-1.3: usbfs: process 4716 (usbmode) did not claim interface 1 before use
[   72.370706] usb 1-1.3: usbfs: interface 1 claimed by usbfs while 'usbmode' sets config #0
[   72.711268] usb 1-1.3: usbfs: process 4764 (usbmode) did not claim interface 1 before use
[   72.935875] usb 1-1.3: usbfs: interface 1 claimed by usbfs while 'usbmode' sets config #0
[   73.143886] random: crng init done
[   73.147380] random: 6 urandom warning(s) missed due to ratelimiting
[   73.287700] usb 1-1.3: usbfs: process 4812 (usbmode) did not claim interface 1 before use
[   73.510025] usb 1-1.3: usbfs: interface 1 claimed by usbfs while 'usbmode' sets config #0
[   73.839117] usb 1-1.3: usbfs: process 4860 (usbmode) did not claim interface 1 before use
[   74.062157] usb 1-1.3: usbfs: interface 1 claimed by usbfs while 'usbmode' sets config #0
...more of the same..
root@OpenWrt:~#

This is because you did NOT modify /etc/usb-mode.json as I told you. You should be able to completely remove usb-modeswitch. I did not test this but I think it does nothing but harm for me909s-120. If you don't know how to edit the file, just uninstall usb-modeswitch and try again.

No, I never said I "added" the lines. I said I edited /etc/usb-mode.json file. There is already an entry for device "12d1:15c1". You need to change the existing entry. Then the looping will stop. Search inside the file for 12d1:15c1. Or just uninstall usb-modeswitch I am not 100% sure but that should fix the problem you are having.

The problem is that you are adding same entry second time. The one you add probably gets ignored because it will be overwritten by the 2nd entry. You need to update/edit the json file.

Firstly even if you do this, you can NOT configure the link using luci. You need to configure it using uci or by manually editing the config. Because AFAIK luci does not know MBIM.

For me the file is at /sys/devices/platform/1e1c0000.xhci/usb1/1-2/bConfigurationValue you can check existing value cat /sys/devices/platform/1e1c0000.xhci/usb1/1-2/bConfigurationValue or change it echo 0 > /sys/devices/platform/1e1c0000.xhci/usb1/1-2/bConfigurationValue and then echo 3 > /sys/devices/platform/1e1c0000.xhci/usb1/1-2/bConfigurationValue

Just keep in mind, depending on your hardware, the path will be different.

There is already examples in documentation
https://openwrt.org/docs/guide-user/network/wan/wwan/ethernetoverusb_ncm
If you look at the script /etc/init.d/ncm-network example in there. You can see that you can send it easily like this echo -ne "AT^NDISDUP=1,1,\"${APN}\"\r\n" > ${DEVICE} You need to change ${APN} with your APN and ${DEVICE} with /dev/ttyUSB2 (I think it should be 2, you can check the devices in /dev) Or you can just use the script which does it for you!

On second thought, you could also setup NCM using luci and give /dev/ttyUSB2 (or whatever your serial port appears as) as the device and it should dial for you. Check it with logread -f But I found out that this won't work well at boot, the card initializes too slow.
https://forum.openwrt.org/t/ncm-interface-with-delayed-start/38942

Ok so baby steps - thanks for the clarification on how to modify usb-mode.json.

I have now modified the entry as you suggest and it has indeed stopped the repeating error message, it has also created the interface 'wwan0' - so at least I am getting somewhere slowly!

As this is the first time this has worked I then wanted to try sending the AT command with the APN. You said to check the devices in '/dev' but I couldn't find out how this location would indicate which was which. I did follow another guide to locate the devices in /sys/devices/platform/101c0000.ehci/usb1/1-1/1-1.3/1-1.3:2.(2-6)

These locations contain a file called interface - this is how they correspond:
1-1.3:2.2 - ttyUSB0 : "Huawei Mobile Connect - Modem"
1-1.3:2.3 - ttyUSB1 : "Huawei Mobile Connect - Application"
1-1.3:2.4 - ttyUSB2 : "Huawei Mobile Connect - Pcui"
1-1.3:2.5 - ttyUSB3 : "Huawei Mobile Connect - Ctrl"
1-1.3:2.6 - ttyUSB4 : "Huawei Mobile Connect - SerialB"

This didn't confirm things 100% for me, but I thought I would start with 'modem' so ran this command:

echo -ne "AT^NDISDUP=1,1,\"three.co.uk\"\r\n" > /dev/ttyUSB0

Viewing the interface in Luci it caused a reaction - the interface connected and began to receive (RX) packets. However this did not seem to be an internet connection as I could not access the internet.

I then rebooted and ran the above command against ttyUSB1, then the same for 2-4. Each time the same thing happened, the interface connected, assigned an i.p., received a few packets but would not provide an internet connection.
I should mention that when connecting the modem to a Windows laptop via an adapter, this modem and sim worked 'plug and play' - so I know they definitely work.

So - I am stumped by the above. I also tried to make a script incase that made a difference, I tried copying and pasting that script example in the linked guide with nano /etc/init.d/ncm-network with 'ttyUSB0' and 'three.co.uk' but this did not work at all, the interface did not start or begin to receive packets. I also tried the same script in '/etc/hotplug.d/usb/ncm-network' but I dont know if I'm doing this right here - it didn't work in any case.

I then moved on to trying to set the bConfigurationValue to 0 followed by 3, to do this I at first navigated to what appeared to be the equivalent of the folder you suggested: '/sys/devices/platform/101c0000.ehci/usb1/1-1' but the bConfigurationValue here could only be set to 1 or 2.
However the same file in '/sys/devices/platform/101c0000.ehci/usb1/1-1/1-1.3' was currently set to '2' and could be changed.
As soon as I run the command 'echo 0 > /sys/devices/platform/101c0000.ehci/usb1/1-1/1-1.3/bConfigurationValue' all of the ttyUSB0-4 disappear, if I run dmesg:

[  449.709072] option1 ttyUSB0: GSM modem (1-port) converter now disconnected from ttyUSB0
[  449.717502] option 1-1.3:2.2: device disconnected
[  449.722899] option1 ttyUSB1: GSM modem (1-port) converter now disconnected from ttyUSB1
[  449.731351] option 1-1.3:2.3: device disconnected
[  449.736670] option1 ttyUSB2: GSM modem (1-port) converter now disconnected from ttyUSB2
[  449.745128] option 1-1.3:2.4: device disconnected
[  449.750849] option1 ttyUSB3: GSM modem (1-port) converter now disconnected from ttyUSB3
[  449.759814] option 1-1.3:2.5: device disconnected
[  449.765139] option1 ttyUSB4: GSM modem (1-port) converter now disconnected from ttyUSB4
[  449.773618] option 1-1.3:2.6: device disconnected

So I checked the cdc devices on 'ls -l /dev/cdc-wdm0'
and sure enough:

`crw-------    1 root     root      180, 176 Jun 17 15:22 /dev/cdc-wdm0'

So I decided to try the mbim settings from the OpenWRT bugs forum, I installed the packages from the QMI mode guide and then edited my '/etc/config/network' with the below settings:

config interface 'WWAN'
        option proto 'mbim'
        option ifname 'wwan0'
        option device '/dev/cdc-wdm0'
        option apn 'three.co.uk'
        option mode 'preferlte'
        option delay '5'

This showed an unmanaged protocol, and no packets sent or received.

I think that's everything I have tried, still to no avail unfortunately.

Edit:
Oh and one more thing just tried. If I set up NCM via Luci whilst the modem is still on ttyUSB - if I use ttyUSB0 or 2 it will 'connect' but with no ipv4/6 address (check edit2) and no internet connection. Although it does send and receive a few packets. It frustratingly feels so close!

edit2:
After a few minutes it actually creates a new interface called 'WWAN_4' which is a 'Virtual Dynamic Interface (DHCP Client)' - this has an ipv4 address. Still no internet connection.

I also came across this in my Googling: https://gitlab.freedesktop.org/mobile-broadband/mobile-broadband-openwrt

Not sure if it holds any answers but it came up when searching for these problems. I'm not sure how to even try it in any case as its suggested method of installation by adding a 'feed' to the 'feeds.conf' file does not seem to work.

If I'm just piling more problems on then just ignore this, I thought it might be worth mentioning however.

Did you have interface setup as DHCP client ? and put it to wan firewall group?

config interface 'wwan'
        option proto 'dhcp'
        option auto '0'
        option ifname 'wwan0'

It shouldn't matter which serial port you use to send commands. How do you see that you got an IP? If you got an IP and you can't access internet I think the problem may be something else.

This is probably normal. My modem does exactly the same. But /dev/cdc-wdm0 appear instead and you should be able to use MBIM (in theory... I did not try myself but this one person who made a bug report apparently is using it like that.. so I assume it works.)

Well it actually looks like you got things working both with dhcp client and NCM. I am not sure about whats up with MBIM. I do not use it myself right now but I could try it. By the way, if you setup NCM interface with luci using /dev/ttyUSBX (so without changing bConfigurationValue) it automatically sends the NDISDUP command. When it receives an IP it creates wwan_4. That means you are connected. It is as simple as that :slight_smile:

BTW did you setup NCM with a /dev/ttyUSBX port? or did you use /dev/cdc-wdm0 after changing bConfigurationValue?

Anyway, your problem is probably something else. The question is if you have wwan interface in wan firewall group? It looks like your problem is not related to the modem at this point. Because you are getting an IP which means you are able to communicate with the modem and with your ISP.

I am thinking either your WWAN interface is not in wan firewall group (if it is not NAT will not function, you won't be able to access internet) or you do not have NAT setup properly. I think NAT comes setup out of the box so I am guessing you forgot to put the interface to wan group in it's firewall settings?

Bingo! - It's working. Can't thank you enough. I had my head buried in all of this and missed that step in the setup!

So I think the combination to get this working was actually fairly simple, it all came down to that repeating error solved by the correct modification of usb-mode.json.

I never actually removed usb-modeswitch but it doesn't look like I need to as the ttyUSB0-4 all appear on boot and NCM now works when pointed at /dev/ttyUSB2 for an interface.

I had thought when I saw an ip that must mean I was connected so was hoping it was something simple.

So I think it was actually succeeding with using NDISDUP AT command to begin with, and then when I started using NCM I was achieving the same thing as you say.

I think I was also succeeding after changing the bCondig from 0 to 3 then using cdc-wdm0 with mbim - I just hadn't put it in the firewall zone! edit - actually not sure about this, not sure if I ever got an i.p. with mbim. Not gonna screw with it now tho!

Once again, thanks for the guiding hand here, I was kicking myself for not just buying a preconfigured router with modem but it's a real pleasure to get it working after all that!

Actually you seem to have bought great hardware. I used to have EC-25 myself and switch to ME909s-120 recently. I have all sorts of stuff like vpn, port forwarding etc. in my box so openwrt was great for me so far.

Now you can go to some of the bug reports I linked earlier and vote them for fixing. So others won't have the same problem :slight_smile:

You did not only get it working one way, you got it working 3 different ways and somebody was saying it is black magic to get it working :slight_smile:

1- You got the link up manually using AT commands (with cdc-ether)
2- You got the link working with NCM setup. (with cdc-ether)
3- You got it working with MBIM... I tested this also and it is working.

I think if you never had usb-modeswitch, you could directly setup NCM and get over with it :slight_smile:

Let us know how it works in the long run...

Well hopefully anyone else who has these issues wont have too much trouble finding this thread, as the solution seems fairly simply in the end!

When you say you could use NCM without usb-modeswitch, would one of the other modules have installed the /etc/usb-mode.json file or are you saying it isn't required at all?

Also - do I have to reguster to vote on those bugfixes? I cant see a way to do so.

It would be easy to find the thread for somebody who had a ME909s-120 but if the problem is with a different device then the required changes will be slightly different and confusing for that person.

Even maybe this thread will not appear in search results when that person searches using another brand/model name.

Furthermore, you nearly failed probably because somebody was thinking exactly the same as you. :stuck_out_tongue: Solution to this problem is somewhere online so no need to fix the issue. All you need to do is to post a message to issue report and vote it up so it gains higher priority.

You were just lucky because I bought ME909s-120 just last week and had to get it working myself. Otherwise you probably would not have solved this problem, and now be buying EC-25 or something else... and I used EC-25 myself and it was even more difficult to configure. :smiley:

Would you not liked it better if you installed openwrt and could connect to internet without coming to this forum? The issue in original modeswitch was fixed 2 years ago. The solution is known. It should simply be applied to the modeswitch application which is shipped with OpenWRT. To be honest, I am really disappointed with OpenWRT myself that every time I put a 4G/LTE modem, I need to write scripts and debug issues. (and I wrote some of the scripts in the wiki even)

Anyway, usb-modeswitch is totally unnecessary for ME909s-120. You can uninstall it and things will keep working. It may be easier for you to not have it, if you do not need it. As I told before, I am only keeping it myself because I sometimes use external USB sticks etc. and it comes handy to have it there.

It certainly would have been easier if I hadn't had to go through all this! I registered on the bug site and voted for the issue.

Thanks again!

1 Like

By the way, do you know which firmware version is your card?
You can query it using ATI command I think. You would need to use minicom or picocom to be able to read the response easily