ZTE MF281 Cannot make LTE modem work

Hi,
since some releases, openwrt supports Telekom Speedbox2, aka ZTE MF281.

With the release info of Mr. Bauer, I was able to install openwrt onto this device.
The I updated to latest RC3-version:
openwrt-23.05.0-rc3-ath79-nand-zte_mf281-squashfs-sysupgrade.bin

I configured both Wifi interfaces - working fine.

Unfortunately, I cannot get the WWAN LTE modem to work.

I installed the luci support for ncm protocol and configured it.

This is the resulting interface config in /etc/config/network:

config interface 'WWAN_LTE'
        option proto 'ncm'
        option device '/dev/ttyACM0'
        option pdptype 'IPV4V6'
        option apn 'internet.telekom'
        option username 'telekom'
        option password 'tm'
        option ipv6 'auto'

Result: Error: Network device is not present

2nd try was to install the modemmanager package.
Here the modem is detected:

root@MF281:/etc# mmcli -m 0
  -----------------------------
  General  |              path: /org/freedesktop/ModemManager1/Modem/0
           |         device id: 9be7b8ba84f3607f0b87b98b56480a2d2591f485
  -----------------------------
  Hardware |      manufacturer: ZTE CORPORATION
           |             model: MF286R
           | firmware revision: BD_TMODEMF281MODV1.0.0B07
           |         supported: gsm-umts, lte
           |           current: gsm-umts, lte
           |      equipment id: 861972050237054
  -----------------------------
  System   |            device: /sys/devices/platform/ahb/1b000000.usb/usb1/1-1
           |           drivers: cdc_acm, cdc_ether, rndis_host
           |            plugin: zte
           |      primary port: ttyACM0
           |             ports: ttyACM0 (at)
  -----------------------------
  Status   |             state: failed
           |     failed reason: sim-missing
           |       power state: on
  -----------------------------
  Modes    |         supported: allowed: 2g; preferred: none
           |                    allowed: 3g; preferred: none
           |                    allowed: 4g; preferred: none
           |                    allowed: 2g, 3g, 4g; preferred: none
           |           current: allowed: any; preferred: none
  -----------------------------
  IP       |         supported: ipv4, ipv6, ipv4v6

Why is it detected as MF286R ?

Finally, it stays in error state, since the SIM card is not detected.
Error is here : “Sim Card is not inserted” (but it is).

Does modemmanager support MF281 ?

If not - which Software setup is the way to go ?

I would appreciate any hint on how to make it work.

I can provide dmesg, lsusb, ... logs if it helps.

Best regards,
funcarver72

Please show the output of cat /sys/kernel/debug/usb/devices

Hello. Here it is:

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

T:  Bus=01 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#=  1 Spd=480  MxCh= 1
B:  Alloc=  0/800 us ( 0%), #Int=  0, #Iso=  0
D:  Ver= 2.00 Cls=09(hub  ) Sub=00 Prot=01 MxPS=64 #Cfgs=  1
P:  Vendor=1d6b ProdID=0002 Rev= 5.15
S:  Manufacturer=Linux 5.15.127 ehci_hcd
S:  Product=EHCI Host Controller
S:  SerialNumber=1b000000.usb
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= 0
D:  Ver= 2.00 Cls=ef(misc ) Sub=02 Prot=01 MxPS=64 #Cfgs=  1
P:  Vendor=19d2 ProdID=1489 Rev=ff.ff
S:  Manufacturer=ZTE
S:  Product=ZTE
S:  SerialNumber=123456789ABCD
C:* #Ifs= 8 Cfg#= 1 Atr=e0 MxPwr=  2mA
A:  FirstIf#= 0 IfCount= 2 Cls=e0(wlcon) Sub=01 Prot=03
A:  FirstIf#= 2 IfCount= 2 Cls=02(comm.) Sub=02 Prot=01
A:  FirstIf#= 6 IfCount= 2 Cls=02(comm.) Sub=06 Prot=00
I:* If#= 0 Alt= 0 #EPs= 1 Cls=e0(wlcon) Sub=01 Prot=03 Driver=rndis_host
E:  Ad=82(I) Atr=03(Int.) MxPS=   8 Ivl=1ms
I:* If#= 1 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 Driver=rndis_host
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= 1 Cls=02(comm.) Sub=02 Prot=01 Driver=cdc_acm
E:  Ad=84(I) Atr=03(Int.) MxPS=  10 Ivl=32ms
I:* If#= 3 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 Driver=cdc_acm
E:  Ad=83(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
I:* If#= 4 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=00 Prot=ff Driver=(none)
E:  Ad=85(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=03(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
I:* If#= 5 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=42 Prot=01 Driver=(none)
E:  Ad=86(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=04(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
I:* If#= 6 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=06 Prot=00 Driver=cdc_ether
E:  Ad=88(I) Atr=03(Int.) MxPS=  16 Ivl=32ms
I:  If#= 7 Alt= 0 #EPs= 0 Cls=0a(data ) Sub=00 Prot=00 Driver=cdc_ether
I:* If#= 7 Alt= 1 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 Driver=cdc_ether
E:  Ad=87(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=05(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms

T:  Bus=02 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#=  1 Spd=480  MxCh= 1
B:  Alloc=  0/800 us ( 0%), #Int=  0, #Iso=  0
D:  Ver= 2.00 Cls=09(hub  ) Sub=00 Prot=01 MxPS=64 #Cfgs=  1
P:  Vendor=1d6b ProdID=0002 Rev= 5.15
S:  Manufacturer=Linux 5.15.127 ehci_hcd
S:  Product=EHCI Host Controller
S:  SerialNumber=1b400000.usb
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
root@MF281:~# 

Regards,
funcarver72

Looks like MF286R to me.
I suggest to uninstall ModemManager and try solving the missing SIM issue.
You can access the modem using a terminal program like picocom through /dev/ttyACM0 and use a command like AT+CPIN? to see if SIM is readable.

Is this the Marvell-based card? Then it's probably similar to the one in the MF282+ and you will need some different initialization commands - this worked for me on the MF282+: Problem with modem in ZTE MF286R

So basically, it's supported by comgt and I had success with that on a MF282+.

OK.
Modemmanager uninstalled.
(This one detected the device as MF286R but could not connect to the SIM)

Then lets debug the standard path:

root@MF281:~# picocom /dev/ttyACM0
picocom v3.1

port is        : /dev/ttyACM0
flowcontrol    : none
baudrate is    : 9600
parity is      : none
databits are   : 8
stopbits are   : 1
escape is      : C-a
local echo is  : no
noinit is      : no
noreset is     : no
hangup is      : no
nolock is      : no
send_cmd is    : sz -vv
receive_cmd is : rz -vv -E
imap is        : 
omap is        : 
emap is        : crcrlf,delbs,
logfile is     : none
initstring     : none
exit_after is  : not set
exit is        : no

Type [C-a] [C-h] to see available commands
Terminal ready

+CGMI: "ZTE CORPORATION"

OK

+CGMI: "ZTE CORPORATION"

OK

It is repeatedly getting this message. Cannot stop to enter a command.

I have increased the baud-rate to 115200. No difference.

Regards,
funcarver72

Did you power cycle the device? A reboot might not reset the LTE card, so pull the plug to be sure.

If yours is really a Marvell-based MF286R modem (as in my MF282+), it should be supported by comgt. For the GUI, I think this is luci-proto-3g.

You can probably blindly enter a command to stop those messages.
Search for "URCs" in this topic.

picocom can be started with --q on the command line to suppress the help text.

Hi, yes I have turned it off and on using the power switch.
Since it is also battery powered, pulling the plug does not work.

Back to picocom.

I tried to blindly type AT+CLAC at got:

AT&C
AT&D
AT&F
AT&S
AT&Z
ATS0
AT+CGMI
AT+CGMM
AT+CGMR
AT+CGSN
AT^ZVERSIONINTEGR
AT^ZADJUST
AT^ZWMSN
AT^ZBOARD
AT^RKEYDC
AT+ZSENSORTEMP
AT+ZBATTERYLEVEL
AT+ZCHARGINGFUNC
AT+ZAUTH
AT^ZWIMEI
AT+ZRESET
AT^ZMAC
AT+SSIDWIFIKEY
AT^ZSSID
AT^ZWIFIKEY
AT^ZRFSWITCHOUT
AT^ZRFSWITCHIN
AT^ZRFSWITCHPORT
AT+ZRVOIPREGSTATUS
AT+ZRVPLINESTS
AT+ZSLEEPMOD
AT+ZRTEMP
AT+FOTACTR
AT^ZLED
AT^ZCLOSELED
AT^ZKEYPADTEST
AT^ZKEYPADTESTRST
AT+CSCS
AT+CIMI
AT+ASTO
AT+GMI
AT+GMM
AT+GMR
AT+GSN
AT+GOI
AT+GCAP
AT+GCI
AT+IPR
AT+ICF
AT+IFC
AT+IDSR
AT+EXAMPLE
AT^HVER
AT 
ATA
ATD
ATH
AT+MVSYNAUD
AT+CDU
AT+CMOD
AT+CBST
AT+CVHU
AT+CRLP
AT+CMUT
AT+ECHUPVT
AT+CTTY
AT+CREG
AT+CIND
AT+COPS
AT+CPOL
AT+COPN
AT+CLCK
AT+CPWD
AT+CLIP
AT+CLIR
AT+COLP
AT+COLR
AT+CNAP
AT+CCFC
AT+CCWA
AT+CHLD
AT+CUSD
AT+CAOC
AT+VTS
AT+VTD
AT+CSSN
AT+CLCC
AT+CEER
AT+PEER
AT+CSQ
AT*REJCAUSE
AT+CPAS
AT+CFUN
AT*CFUN
AT+CPIN
AT+ZSEC
AT+CSMS
AT+CPMS
AT+CSDH
AT+CNMA
AT+CSMP
AT+CGCI
AT+CGOI
AT+VDUMP
AT+LOG
AT+VPDUS
AT+VHDL
AT+VECHO
AT+ATDB
AT*CCIREG
AT+CPUC
AT+CHUP
AT+CSTA
AT+CRC
AT+CMEE
AT+CMER
AT+CMEC
AT+CLAC
AT+CBC
AT+CDIP
AT+CPLS
AT+CGCMOD
AT+CNUM
AT+DS
ATAT*BANDIND
AT+WS46
AT*CLCK
AT+LOCKLEVEL
AT+ZNCK
AT*MEPCG
AT*ENVSIM
AT*CNMA
AT*POWERIND
AT*APPOWERIND
AT*FASTDORM
AT+EEMOPT
AT+EEMGINFO
AT*ZAIRINFO
AT*ZCQI
AT+ERGA
AT+ERTCA
AT+LPNWUL
AT+LPLOCVR
AT+LPECID
AT+LPOTDOAABORT
AT+LPOTDOAREQ
AAT*SYSSLEEP
AT*CP_MIPS
AT*MRD_CDF
AT*MRD_SN
AT*MRD_IMEI
AT*MRD_MEP
AT*MRD_WIFIID
AT*MRD_BTID
AT*MRD_VEND
AT*MRD_BAND
AAT+LOCKNETLIST
AT+INVERSESML
AT+LOCKLIST
AT+UNLOCKKEY
AT*SYNC
AT*REBOOT
AT*POWEROFF
AT+GPSSTEST
AT*GPSTEST
AT*GPSRST
AT*TDTR
AT*GSMTR
AT*TGCTRL
AT*WBTR
AT*RFC
AT*MRD_DUMP
AT*CPMRD_DUMP
AT*MRD_AUTH
AT+FUELGAIC
AT*MRD_LIST
AT*MAXPOWER
ATAT+OFF
AT*CGSN
AT*MODEMTYPE
AT$VTS
AT*MODEMRESET
AT*SWITCHMODEM
AT*HTCCTO
AT+CMEMFULL
AT*EHSDPA
AT^DCTS
AT^DEELS
AT^DEVEI
AT^DNPR
AT^DUSR
AT+CIREG
AT+CGEQOS
AT+CEREG
AT+CGCONTRDP
AT+CGSCONTRDP
AT+CGTFTRDP
AT+CGEQOSRDP
AT+CGEREP
AT+CVMAT+CEMODE
AT+CGPADDR
AT+CGPIAF
AT^CACAP
AT+CGCLASS
AT+CESQ
AT*CESQ
AT+BGLTEPLMN
AT*FDY
AT^SYSINFO
AT*DIALE
AT*CPBC
AAT*RSTMEMFULL
AT*CSCB
AT*CBMCS
AT*NASCHK
AT*USBT
AT*MOBILEDATA
AT*GATR
AT*CGATT
AT+CLAN
AT*CELLINFO
AT+CCUG
AT+CPNER
AT*CATPROF
AT*CATEN
AT*RCATR
AT*CATTR
AT*CATENV
AT*RCATE
AT*AUDIOMODE
AT*AUDIODEAT*AUDIOVOL
AT*AUDIOMUTE
AT*ECALLDATA
AT*ECALLVOICE
AT*ECALLCFG
AT*ECALLONLY
AT*ECALLREG
AT*SIMPLUG
AT*CGDCONTL
AT*SPIND
AT*ECCLIST
AT*IMSSRV
AT+CPLMNS
AT+CACL
AT*DCONF
AT*CGCLASS
AT*CIWLANCID
AT*BTSCNCT
AT*BTSDISSCNCT
AT*BTSTAPDU
AT*BTAT*BTSCTRL
AT*BTSCRSTAT
AT*BTSTP
AT+OPERCFG
AT*ICCID
AT*PARK
AT*CHECKEMER
AT+CECALL
AT*RPM
AT*TEMPTEST
AT*ZFACTORY
AT+ZDON
AT+ZSNT
AT+ZCAINFO
AT+ZRSSI
AT+ZNLOCKBAND
AT+ZPAS
AT+ZCELLINFO
AT+ACONFIG
AT+IMSFUNC
AT+ZVN
AT+ZSTM
AT+ZSELM
AAT+ZBK
AT+ZINKR
AT+ZINPR
AT+ZDISTR
AT+ZNITZ
AT+ZSYNCNITZ
AT+ZDOGREF
AT+ZATNUM
AT+STRESS
AT+SULOG
AT+MEDCR
AT+MIPLVER
AT+MIPLCREATE
AT+MIPLDELETE
AT+MIPLADDOBJ
AT+MIPLDELOBJ
AT+MIPLOPEN
AT+MIPLUPDATE
AT+MIPLCLOSE
AT+MIPLDISCOVERRSP
AT+MIAT+MIPLWRITERSP
AT+MIPLEXECUTERSP
AT+MIPLPARAMETERRSP
AT+MIPLOBSERVERSP
AT+MIPLNOTIFY
AT+ZDHCPLEASE
AT+GEFLAG
AT+ZCFG
AT+ZROAM
AT+ZVMAIL
AT+ZGDFLT
AT*ZCGMR
AT+SIMLOCKFUSE
AT+LOCKLISTAUTH
AT+ZPOWERMODE

and "OK". as reply.
So, communication is somehow working.

Hello,

I have read that ZTE LTE modems sometimes announce themselves as Marvell.

This is the case here. I have found out using AT commands in picocom
with local echon on:

ati

Marvell

OK
at+cgmr

BD_TMODEMF281MODV1.0.0B07

OK

Could it be the case that some detection scripts fail as of this
vendor mismatch ?
Where could these scripts be located ?

Best regards,
funcarver72

Is your SIM readable now?

I repeat my message a third time, now that you've verified it's Marvell-based: It is probably supported by comgt, just install luci-proto-3g, remove any traces of your previous attempts, like ModemManager, and you should be good to go!

Hi, upon your 1st advice, I have deleted modemmanager did a power-cycle.
Then installed the luci-proto-3g.

I have added a new Interface named "LTE" with interface protocol
Protocol: UMTS/GPRS/EV-DO

Result after restart: Error PinCode Rejected.

But, SIM is inserted and given PinCode is correct (I cannot remove Pincode here).

Now try with picocom:

AT+cpin?

+CME ERROR: SIM not inserted

So, I think, there is still no communication to the SIM.

BR.

Correct protocol is ncm, but you need to solve the SIM issue first.

luci-proto-ncm installation will initiate the installation of comgt-ncm

/etc/gcom/ncm.json has the commands required for your modem.

luci-proto-ncm has been installed since the beginning.
Changing the protocol in luci / interface to
ncm, I get the following error:

Protocol: NCM
RX: 0 B (0 Pkts.)
TX: 0 B (0 Pkts.)
Error: Failed to get modem information

I had a look to the ncm.json file.
There the vendor is named "marvell" instead of "Marvell" in my case.
Is this case sensitive ?

BR

So I checked on my MF282Plus, my card identifies as:

T:  Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#=  2 Spd=480  MxCh= 0
D:  Ver= 2.00 Cls=ef(misc ) Sub=02 Prot=01 MxPS=64 #Cfgs=  1
P:  Vendor=19d2 ProdID=1489 Rev=ff.ff
S:  Manufacturer=ZTE
S:  Product=ZTE
S:  SerialNumber=123456789ABCD
C:* #Ifs= 6 Cfg#= 1 Atr=e0 MxPwr=  2mA
A:  FirstIf#= 0 IfCount= 2 Cls=e0(wlcon) Sub=01 Prot=03
A:  FirstIf#= 2 IfCount= 2 Cls=02(comm.) Sub=02 Prot=01
I:* If#= 0 Alt= 0 #EPs= 1 Cls=e0(wlcon) Sub=01 Prot=03 Driver=rndis_host
E:  Ad=82(I) Atr=03(Int.) MxPS=   8 Ivl=1ms
I:* If#= 1 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 Driver=rndis_host
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= 1 Cls=02(comm.) Sub=02 Prot=01 Driver=cdc_acm
E:  Ad=84(I) Atr=03(Int.) MxPS=  10 Ivl=32ms
I:* If#= 3 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 Driver=cdc_acm
E:  Ad=83(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
I:* If#= 4 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=00 Prot=ff Driver=(none)
E:  Ad=85(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=03(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
I:* If#= 5 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=42 Prot=01 Driver=(none)
E:  Ad=86(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=04(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms

And of course, @AndrewZ is right, it's luci-proto-ncm, not luci-proto-3g. This is the configuration in /etc/config/network:

config interface 'wwan'
        option proto 'ncm'
        option device '/dev/ttyACM0'
        option pdptype 'IP'
        option apn 'drei.at'
        option ipv6 'auto'

And this is how it looks in the log:

Wed Oct  4 23:10:20 2023 daemon.notice netifd: Interface 'wwan' is setting up now
Wed Oct  4 23:10:21 2023 daemon.info dnsmasq[1]: read /etc/hosts - 12 names
Wed Oct  4 23:10:21 2023 daemon.info dnsmasq[1]: read /tmp/hosts/dhcp.cfg01411c - 4 names
Wed Oct  4 23:10:21 2023 daemon.info dnsmasq[1]: read /tmp/hosts/odhcpd - 2 names
Wed Oct  4 23:10:21 2023 daemon.info dnsmasq-dhcp[1]: read /etc/ethers - 0 addresses
Wed Oct  4 23:10:22 2023 daemon.warn odhcpd[1357]: No default route present, overriding ra_lifetime!
Wed Oct  4 23:10:22 2023 daemon.notice netifd: wwan (4011): sending -> AT+CFUN=1
Wed Oct  4 23:10:23 2023 daemon.notice netifd: wwan (4011): Configuring modem
Wed Oct  4 23:10:23 2023 daemon.notice netifd: wwan (4011): sending -> AT+ZGDCONT=1,"IP","drei.at","",0,0
Wed Oct  4 23:10:24 2023 daemon.notice netifd: wwan (4011): sending -> AT+ZGPCOAUTH=1,"","",0
Wed Oct  4 23:10:25 2023 daemon.notice netifd: wwan (4011): Starting network wwan
Wed Oct  4 23:10:25 2023 daemon.notice netifd: wwan (4011): Connecting modem
Wed Oct  4 23:10:25 2023 daemon.notice netifd: wwan (4011): sending -> AT+ZGACT=1,1
Wed Oct  4 23:10:26 2023 daemon.notice netifd: wwan (4011): Setting up usb0
Wed Oct  4 23:10:26 2023 daemon.notice netifd: Interface 'wwan' is now up
Wed Oct  4 23:10:26 2023 daemon.notice netifd: Network device 'usb0' link is up
Wed Oct  4 23:10:26 2023 daemon.notice netifd: Network alias 'usb0' link is up
Wed Oct  4 23:10:26 2023 daemon.notice netifd: Interface 'wwan_4' is enabled
Wed Oct  4 23:10:26 2023 daemon.notice netifd: Interface 'wwan_4' has link connectivity
Wed Oct  4 23:10:26 2023 daemon.notice netifd: Interface 'wwan_4' is setting up now
Wed Oct  4 23:10:26 2023 daemon.notice netifd: wwan_4 (4308): udhcpc: started, v1.36.1
Wed Oct  4 23:10:26 2023 daemon.notice netifd: wwan_4 (4308): udhcpc: broadcasting discover
Wed Oct  4 23:10:27 2023 daemon.warn odhcpd[1357]: No default route present, overriding ra_lifetime!
Wed Oct  4 23:10:29 2023 daemon.notice netifd: wwan_4 (4308): udhcpc: broadcasting discover
Wed Oct  4 23:10:32 2023 daemon.notice netifd: wwan_4 (4308): udhcpc: broadcasting discover
Wed Oct  4 23:10:32 2023 daemon.notice netifd: wwan_4 (4308): udhcpc: broadcasting select for 10.7.64.245, server 10.7.64.10
Wed Oct  4 23:10:33 2023 daemon.notice netifd: wwan_4 (4308): udhcpc: lease of 10.7.64.245 obtained from 10.7.64.10, lease time 7200
Wed Oct  4 23:10:33 2023 daemon.notice netifd: Interface 'wwan_4' is now up
Wed Oct  4 23:10:33 2023 daemon.info dnsmasq[1]: reading /tmp/resolv.conf.d/resolv.conf.auto
Wed Oct  4 23:10:33 2023 daemon.info dnsmasq[1]: using nameserver 213.94.78.17#53
Wed Oct  4 23:10:33 2023 daemon.info dnsmasq[1]: using nameserver 213.94.78.16#53
Wed Oct  4 23:10:33 2023 daemon.info dnsmasq[1]: using only locally-known addresses for test
Wed Oct  4 23:10:33 2023 daemon.info dnsmasq[1]: using only locally-known addresses for onion
Wed Oct  4 23:10:33 2023 daemon.info dnsmasq[1]: using only locally-known addresses for localhost
Wed Oct  4 23:10:33 2023 daemon.info dnsmasq[1]: using only locally-known addresses for local
Wed Oct  4 23:10:33 2023 daemon.info dnsmasq[1]: using only locally-known addresses for invalid
Wed Oct  4 23:10:33 2023 daemon.info dnsmasq[1]: using only locally-known addresses for bind
Wed Oct  4 23:10:33 2023 daemon.info dnsmasq[1]: using only locally-known addresses for lan

My SIM doesn't have a PIN set. Why is at least temporarily disabling the PIN not an option?

manufacturer is obtained from +CGMI response and converted to lowercase in ncm.sh
You should look for zte, not marvell.

Hi. I have continued investigation and made the setup as advised.
Log-file says:

Sat Oct  7 10:40:34 2023 daemon.notice netifd: LTE (8088): sending -> AT+CFUN=1
Sat Oct  7 10:40:35 2023 daemon.notice netifd: LTE (8088): Configuring modem
Sat Oct  7 10:40:35 2023 daemon.notice netifd: LTE (8088): sending -> AT+ZGDCONT=1,"IP","internet.telekom","",0,0
Sat Oct  7 10:40:40 2023 daemon.notice netifd: LTE (8088): Error running AT-command
Sat Oct  7 10:40:40 2023 daemon.notice netifd: LTE (8088): Failed to configure modem
Sat Oct  7 10:40:40 2023 daemon.notice netifd: LTE (8230): Stopping network LTE
Sat Oct  7 10:40:43 2023 daemon.notice netifd: LTE (8230): sending -> AT+ZGACT=0,1
Sat Oct  7 10:40:45 2023 daemon.notice netifd: Interface 'LTE' is now down
Sat Oct  7 10:40:45 2023 daemon.notice netifd: Interface 'LTE' is setting up now
Sat Oct  7 10:40:46 2023 daemon.warn odhcpd[2743]: No default route present, overriding ra_lifetime!
Sat Oct  7 10:40:47 2023 daemon.notice netifd: LTE (8242): Failed to get modem information
Sat Oct  7 10:40:47 2023 daemon.notice netifd: LTE (8380): Stopping network LTE
Sat Oct  7 10:40:49 2023 daemon.notice netifd: LTE (8380): Failed to get modem information
Sat Oct  7 10:40:49 2023 daemon.notice netifd: Interface 'LTE' is now down
Sat Oct  7 10:40:49 2023 daemon.notice netifd: Interface 'LTE' is setting up now
Sat Oct  7 10:40:50 2023 daemon.warn odhcpd[2743]: No default route present, overriding ra_lifetime!
Sat Oct  7 10:40:52 2023 daemon.notice netifd: LTE (8392): sending -> AT+CFUN=1
Sat Oct  7 10:40:52 2023 daemon.notice netifd: LTE (8392): Configuring modem
Sat Oct  7 10:40:52 2023 daemon.notice netifd: LTE (8392): sending -> AT+ZGDCONT=1,"IP","internet.telekom","",0,0
Sat Oct  7 10:40:57 2023 daemon.notice netifd: LTE (8392): Error running AT-command
Sat Oct  7 10:40:57 2023 daemon.notice netifd: LTE (8392): Failed to configure modem
Sat Oct  7 10:40:57 2023 daemon.notice netifd: LTE (8534): Stopping network LTE
Sat Oct  7 10:41:00 2023 daemon.notice netifd: LTE (8534): sending -> AT+ZGACT=0,1
Sat Oct  7 10:41:02 2023 daemon.notice netifd: Interface 'LTE' is now down
Sat Oct  7 10:41:02 2023 daemon.notice netifd: Interface 'LTE' is setting up now
Sat Oct  7 10:41:03 2023 daemon.warn odhcpd[2743]: No default route present, overriding ra_lifetime!

One AT instruction does not work and results in an error.
AT+ZGDCONT=1,"IP","internet.telekom","",0,0

I have been using a German Telekom SIM with no Pin Checking.

This AT-Command is not the set of commands which AT+CLAC has returned.
Do I need to patch the ncm.json and use different command ?

I tried out this instruction with picocom:

OK
AT+ZGDCONT=1,"IP","internet.telekom","",0,0

+CME ERROR: Invalid Param

BR

Well spotted!
Check if these standard commands are supported:

AT+CGDCONT=?;+CGDCONT?
AT+CGACT=?;+CGACT?

Commands accepted:

OK
AT+CGDCONT?

OK
AT+CGDCONT=?

+CGDCONT: (0-15),"IP",,,(0-3),(0-4),(0,1),(0,1),(0-2),(0,1)

+CGDCONT: (0-15),"IPV6",,,(0-3),(0-4),(0,1),(0,1),(0-2),(0,1)

+CGDCONT: (0-15),"IPV4V6",,,(0-3),(0-4),(0,1),(0,1),(0-2),(0,1)

+CGDCONT: (0-15),"PPP",,,(0-3),(0-4),(0,1),(0,1),(0-2),(0,1)

OK

AT+CGACT?
OK

AT+CGACT=?

+CGACT: (0,1)

OK