Hi there,
just got the EM05-CE WWAN card working on my Lenovo X1 Nano Gen2 under Debian GNU/Linux. Everything was pretty much plug and play and internet works just fine, but with one drop of bitterness: I got two SIM cards from my ISP and whenever I use the EM05-CE to connect to the internet, I am unable to receive calls on my cell phone.
Due to my research, this is because the EM05-CE somehow does not only register on the ISP’s network to transfer data, but also to make phone calls.
I read something about an AT^SYSCFGEX
command to set the modem from CS_PS
mode to PS_ONLY
(Packet Switched domain) mode, which should do the trick. However, I only got the MBIM interface (/dev/cdc-wdmX
) and no serial interface (like e.g. /dev/ttyUSBX
).
So here are my questions:
- is it expected that there is a MBIM interface only, or should there also be a serial interface exposed by the kernel to userspace?
- if there should also be a serial interface, how can I make it appear?
- is there some way to make the EM05-CW register on the ISP’s network only to transfer data?
Some more details about my configuration:
Modem details:
$ mmcli --modem=1
--------------------------------
General | path: /org/freedesktop/ModemManager1/Modem/1
| device id: *snip*
--------------------------------
Hardware | manufacturer: Quectel
| model: Quectel EM05-CE
| firmware revision: EM05CEFCR08A14M1G_LNV
| h/w revision: QUECTEL Mobile Broadband Modul
| supported: gsm-umts, lte
| current: gsm-umts, lte
| equipment id: *snip*
--------------------------------
System | device: /sys/devices/pci0000:00/0000:00:14.0/usb1/1-4
| physdev: /sys/devices/pci0000:00/0000:00:14.0/usb1/1-4
| drivers: cdc_mbim
| plugin: quectel
| primary port: cdc-wdm1
| ports: cdc-wdm1 (mbim), wwan0 (net)
--------------------------------
Status | lock: sim-pin2
| unlock retries: sim-pin2 (3)
| state: registered
| power state: on
| access tech: lte
| signal quality: 58% (recent)
--------------------------------
Modes | supported: allowed: 2g, 3g, 4g; preferred: none
| current: allowed: 2g, 3g, 4g; preferred: none
--------------------------------
IP | supported: ipv4, ipv6, ipv4v6
--------------------------------
3GPP | imei: *snip*
| enabled locks: fixed-dialing
| operator id: *snip*
| operator name: *snip*
| registration: home
| packet service state: attached
--------------------------------
SIM | primary sim path: /org/freedesktop/ModemManager1/SIM/0
USB device details:
$ lsusb -d 2c7c:0127 -vvv
Bus 001 Device 003: ID 2c7c:0127 Quectel Wireless Solutions Co., Ltd. Quectel EM05-CE
Couldn't open device, some information will be missing
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 239 Miscellaneous Device
bDeviceSubClass 2 [unknown]
bDeviceProtocol 1 Interface Association
bMaxPacketSize0 64
idVendor 0x2c7c Quectel Wireless Solutions Co., Ltd.
idProduct 0x0127 Quectel EM05-CE
bcdDevice 3.18
iManufacturer 1 Quectel
iProduct 2 Quectel EM05-CE
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 0
bAlternateSetting 0
bNumEndpoints 3
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 0 [unknown]
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 1
bInterfaceCount 2
bFunctionClass 2 Communications
bFunctionSubClass 14 [unknown]
bFunctionProtocol 0
iFunction 0
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 2 Communications
bInterfaceSubClass 14 [unknown]
bInterfaceProtocol 0
iInterface 6
CDC Header:
bcdCDC 1.10
CDC Union:
bMasterInterface 1
bSlaveInterface 2
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 2
bAlternateSetting 0
bNumEndpoints 0
bInterfaceClass 10 CDC Data
bInterfaceSubClass 0 [unknown]
bInterfaceProtocol 2
iInterface 7
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 2
bAlternateSetting 1
bNumEndpoints 2
bInterfaceClass 10 CDC Data
bInterfaceSubClass 0 [unknown]
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
MBIM Interface:
$ ls -l /dev/cdc-wdm1
crw------- 1 root root 180, 1 Mar 4 19:19 /dev/cdc-wdm1
Connection details:
$ nmcli device show cdc-wdm1
GENERAL.DEVICE: cdc-wdm1
GENERAL.TYPE: gsm
GENERAL.HWADDR: (unknown)
GENERAL.MTU: 1500
GENERAL.STATE: 100 (connected)
GENERAL.CONNECTION: *snip*
GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveConnection/3
IP4.ADDRESS[1]: *snip*
IP4.GATEWAY: *snip*
IP4.ROUTE[1]: dst = *snip*/29, nh = 0.0.0.0, mt = 1050
IP4.ROUTE[2]: dst = 0.0.0.0/0, nh = *snip*, mt = 1050
IP4.DNS[1]: *snip*
IP4.DNS[2]: *snip*
IP6.ADDRESS[1]: *snip*/64
IP6.GATEWAY: *snip*
IP6.ROUTE[1]: dst = *snip*/64, nh = ::, mt = 700
IP6.ROUTE[2]: dst = ::/0, nh = *snip*, mt = 700
IP6.DNS[1]: *snip*
IP6.DNS[2]: *snip*
Kernel:
$ uname -a
Linux *snip* 6.6.15-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.6.15-2 (2024-02-04) x86_64 GNU/Linux
journalctl messages:
Mar 04 21:11:25 *snip* kernel: cdc_mbim 1-4:1.1: cdc-wdm1: USB WDM device
Mar 04 21:11:25 *snip* kernel: cdc_mbim 1-4:1.1 wwan0: register 'cdc_mbim' at usb-0000:00:14.0-4, CDC MBIM, 62:45:56:04:55:0f
Mar 04 21:11:27 *snip* ModemManager[1100]: <msg> [cdc-wdm1/mbim] MBIM device is not QMI capable
Mar 04 21:11:29 *snip* ModemManager[1100]: <msg> [device /sys/devices/pci0000:00/0000:00:14.0/usb1/1-4] creating modem with plugin 'quectel' and '2' ports
Mar 04 21:11:29 *snip* ModemManager[1100]: <msg> [base-manager] modem for device '/sys/devices/pci0000:00/0000:00:14.0/usb1/1-4' successfully created
Mar 04 21:11:29 *snip* ModemManager[1100]: <msg> [modem1/cdc-wdm1/mbim] MBIM device is not QMI capable
Mar 04 21:11:30 *snip* ModemManager[1100]: <msg> [modem1] state changed (unknown -> disabled)
Mar 04 21:11:30 *snip* NetworkManager[1069]: <info> [1709583090.5606] manager: (cdc-wdm1): new Broadband device (/org/freedesktop/NetworkManager/Devices/5)
Mar 04 21:11:30 *snip* NetworkManager[1069]: <info> [1709583090.5609] device (cdc-wdm1): state change: unmanaged -> unavailable (reason 'managed', sys-iface-state: 'external')
Mar 04 21:11:30 *snip* NetworkManager[1069]: <info> [1709583090.5613] device (cdc-wdm1): modem state 'enabling'
Mar 04 21:11:30 *snip* NetworkManager[1069]: <info> [1709583090.5615] device (cdc-wdm1): state change: unavailable -> disconnected (reason 'none', sys-iface-state: 'managed')
Mar 04 21:11:30 *snip* ModemManager[1100]: <msg> [modem1] state changed (disabled -> enabling)
Mar 04 21:11:30 *snip* ModemManager[1100]: <msg> [modem1] power state updated: on
Mar 04 21:11:30 *snip* ModemManager[1100]: <msg> [modem1] 3GPP packet service state changed (unknown -> attached)
Mar 04 21:11:30 *snip* ModemManager[1100]: <msg> [modem1] state changed (enabling -> enabled)
Mar 04 21:11:30 *snip* ModemManager[1100]: <msg> [modem1] 3GPP registration state changed (unknown -> registering)
Mar 04 21:11:30 *snip* ModemManager[1100]: <msg> [modem1] 3GPP registration state changed (registering -> home)
Mar 04 21:11:30 *snip* ModemManager[1100]: <msg> [modem1] state changed (enabled -> registered)
USB tree info:
lsusb -t -vv
/: Bus 001.Port 001: Dev 001, Class=root_hub, Driver=xhci_hcd/12p, 480M
ID 1d6b:0002 Linux Foundation 2.0 root hub
/sys/bus/usb/devices/usb1 /dev/bus/usb/001/001
*snip*
|__ Port 004: Dev 003, If 0, Class=Vendor Specific Class, Driver=[none], 480M
ID 2c7c:0127 Quectel Wireless Solutions Co., Ltd.
/sys/bus/usb/devices/1-4 /dev/bus/usb/001/003
|__ Port 004: Dev 003, If 1, Class=Communications, Driver=cdc_mbim, 480M
ID 2c7c:0127 Quectel Wireless Solutions Co., Ltd.
/sys/bus/usb/devices/1-4 /dev/bus/usb/001/003
|__ Port 004: Dev 003, If 2, Class=CDC Data, Driver=cdc_mbim, 480M
ID 2c7c:0127 Quectel Wireless Solutions Co., Ltd.
/sys/bus/usb/devices/1-4 /dev/bus/usb/001/003
*snip*
*snip*