Quectel EM05-G keeps disconnecting on debian 12

My EM05-G modem, on a fresh installed of debian 12, keeps disconnecting randomly.

Once “sudo systemctl restart ModemManager.service”, the modem continues working again for a minute or two before failing again. The restart can be repeated many times.

“sudo systemctl status ModemManager.service” shows the following messages when the modem gets disconnected:

Feb 29 10:01:20 xxx ModemManager[947]: [modem0/bearer0] reloading stats failed: Failure
Feb 29 10:01:50 xxx ModemManager[947]: [modem0/bearer0] reloading stats failed: Failure
Feb 29 10:02:20 xxx ModemManager[947]: [modem0/bearer0] reloading stats failed: Failure
Feb 29 10:02:50 xxx ModemManager[947]: [modem0/bearer0] reloading stats failed: Failure
Feb 29 10:03:20 xxx ModemManager[947]: [modem0/bearer0] reloading stats failed: Failure
Feb 29 10:03:50 xxx ModemManager[947]: [modem0/bearer0] reloading stats failed: Failure

Please suggest how to troubleshoot or to overcome the issue.

*** Info

  • Machine: Lenovo ThinkPad L14 Gen4

  • OS: Debian 12.5

  • FCC unlock: Install lenovo-wwan-dpr on Linux | Snap Store
    sudo snap install lenovo-wwan-dpr

  • $ mmcli -m 0
    General | path: /org/freedesktop/ModemManager1/Modem/0
    | device id: de7d1975a882e7b188988d2228b14bb3ec5834a8

    Hardware | manufacturer: Quectel
    | model: Quectel EM05-G
    | firmware revision: EM05GFAR07A07M1G
    | h/w revision: QUECTEL Mobile Broadband Modul
    | supported: gsm-umts, lte
    | current: gsm-umts, lte
    | equipment id: 016176008923377

    System | device: /sys/devices/pci0000:00/0000:00:08.1/0000:07:00.4/usb3/3-4
    | drivers: option, cdc_mbim
    | plugin: quectel
    | primary port: cdc-wdm0
    | ports: cdc-wdm0 (mbim), ttyUSB0 (at), wwan0 (net)

    Status | lock: sim-pin2
    | unlock retries: sim-pin2 (3)
    | state: connected
    | power state: on
    | access tech: lte
    | signal quality: 58% (cached)

    Modes | supported: allowed: 3g, 4g; preferred: none
    | current: allowed: 3g, 4g; preferred: none

    IP | supported: ipv4, ipv6, ipv4v6

    3GPP | imei: 016176008923377
    | enabled locks: fixed-dialing
    | operator id: 52003
    | operator name: XXX
    | registration: home
    | packet service state: attached

    3GPP EPS | ue mode of operation: csps-2

    SIM | primary sim path: /org/freedesktop/ModemManager1/SIM/0
    | sim slot paths: slot 1: /org/freedesktop/ModemManager1/SIM/0 (active)
    | slot 2: /org/freedesktop/ModemManager1/SIM/1

    Bearer | paths: /org/freedesktop/ModemManager1/Bearer/0

  • $ dmesg

    [ 7.768837] usb 3-3.2: Found UVC 1.50 device Integrated RGB Camera (30c9:0050)
    [ 7.773297] usbcore: registered new interface driver cdc_wdm
    [ 7.773888] MCE: In-kernel MCE decoding enabled.
    [ 7.778389] intel_rapl_common: Found RAPL domain package
    [ 7.778392] intel_rapl_common: Found RAPL domain core
    [ 7.803441] cdc_mbim 3-4:1.0: cdc-wdm0: USB WDM device
    [ 7.803610] cdc_mbim 3-4:1.0 wwan0: register ‘cdc_mbim’ at usb-0000:07:00.4-4, CDC MBIM, 1a:95:00:45:30:fb
    [ 7.803660] usbcore: registered new interface driver cdc_mbim
    [ 7.806362] input: Integrated RGB Camera: Integrat as /devices/pci0000:00/0000:00:08.1/0000:07:00.4/usb3/3-3/3-3.2/3-3.2:1.0/input/input12
    [ 7.856825] ACPI: button: Power Button [PWRB]
    [ 7.856915] input: HD-Audio Generic HDMI/DP,pcm=7 as /devices/pci0000:00/0000:00:08.1/0000:07:00.1/sound/card0/input9
    [ 7.857013] input: Lid Switch as /devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0D:00/input/input15

  • $ lsusb -v

Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 3.10
bDeviceClass 9 Hub
bDeviceSubClass 0
bDeviceProtocol 3
bMaxPacketSize0 9
idVendor 0x1d6b Linux Foundation
idProduct 0x0003 3.0 root hub
bcdDevice 6.01
iManufacturer 3 Linux 6.1.0-18-amd64 xhci-hcd
iProduct 2 xHCI Host Controller
iSerial 1 0000:07:00.4
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 0x001f
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xe0
Self Powered
Remote Wakeup
MaxPower 0mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 9 Hub
bInterfaceSubClass 0
bInterfaceProtocol 0 Full speed (or root) hub
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0004 1x 4 bytes
bInterval 12
bMaxBurst 0

Bus 003 Device 003: ID 2c7c:030a Quectel Wireless Solutions Co., Ltd. Quectel EM05-G
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 239 Miscellaneous Device
bDeviceSubClass 2
bDeviceProtocol 1 Interface Association
bMaxPacketSize0 64
idVendor 0x2c7c Quectel Wireless Solutions Co., Ltd.
idProduct 0x030a
bcdDevice 2.00
iManufacturer 1 Quectel
iProduct 2 Quectel EM05-G
iSerial 0
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 0x0090
bNumInterfaces 3
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xa0
(Bus Powered)
Remote Wakeup
MaxPower 500mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 2
bAlternateSetting 0
bNumEndpoints 3
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 0
bInterfaceProtocol 0
iInterface 0
** UNRECOGNIZED: 05 24 00 10 01
** UNRECOGNIZED: 05 24 01 00 00
** UNRECOGNIZED: 04 24 02 02
** UNRECOGNIZED: 05 24 06 00 00
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x82 EP 2 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x000a 1x 10 bytes
bInterval 9
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x01 EP 1 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Interface Association:
bLength 8
bDescriptorType 11
bFirstInterface 0
bInterfaceCount 2
bFunctionClass 2 Communications
bFunctionSubClass 14
bFunctionProtocol 0
iFunction 0
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 2 Communications
bInterfaceSubClass 14
bInterfaceProtocol 0
iInterface 6
CDC Header:
bcdCDC 1.10
CDC Union:
bMasterInterface 0
bSlaveInterface 1
CDC MBIM:
bcdMBIMVersion 1.00
wMaxControlMessage 4096
bNumberFilters 32
bMaxFilterSize 128
wMaxSegmentSize 2048
bmNetworkCapabilities 0x20
8-byte ntb input size
CDC MBIM Extended:
bcdMBIMExtendedVersion 1.00
bMaxOutstandingCommandMessages 64
wMTU 1500
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x84 EP 4 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 9
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 0
bNumEndpoints 0
bInterfaceClass 10 CDC Data
bInterfaceSubClass 0
bInterfaceProtocol 2
iInterface 7
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 1
bNumEndpoints 2
bInterfaceClass 10 CDC Data
bInterfaceSubClass 0
bInterfaceProtocol 2
iInterface 7
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x83 EP 3 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x02 EP 2 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0

  • $ sudo journalctl | grep -i modem
    Feb 29 09:37:47 xxx ModemManager[947]: [modem0] simple connect started…
    Feb 29 09:37:47 xxx ModemManager[947]: [modem0] simple connect state (3/10): enable
    Feb 29 09:37:47 xxx ModemManager[947]: [modem0] state changed (disabled → enabling)
    Feb 29 09:37:47 xxx ModemManager[947]: [modem0] simple connect started…
    Feb 29 09:37:47 xxx ModemManager[947]: [modem0] simple connect state (4/10): wait to get fully enabled
    Feb 29 09:37:47 xxx ModemManager[947]: [modem0] Failure
    Feb 29 09:37:47 xxx ModemManager[947]: [modem0] Failure
    Feb 29 09:37:47 xxx ModemManager[947]: [modem0] couldn’t enable interface: ‘Invalid transition’
    Feb 29 09:37:47 xxx ModemManager[947]: [modem0] state changed (enabling → disabled)
    Feb 29 09:37:47 xxx ModemManager[947]: [modem0] simple connect started…
    Feb 29 09:37:47 xxx ModemManager[947]: [modem0] simple connect state (3/10): enable
    Feb 29 09:37:47 xxx ModemManager[947]: [modem0] state changed (disabled → enabling)
    Feb 29 09:37:47 xxx ModemManager[947]: [modem0] simple connect started…
    Feb 29 09:37:47 xxx ModemManager[947]: [modem0] simple connect state (4/10): wait to get fully enabled
    Feb 29 09:37:47 xxx ModemManager[947]: [modem0] Failure
    Feb 29 09:37:47 xxx ModemManager[947]: [modem0] Failure
    Feb 29 09:37:47 xxx ModemManager[947]: [modem0] couldn’t enable interface: ‘Invalid transition’
    Feb 29 09:37:47 xxx ModemManager[947]: [modem0] state changed (enabling → disabled)
    Feb 29 09:37:47 xxx ModemManager[947]: [modem0] simple connect started…
    Feb 29 09:37:47 xxx ModemManager[947]: [modem0] simple connect state (3/10): enable
    Feb 29 09:37:47 xxx ModemManager[947]: [modem0] state changed (disabled → enabling)
    Feb 29 09:37:47 xxx ModemManager[947]: [modem0] simple connect started…
    Feb 29 09:37:47 xxx ModemManager[947]: [modem0] simple connect state (4/10): wait to get fully enabled
    Feb 29 09:37:47 xxx ModemManager[947]: [modem0] power state updated: on
    Feb 29 09:37:48 xxx ModemManager[947]: [modem0] state changed (enabling → enabled)
    Feb 29 09:37:48 xxx ModemManager[947]: [modem0] simple connect state (5/10): wait after enabled
    Feb 29 09:37:48 xxx ModemManager[947]: [modem0] 3GPP registration state changed (unknown → idle)
    Feb 29 09:37:48 xxx ModemManager[947]: [modem0] couldn’t load operator code: Current operator MCC/MNC is still unknown
    Feb 29 09:37:48 xxx ModemManager[947]: [modem0] couldn’t load operator name: Current operator name is still unknown
    Feb 29 09:37:48 xxx ModemManager[947]: [modem0] simple connect state (6/10): register
    Feb 29 09:37:49 xxx ModemManager[947]: [modem0] 3GPP registration state changed (idle → registering)
    Feb 29 09:37:49 xxx ModemManager[947]: [modem0] 3GPP registration state changed (registering → home)
    Feb 29 09:37:49 xxx ModemManager[947]: [modem0] state changed (enabled → registered)
    Feb 29 09:37:49 xxx ModemManager[947]: [modem0] simple connect state (7/10): wait to get packet service state attached
    Feb 29 09:37:49 xxx ModemManager[947]: [modem0] simple connect state (8/10): bearer
    Feb 29 09:37:49 xxx ModemManager[947]: [modem0] simple connect state (9/10): connect
    Feb 29 09:37:49 xxx ModemManager[947]: [modem0] state changed (registered → connecting)
    Feb 29 09:37:50 xxx ModemManager[947]: [modem0/bearer0] reloading stats is supported by the device
    Feb 29 09:37:50 xxx ModemManager[947]: [modem0] state changed (connecting → connected)
    Feb 29 09:37:50 xxx ModemManager[947]: [modem0] simple connect state (10/10): all done
    Feb 29 09:37:50 xxx NetworkManager[936]: [1709174270.2717] modem-broadband[cdc-wdm0]: IPv4 static configuration:
    Feb 29 09:37:50 xxx NetworkManager[936]: [1709174270.2717] modem-broadband[cdc-wdm0]: address 10.160.22.242/30 brd* 10.160.22.243 lft forever pref forever lifetime 14-0[0,0] src wwan
    Feb 29 09:37:50 xxx NetworkManager[936]: [1709174270.2717] modem-broadband[cdc-wdm0]: gateway 10.160.22.241
    Feb 29 09:37:50 xxx NetworkManager[936]: [1709174270.2717] modem-broadband[cdc-wdm0]: DNS 115.178.58.10
    Feb 29 09:37:50 xxx NetworkManager[936]: [1709174270.2717] modem-broadband[cdc-wdm0]: DNS 115.178.58.26
    Feb 29 09:37:50 xxx NetworkManager[936]: [1709174270.2717] modem-broadband[cdc-wdm0]: MTU 1500
    Feb 29 09:37:50 xxx NetworkManager[936]: [1709174270.2718] modem-broadband[cdc-wdm0]: IPv6 base configuration:
    Feb 29 09:37:50 xxx NetworkManager[936]: [1709174270.2718] modem-broadband[cdc-wdm0]: address 2001:44c8:42c3:6e82:642b:14bc:8304:7334/64 lft forever pref forever lifetime 14-0[0,0] src unknown (slaac disabled)
    Feb 29 09:37:50 xxx NetworkManager[936]: [1709174270.2718] modem-broadband[cdc-wdm0]: gateway 2001:44c8:42c3:6e82:2513:7ff4:d14e:9b6c
    Feb 29 09:37:50 xxx NetworkManager[936]: [1709174270.2718] modem-broadband[cdc-wdm0]: DNS 2405:9800:a:1::10
    Feb 29 09:37:50 xxx NetworkManager[936]: [1709174270.2718] modem-broadband[cdc-wdm0]: DNS 2405:9800:a:2::26
    Feb 29 09:37:57 xxx ModemManager[947]: [modem0] couldn’t load network timezone from the current network
    Feb 29 09:38:20 xxx ModemManager[947]: [modem0/bearer0] reloading stats failed: Failure
    Feb 29 09:38:50 xxx ModemManager[947]: [modem0/bearer0] reloading stats failed: Failure
    Feb 29 09:38:52 xxx sudo[3364]: papa : TTY=pts/0 ; PWD=/home/papa ; USER=root ; COMMAND=/usr/bin/systemctl status ModemManager.service
    Feb 29 09:39:20 xxx ModemManager[947]: [modem0/bearer0] reloading stats failed: Failure
    Feb 29 09:39:50 xxx ModemManager[947]: [modem0/bearer0] reloading stats failed: Failure
    Feb 29 09:40:20 xxx ModemManager[947]: [modem0/bearer0] reloading stats failed: Failure

Please provide

cat /sys/kernel/debug/usb/devices

lsusb -t

$ lsusb -t
/: Bus 04.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 10000M
/: Bus 03.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 480M
|__ Port 3: Dev 2, If 0, Class=Hub, Driver=hub/2p, 480M
|__ Port 2: Dev 4, If 4, Class=Application Specific Interface, Driver=, 480M
|__ Port 2: Dev 4, If 2, Class=Video, Driver=uvcvideo, 480M
|__ Port 2: Dev 4, If 0, Class=Video, Driver=uvcvideo, 480M
|__ Port 2: Dev 4, If 3, Class=Video, Driver=uvcvideo, 480M
|__ Port 2: Dev 4, If 1, Class=Video, Driver=uvcvideo, 480M
|__ Port 4: Dev 3, If 0, Class=Communications, Driver=cdc_mbim, 480M
|__ Port 4: Dev 3, If 1, Class=CDC Data, Driver=cdc_mbim, 480M
|__ Port 4: Dev 3, If 2, Class=Vendor Specific Class, Driver=option, 480M
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 10000M
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 480M
|__ Port 3: Dev 2, If 0, Class=Wireless, Driver=btusb, 480M
|__ Port 3: Dev 2, If 1, Class=Wireless, Driver=btusb, 480M
|__ Port 3: Dev 2, If 2, Class=Wireless, Driver=, 480M

$ sudo cat /sys/kernel/debug/usb/devices

T: Bus=01 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=480 MxCh= 4
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= 6.01
S: Manufacturer=Linux 6.1.0-18-amd64 xhci-hcd
S: Product=xHCI Host Controller
S: SerialNumber=0000:07:00.3
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=02 Cnt=01 Dev#= 2 Spd=480 MxCh= 0
D: Ver= 2.10 Cls=ef(misc ) Sub=02 Prot=01 MxPS=64 #Cfgs= 1
P: Vendor=0489 ProdID=e0d8 Rev= 1.00
S: Manufacturer=MediaTek Inc.
S: Product=Wireless_Device
S: SerialNumber=000000000
C:* #Ifs= 3 Cfg#= 1 Atr=e0 MxPwr=100mA
A: FirstIf#= 0 IfCount= 3 Cls=e0(wlcon) Sub=01 Prot=01
I:* If#= 0 Alt= 0 #EPs= 3 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
E: Ad=81(I) Atr=03(Int.) MxPS= 16 Ivl=125us
E: Ad=82(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E: Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
I:* If#= 1 Alt= 0 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
E: Ad=83(I) Atr=01(Isoc) MxPS= 0 Ivl=1ms
E: Ad=03(O) Atr=01(Isoc) MxPS= 0 Ivl=1ms
I: If#= 1 Alt= 1 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
E: Ad=83(I) Atr=01(Isoc) MxPS= 9 Ivl=1ms
E: Ad=03(O) Atr=01(Isoc) MxPS= 9 Ivl=1ms
I: If#= 1 Alt= 2 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
E: Ad=83(I) Atr=01(Isoc) MxPS= 17 Ivl=1ms
E: Ad=03(O) Atr=01(Isoc) MxPS= 17 Ivl=1ms
I: If#= 1 Alt= 3 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
E: Ad=83(I) Atr=01(Isoc) MxPS= 25 Ivl=1ms
E: Ad=03(O) Atr=01(Isoc) MxPS= 25 Ivl=1ms
I: If#= 1 Alt= 4 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
E: Ad=83(I) Atr=01(Isoc) MxPS= 33 Ivl=1ms
E: Ad=03(O) Atr=01(Isoc) MxPS= 33 Ivl=1ms
I: If#= 1 Alt= 5 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
E: Ad=83(I) Atr=01(Isoc) MxPS= 49 Ivl=1ms
E: Ad=03(O) Atr=01(Isoc) MxPS= 49 Ivl=1ms
I: If#= 1 Alt= 6 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
E: Ad=83(I) Atr=01(Isoc) MxPS= 63 Ivl=1ms
E: Ad=03(O) Atr=01(Isoc) MxPS= 63 Ivl=1ms
I:* If#= 2 Alt= 0 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=(none)
E: Ad=8a(I) Atr=03(Int.) MxPS= 64 Ivl=125us
E: Ad=0a(O) Atr=03(Int.) MxPS= 64 Ivl=125us
I: If#= 2 Alt= 1 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=(none)
E: Ad=8a(I) Atr=03(Int.) MxPS= 512 Ivl=125us
E: Ad=0a(O) Atr=03(Int.) MxPS= 512 Ivl=125us

T: Bus=02 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=10000 MxCh= 2
B: Alloc= 0/800 us ( 0%), #Int= 0, #Iso= 0
D: Ver= 3.10 Cls=09(hub ) Sub=00 Prot=03 MxPS= 9 #Cfgs= 1
P: Vendor=1d6b ProdID=0003 Rev= 6.01
S: Manufacturer=Linux 6.1.0-18-amd64 xhci-hcd
S: Product=xHCI Host Controller
S: SerialNumber=0000:07:00.3
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=03 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=480 MxCh= 4
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= 6.01
S: Manufacturer=Linux 6.1.0-18-amd64 xhci-hcd
S: Product=xHCI Host Controller
S: SerialNumber=0000:07:00.4
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=03 Lev=01 Prnt=01 Port=02 Cnt=01 Dev#= 2 Spd=480 MxCh= 2
D: Ver= 2.00 Cls=09(hub ) Sub=00 Prot=02 MxPS=64 #Cfgs= 1
P: Vendor=05e3 ProdID=0610 Rev=61.60
S: Product=USB2.0 Hub
C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=100mA
I: If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=01 Driver=hub
E: Ad=81(I) Atr=03(Int.) MxPS= 1 Ivl=256ms
I:* If#= 0 Alt= 1 #EPs= 1 Cls=09(hub ) Sub=00 Prot=02 Driver=hub
E: Ad=81(I) Atr=03(Int.) MxPS= 1 Ivl=256ms

T: Bus=03 Lev=02 Prnt=02 Port=01 Cnt=01 Dev#= 4 Spd=480 MxCh= 0
D: Ver= 2.01 Cls=ef(misc ) Sub=02 Prot=01 MxPS=64 #Cfgs= 1
P: Vendor=30c9 ProdID=0050 Rev=11.09
S: Manufacturer=8SSC21D67422V1SR3BV530Y
S: Product=Integrated RGB Camera
S: SerialNumber=01.00.00
C:* #Ifs= 5 Cfg#= 1 Atr=80 MxPwr=500mA
A: FirstIf#= 0 IfCount= 2 Cls=0e(video) Sub=03 Prot=00
A: FirstIf#= 2 IfCount= 2 Cls=0e(video) Sub=03 Prot=00
I:* If#= 0 Alt= 0 #EPs= 1 Cls=0e(video) Sub=01 Prot=01 Driver=uvcvideo
E: Ad=87(I) Atr=03(Int.) MxPS= 16 Ivl=16ms
I:* If#= 1 Alt= 0 #EPs= 0 Cls=0e(video) Sub=02 Prot=01 Driver=uvcvideo
I: If#= 1 Alt= 1 #EPs= 1 Cls=0e(video) Sub=02 Prot=01 Driver=uvcvideo
E: Ad=81(I) Atr=05(Isoc) MxPS= 192 Ivl=125us
I: If#= 1 Alt= 2 #EPs= 1 Cls=0e(video) Sub=02 Prot=01 Driver=uvcvideo
E: Ad=81(I) Atr=05(Isoc) MxPS= 384 Ivl=125us
I: If#= 1 Alt= 3 #EPs= 1 Cls=0e(video) Sub=02 Prot=01 Driver=uvcvideo
E: Ad=81(I) Atr=05(Isoc) MxPS= 512 Ivl=125us
I: If#= 1 Alt= 4 #EPs= 1 Cls=0e(video) Sub=02 Prot=01 Driver=uvcvideo
E: Ad=81(I) Atr=05(Isoc) MxPS= 640 Ivl=125us
I: If#= 1 Alt= 5 #EPs= 1 Cls=0e(video) Sub=02 Prot=01 Driver=uvcvideo
E: Ad=81(I) Atr=05(Isoc) MxPS= 800 Ivl=125us
I: If#= 1 Alt= 6 #EPs= 1 Cls=0e(video) Sub=02 Prot=01 Driver=uvcvideo
E: Ad=81(I) Atr=05(Isoc) MxPS= 944 Ivl=125us
I: If#= 1 Alt= 7 #EPs= 1 Cls=0e(video) Sub=02 Prot=01 Driver=uvcvideo
E: Ad=81(I) Atr=05(Isoc) MxPS=1280 Ivl=125us
I: If#= 1 Alt= 8 #EPs= 1 Cls=0e(video) Sub=02 Prot=01 Driver=uvcvideo
E: Ad=81(I) Atr=05(Isoc) MxPS=1600 Ivl=125us
I: If#= 1 Alt= 9 #EPs= 1 Cls=0e(video) Sub=02 Prot=01 Driver=uvcvideo
E: Ad=81(I) Atr=05(Isoc) MxPS=1984 Ivl=125us
I: If#= 1 Alt=10 #EPs= 1 Cls=0e(video) Sub=02 Prot=01 Driver=uvcvideo
E: Ad=81(I) Atr=05(Isoc) MxPS=2880 Ivl=125us
I: If#= 1 Alt=11 #EPs= 1 Cls=0e(video) Sub=02 Prot=01 Driver=uvcvideo
E: Ad=81(I) Atr=05(Isoc) MxPS=3060 Ivl=125us
I:* If#= 2 Alt= 0 #EPs= 1 Cls=0e(video) Sub=01 Prot=01 Driver=uvcvideo
E: Ad=84(I) Atr=03(Int.) MxPS= 16 Ivl=16ms
I:* If#= 3 Alt= 0 #EPs= 0 Cls=0e(video) Sub=02 Prot=01 Driver=uvcvideo
I: If#= 3 Alt= 1 #EPs= 1 Cls=0e(video) Sub=02 Prot=01 Driver=uvcvideo
E: Ad=82(I) Atr=05(Isoc) MxPS=1280 Ivl=125us
I:* If#= 4 Alt= 0 #EPs= 0 Cls=fe(app. ) Sub=01 Prot=01 Driver=(none)

T: Bus=03 Lev=01 Prnt=01 Port=03 Cnt=02 Dev#= 3 Spd=480 MxCh= 0
D: Ver= 2.00 Cls=ef(misc ) Sub=02 Prot=01 MxPS=64 #Cfgs= 1
P: Vendor=2c7c ProdID=030a Rev= 2.00
S: Manufacturer=Quectel
S: Product=Quectel EM05-G
C:* #Ifs= 3 Cfg#= 1 Atr=a0 MxPwr=500mA
A: FirstIf#= 0 IfCount= 2 Cls=02(comm.) Sub=0e Prot=00
I:* If#= 2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
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#= 0 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=0e Prot=00 Driver=cdc_mbim
E: Ad=84(I) Atr=03(Int.) MxPS= 64 Ivl=32ms
I: If#= 1 Alt= 0 #EPs= 0 Cls=0a(data ) Sub=00 Prot=02 Driver=cdc_mbim
I:* If#= 1 Alt= 1 #EPs= 2 Cls=0a(data ) Sub=00 Prot=02 Driver=cdc_mbim
E: Ad=83(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E: Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms

T: Bus=04 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=10000 MxCh= 2
B: Alloc= 0/800 us ( 0%), #Int= 0, #Iso= 0
D: Ver= 3.10 Cls=09(hub ) Sub=00 Prot=03 MxPS= 9 #Cfgs= 1
P: Vendor=1d6b ProdID=0003 Rev= 6.01
S: Manufacturer=Linux 6.1.0-18-amd64 xhci-hcd
S: Product=xHCI Host Controller
S: SerialNumber=0000:07:00.4
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

OK.
It seems like a customerized version. The modem only has a ttyUSB for AT and an internet interface.
I think you could try to add them into /lib/udev/rules.d/77-mm-quectel-port-types.rules


ATTRS{idVendor}=="2c7c", ATTRS{idProduct}=="030a", ENV{.MM_USBIFNUM}=="02", SUBSYSTEM=="tty", ENV{ID_MM_PORT_TYPE_AT_PRIMARY}="1"

Added under the existing section ‘Quectel EM05-G variants with Sahara-Firehose support:’

# Quectel EM05-G variants with Sahara-Firehose support:
ATTRS{idVendor}=="2c7c", ATTRS{idProduct}=="030a", ENV{ID_MM_QUECTEL_FIREHOSE}="1"
ATTRS{idVendor}=="2c7c", ATTRS{idProduct}=="030a", ENV{ID_MM_QUECTEL_SAHARA}="1"
ATTRS{idVendor}=="2c7c", ATTRS{idProduct}=="030c", ENV{ID_MM_QUECTEL_FIREHOSE}="1"
ATTRS{idVendor}=="2c7c", ATTRS{idProduct}=="030c", ENV{ID_MM_QUECTEL_SAHARA}="1"
ATTRS{idVendor}=="2c7c", ATTRS{idProduct}=="0311", ENV{ID_MM_QUECTEL_FIREHOSE}="1"
ATTRS{idVendor}=="2c7c", ATTRS{idProduct}=="0311", ENV{ID_MM_QUECTEL_SAHARA}="1"
ATTRS{idVendor}=="2c7c", ATTRS{idProduct}=="0313", ENV{ID_MM_QUECTEL_FIREHOSE}="1"
ATTRS{idVendor}=="2c7c", ATTRS{idProduct}=="0313", ENV{ID_MM_QUECTEL_SAHARA}="1"
ATTRS{idVendor}=="2c7c", ATTRS{idProduct}=="0314", ENV{ID_MM_QUECTEL_FIREHOSE}="1"
ATTRS{idVendor}=="2c7c", ATTRS{idProduct}=="0314", ENV{ID_MM_QUECTEL_SAHARA}="1"
# https://forums.quectel.com/t/quectel-em05-g-keeps-disconnecting-on-debian-12/31805
ATTRS{idVendor}=="2c7c", ATTRS{idProduct}=="030a", ENV{.MM_USBIFNUM}=="02", SUBSYSTEM=="tty", ENV{ID_MM_PORT_TYPE_AT_PRIMARY}="1"

Restarting; will get back to you a result.

Restarted and tried to switch back and forth between wifi and modem a couple of times; seems to be working just fine. Guess the problem is solved!

Thank you @Bean.Wang-Q

Nope!
It was just pure luck!

The issue came back after the second restart:

Feb 29 11:34:13 xxx ModemManager[1053]: [modem0] 3GPP registration state changed (registering ->>
Feb 29 11:34:13 xxx ModemManager[1053]: [modem0] state changed (enabled → registered)
Feb 29 11:34:13 xxx ModemManager[1053]: [modem0] simple connect state (7/10): wait to get packet>
Feb 29 11:34:13 xxx ModemManager[1053]: [modem0] simple connect state (8/10): bearer
Feb 29 11:34:13 xxx ModemManager[1053]: [modem0] simple connect state (9/10): connect
Feb 29 11:34:13 xxx ModemManager[1053]: [modem0] state changed (registered → connecting)
Feb 29 11:34:14 xxx ModemManager[1053]: [modem0/bearer0] reloading stats is supported by the dev>
Feb 29 11:34:14 xxx ModemManager[1053]: [modem0] state changed (connecting → connected)
Feb 29 11:34:14 xxx ModemManager[1053]: [modem0] simple connect state (10/10): all done
Feb 29 11:35:14 xxx ModemManager[1053]: [modem0/bearer0] reloading stats failed: Failure

Would appreciate if you could provide additional solutions to try out, @Bean.Wang-Q

I think you could try to disable the ModemManager.
And just test with libmbim.
If libmbim works fine and I think then we should check the ModemManager.
ModemManager call the libmbim to set up data call.

I guess that there might be something wrong with the celluar connection.
If possible, you could check it with the AT command first.

Thank you. Will try it out and report back.

Do you have the quectel-CM?
I think you could also try to disable the ModemManager and try to set up data with the quectel-CM.
If there is no problem with the celluar registration and the mbim driver, you should be able to set up data call with quectel-CM.
And then, you could try the ModemManager.

No. I have never used quectel-CM.
I will have to try it out and get back to you.