TECHSHIP IS A GLOBAL SUPPLIER OF WIRELESS COMPONENTS

Register

Huawei MS2372h-517 LTE USB Dongle US

Article Number: 10724
Brand: Huawei
Supplier number: 51071PPE

The Huawei MS2372h-517 LTE USB stick is a robust, industrial 4G USB dongle. The MS2372h is a LTE CAT-4 modem with Hisilicon chipset for use in the North American region and enables the exchange of data with a transmission speed of up to 150 Mbps (D/L) and 50 Mbps (U/L).

The Huawei MS2372 can be easily controlled by using standard AT commands. In addition to the built-in main and diversity antennas the MS2372 also has the possibility to be connected to one or two external antennas via its two CRC9 connectors.

End-of-life

This product has reached
end-of-life and can not be
ordered any more.

Quantity Price

No prices available

For more information
please contact us at
sales-americas@techship.com

For larger quantities and complete pricing, please sign in or register

We suggest Alcatel IK41UC LTE USB Dongle NA
as replacement for this module.

Do you need offline data on this product?

Download datasheet

Subscribe to stay up to date with the latest about this product.

Subscribe to updates
Region
North America
Primary Technology
LTE - cat 4
Form Factor
USB type A
LTE Bands
B1 (FDD 2100)
B2 (FDD 1900)
B4 (FDD 1700 / AWS)
B5 (FDD 850)
B7 (FDD 2600)
B12 (FDD 700ac)
B28 (FDD 700)
UMTS Bands
B1 (2100)
B2 (1900)
B4 (AWS)
B5 (850)
GSM/EDGE Bands
B2 (1900)
B3 (1800)
B5 (850)
B8 (900)
Max DL Speed
150 Mbps
Max UL Speed
50 Mbps
GNSS
No
Antenna Connectors
CRC9
Certification
FCC
Operating Temperature Range
-10 °C – 40 °C
Extended Operating Temperature Range
-20 °C – 55 °C
Chipset
Balong 711
Data Interface
USB 2.0
Voice Call Support
No
Driver Support
Windows 7
Windows 8
Windows
Windows 8.1
Linux
Windows 10
MIMO (Multiple-Input Multiple-Output)
Yes
FOTA Firmware Updates
Yes
SIM interface
Through SIM slot on product
Mini (2FF) SIM-slot
GPIO
No
Datasheet for Huawei MS2372h-517 LTE Industrial USB Stick

Download

Uploaded at
2017-12-13 17:00:17
Last updated
2018-12-03 09:58:07
Related products
Huawei MS2372h-517 LTE USB Dongle US
Hardware Design Guide for Huawei MS2372h Series USB industrial grade LTE dongle/sticks.

Download

This manual describes the AT commands interface used to control, configure and query the cellular module through the Modem/AT serial interface endpoints of USB interface.

Download

Venezuela CONATEL Certificate for Huawei MS2372H-517

Download

Uploaded at
2018-11-21 11:49:34
Last updated
2018-11-21 11:49:58
Related products
Huawei MS2372h-517 LTE USB Dongle US
Peru MTC Certificate for Huawei MS2372h-517

Download

Uploaded at
2018-11-21 11:46:56
Last updated
2018-11-21 11:46:56
Related products
Huawei MS2372h-517 LTE USB Dongle US
Panama ASEP Certificate for Huawei MS2372h-517

Download

Uploaded at
2018-11-21 11:45:57
Last updated
2018-11-21 11:45:57
Related products
Huawei MS2372h-517 LTE USB Dongle US
Ecuador SUPERTEL Certificate for Huawei MS2372h-517

Download

Uploaded at
2018-11-21 11:44:04
Last updated
2018-11-21 11:44:04
Related products
Huawei MS2372h-517 LTE USB Dongle US
Colombia CRC Certificate for Huawei MS2372h-517

Download

Uploaded at
2018-11-21 11:42:52
Last updated
2018-11-21 11:42:52
Related products
Huawei MS2372h-517 LTE USB Dongle US
Argentina ENACOM Certificate for Huawei MS2372h-517

Download

Uploaded at
2018-11-21 11:41:53
Last updated
2018-11-21 11:41:53
Related products
Huawei MS2372h-517 LTE USB Dongle US
Dominican Republic INDOTEL Certificate for Huawei MS2372h-517

Download

Uploaded at
2018-11-21 11:40:49
Last updated
2018-11-21 11:40:49
Related products
Huawei MS2372h-517 LTE USB Dongle US
This archive contains the CE, FCC, IC, REACH, ROHS and WEEE certificate declaration of conformity documents for MS2372h-517.

Download

Uploaded at
2018-04-20 12:28:28
Last updated
2018-04-20 12:28:28
Related products
Huawei MS2372h-517 LTE USB Dongle US
This archive contains the Microsoft Windows drivers for Huawei MS2372 and E3372 both for x86 and x64 architecture.

Download

This archive contains the Huawei Windows desktop systems drivers for HiSilicon chipset based LTE modules and the related release notes

Download

This archive contains the installer for Huawei Mobile Partner Windows Dialer Software V23.15.18.01.03 used to establish a cellular connection. Windows integrated connection manager can also be used as an alternative to this software.

Download

This archive contains the Linux driver package for MS2372 series modules. It can be used to assure the module have the drivers correctly set up if the in-kernel drivers do not load properly for the module and e.g. USB mode change is failing.

Download

Uploaded at
2018-04-30 11:23:07
Last updated
2018-04-30 11:23:07
Version
V.4.19.23.00
Requirements
Linux OS kernel version 2.6.18 or later
Related products
Huawei MS2372h-153 LTE USB Dongle EU
Huawei MS2372h-517 LTE USB Dongle US
Huawei MS2372h-607 LTE USB Dongle Asia
Huawei MS2372h-158 LTE USB Dongle EU
Huawei MS2372h-518 LTE USB Dongle US
Huawei MS2372h-608 LTE USB Dongle Asia
This archive contains the MAC OS driver for the Huawei MS2372h series USB light industrial dongles

Download

Uploaded at
2018-04-20 14:16:03
Last updated
2018-04-20 14:16:03
Version
V6.00.06.00
Requirements
Mac OS
Related products
Huawei MS2372h-517 LTE USB Dongle US
Huawei MS2372h-153 LTE USB Dongle EU
Huawei MS2372h-607 LTE USB Dongle Asia
This archive contains the Windows based firmware V.21.328.02.01.00 updater with release notes for Huawei MS2372 series USB sticks.

Download

Uploaded at
2018-05-14 11:26:05
Last updated
2018-05-14 11:26:05
Version
V.21.328.02.01.00
Requirements
Microsoft Windows
Huawei module drivers installed
Related products
Huawei MS2372h-517 LTE USB Dongle US
Huawei MS2372h-153 LTE USB Dongle EU
Huawei MS2372h-607 LTE USB Dongle Asia
Question

What Linux kernel modules and configs are commonly used for communicating with cellular modules over their USB interface?



Solution

Most cellular modules can be supported in Linux by using som of the in-kernel drivers. The physical data interface to the host Linux system is usually done over USB which enumerates a set of different endpoints/interfaces. A set of serial interfaces for Modem/PPP, AT commands, NMEA location data and chipset debug information are almost always available in all configurations.

In addition some type of network endpoint/interface are also available and exposed. This can vary between manufacturers and chipset vendors and can also commonly be configurable by using USB configuration mode switching or through vendor specific AT commands.

Recommended kernel configurations to enable are listed bellow. Many cellular modules base their Linux support on these modules and drivers. Once included in the kernel build, the USB interfaces will be detected and bound correctly out-of-the-box or after applying source code patches to the driver modules.

Configs for USB serial drivers:
CONFIG_USB_SERIAL
CONFIG_USB_SERIAL_GENERIC
CONFIG_USB_SERIAL_WWAN
CONFIG_USB_SERIAL_OPTION
CONFIG_USB_SERIAL_QUALCOMM
CONFIG_USB_ACM

Configs for Modem/PPP support:
CONFIG_PPP
CONFIG_PPP_BSDCOMP
CONFIG_PPP_DEFLATE
CONFIG_PPP_FILTER
CONFIG_PPP_MPPE
CONFIG_PPP_MULTILINK
CONFIG_PPPOE
CONFIG_PPP_ASYNC
CONFIG_PPP_SYNC_TTY

Configs for USB network drivers:
CONFIG_USB_USBNET
CONFIG_USB_NET_QMI_WWAN
CONFIG_USB_NET_CDCETHER
CONFIG_USB_NET_RNDIS_HOST
CONFIG_USB_NET_CDC_NCM
CONFIG_USB_NET_HUAWEI_CDC_NCM
CONFIG_USB_NET_CDC_MBIM

Please relate to the Techship product specific web pages for vendor specific Linux integration guides.

Below is a selection of kernel commits relating to cellular module support in Linux kernels:
qmi_wwan: Add support for Fibocom NL678 series
qmi_wwan: Added support for Telit LN940 series
qmi_wwan: Added support for Fibocom NL668 series
USB: serial: option: add support for GosunCn ME3630 RNDIS mode
USB: serial: option: add support for Simcom SIM7500/SIM7600 RNDIS mode
USB: serial: option: add Simcom SIM7500/SIM7600 (MBIM mode)
USB: serial: option: add Fibocom NL678 series
USB: serial: option: add Telit LN940 series
USB: serial: option: add Fibocom NL668 series
USB: serial: option: add GosunCn ZTE WeLink ME3630
qmi_wwan: apply SET_DTR quirk to the SIMCOM shared device ID

If you use any of the listed cellular modules, drivers and specified USB modes in the commits above, ensure that your kernel version already include the patch or apply it to your build.



Related products
Huawei ME909u-521 - EU/ASIA
Huawei ME909u-523D - US - AT&T
Huawei ME909u-521 Mini PCI Express - EU/ASIA
Huawei ME909u-523D Mini PCI Express - US - AT&T
Sierra Wireless MC7710
Huawei ME909u-521 developer kit
Sierra Wireless MC7750
Sierra Wireless MC7700
Sierra Wireless MC7304
Sierra Wireless MC7354
Sierra Wireless MC7350
Sierra Wireless EM7305
Sierra Wireless EM7355
Huawei MU709s-2 LGA
Huawei MU709s-2 devkit
Huawei MS2131i-8 USB-stick
Huawei MU709s-2 mPCIe
Huawei ME909s-821 mPCIe
Huawei ME909s-821 LGA
Huawei ME909s-120 mPCIe EU
Huawei ME909s-120 LGA EU
Huawei MU709s-6 mPCIe
SimCom SIM5360E HSPA+ mPCie EU
SimCom SIM7100E LTE SMT EU
SimCom SIM7100E LTE mPCIe EU
SimCom SIM7100A LTE mPCIe US
SimCom SIM7100C LTE mPCIe China
SimCom SIM7230 LTE mPCIe EU
Huawei ME909s-120 LGA dev.kit
SimCom SIM7100E LTE mPCIe SIM
SimCom SIM5360E HSPA+ mPCie Audio/GPS
SimCom SIM5360E-mPCIe SIM
Techship Starter kit Huawei MU709s
Techship Starter kit Huawei ME909s
SIMCom SIM7500A LTE SMT US
SIMCom SIM7500A-TE Test Mount
SIMCom EVB-Kit
SIMCom SIM5300E HSPA SMT
SIMCom SIM5300EA-TE
Sierra Wireless WP7502
SIMCom SIM7500E LTE SMT EU
SIMCom SIM7500E-TE Test Mount
Huawei MU709s-2 LGA TTS
Welink ME3630 E1C LCC EU
Welink ME3630 E1C LTE Cat-4 mPCIe
SIMCom SIM7500E LTE mPCIe EU
Welink ME3630 U1A LCC (US)
Welink ME3630 U1A mPCIe (US)
SIMCom SIM5320A mPCIe
SIMCom SIM7500SA LTE mPCIe Audio
SIMCom SIM7000E-TE
SIMCom SIM7000E CAT-M1/NB1 SMT
Telit HE910-D-SIM HSPA+, miniPCIe, SIM card holder
Telit LM940A11 LTE CAT-11, GPS, mPCIe
Telit LE910-EU V2 LTE CAT-4, mPCIe
Telit LE910-SV V2 LTE CAT-4, Verizon, mPCIe
Telit LE910-NA V2 LTE CAT-4, AT T, TM, mPCIe
Telit LE910-AU V2 LTE CAT-4, Telstra, mPCIe
Telit HE910-GL SIM UMTS, miniPCIe, SIM card holder
Telit LE910-NA1 LTE CAT-1 LGA
Telit LE910-EU1 LTE CAT-1 LGA
Telit LE910-SV1 LTE CAT-1 LGA
Telit LE910-EU V2 LTE CAT-4 LGA
Telit LE910-NA V2 LTE CAT-4 LGA
Telit LN940 A11 LTE CAT-11 M.2
Telit LN940 A9 LTE CAT-9 M.2
Huawei MS2372h-153 LTE USB Dongle EU
SIMCom SIM7600E-H LTE SMT EU
SIMCom SIM7600E-H LTE CAT-4 mPCIe EU
Welink ME3630 C1C mPCIe CN
SIMCom SIM7600E-H LTE CAT-4 mPCIe SIM
Telit LE910-EU1 Interface board
Telit LE910-NA1 Interface board
Telit LE910-SV1 Interface board
Huawei MS2372h-517 LTE USB Dongle US
SIMCom SIM7600A-H LTE CAT-4 mPCIe Audio
Huawei MS2372h-607 LTE USB Dongle Asia
Welink ME3630 E1C M.2 EU
Welink ME3630 E2C CAT-1 M.2 EU
Telit LE910-NA V2 LTE CAT-4, S.SKU, mPCIe
SIMCom SIM7600SA-H LTE CAT-4 mPCIe
Simcom SIM7600JC-H LTE CAT-4 mPCIe
SIMCom SIM7600A-H LTE CAT-4 mPCIe US
SIMCom SIM7600V-H LTE CAT-4 mPCIe Audio Verizon
SIMCom SIM7020E-SUB KIT Developer kit
SIMCom SIM7000G
SIMCom SIM7020E NB-IoT SMT
SIMCom SIM7000G-TE-KIT
SIMCom SIM7600SA-H LTE CAT-4 mPCIe with SIM holder
SIMCom SIM7600E LTE CAT-1 mPCIe
SIMCom SIM7600SA LTE CAT-1 mPCIe
SIMCom SIM7600E-H LTE CAT 4 -mPCIE with Audio
Telit LM960 LTE CAT-18, GPS, mPCIe
Telit LN941 LTE CAT-6, M.2
SIMCom SIM7000E CAT-M1/NB1 mPCIe
SIMCom SIM7000G CAT-M/NB-IoT/GSM miniPCIe
SIM7600E-TE-KIT
SIMCom SIM7600A-H LTE CAT-4 mPCIe-SIM
SIMCom SIM7020G-SUB KIT
SIMCom SIM7600CE-T LTE CAT-4 mPCIe CN
Sierra Wireless MC-WP7607 LTE CAT-4 mPCIe
Telit LE910C4-NF LTE CAT-4 mPCIe
Telit LE910-NA V2 LTE CAT-4, S.SKU LGA
Telit LE910B1-NA S.SKU LTE Cat-1 LGA
Telit LE910C1-NS LTE CAT-1 Sprint mPCIe
Telit LE910-SVL LTE CAT-1
Telit HE910-GL HSPA+ LGA
SIMCom SIM7000A CAT-M SMT Verizon
SIMCom SIM7000A CAT-M SMT AT&T
SIMCom SIM7906E LTE CAT-6 M.2
SIMCom SIM7906E LTE CAT-6 mPCIe
SIMCom SIM7000A CAT-M mPCIe
Telit LE910C1-NA Interface Board
Telit LE910-SVG LTE CAT-3 LGA
Telit HE910-NAR HSPA LGA
Telit HE910-D HSPA+ LGA
Telit LE910C1-NA LTE CAT-1 AT&T LGA
Telit LE910C1-NS LTE CAT-1 Sprint LGA
Telit LE910-NAG LTE CAT-3 AT&T LGA
Telit LE910-SVG LTE CAT-3 mPCIe
Telit LE910-NVG LTE CAT-3 LGA
SIMCom SIM7600G-H LTE CAT-4 mPCIe
Telit LE910-NA1 S.SKU LTE Cat-1 LGA
Telit LE910-JN1 LTE Cat-1 LGA
Telit LE910C1-AP
Telit LE910C1-EU LTE CAT-1 LGA
Telit LE910B1-NA
Telit LE910B1-SA
Telit LE910-AU V2
Telit LE910-SV V2
Telit LE910B4-NA
Telit LE910C4-NF LTE Cat-4 LGA
Telit LE910-SV1 LTE Cat-1 mPCIe
Telit LE910-EU1 LTE Cat-1 mPCIe
Telit LE910-JN1 LTE Cat-1 mPCIe
Telit LE910-NA1 LTE Cat-1 mPCIe
Telit LE910C1-AP LTE CAT-1 mPCIe
Telit LE910C1-EU LTE CAT-1 mPCIe
Telit LE910C1-AP Interface Board
Telit LE910C1-EU Interface Board
Telit LE910-NA V2 Interface Board
Telit LE910C4-NF Interface Board
Telit LE910-SV V2 (Reel)
Telit LE910C4-EU LTE CAT-4 mPCIe
Telit LE910C4-EU LTE CAT-4 mPCIe SIM
GosuncnWelink GM500 U1A CAT-4 M.2
Telit LE910C1-NF S.SKU LTE CAT-1 LGA
SIMCom SIM7070E CAT-M/NB2
Telit LM960 Interface Board
SIMCom SIM7070E-TE Kit
Telit LE910C1-NF Interface board
SIMCom SIM7080G-TE KIT
Telit LM940A11, HW Rev. 2, LTE CAT-11, GPS, mPCIe
SIMCom SIM7070E CAT-M1/NB2 mPCIe
Telit LE910C4-NF LTE CAT-4 mPCIe SIM
SIMCom SIM7912G LTE CAT-12 M.2
Sierra Wireless WP7702 LTE CAT-M/NB-IoT LGA
Telit LM960A18 LTE CAT-18 mPCIe
Telit LE910C4-AP LTE CAT-4 mPCIe SIM
Telit LE910C4-CN LTE CAT-4 mPCIe
Telit LE910C4-CN LTE CAT-4 mPCIe SIM
Gosuncn GM500 U1A mPCIe (US)
SIMCom SIM7600E LTE CAT-1 SMT
SIMCom SIM7600G-H R2 LTE Cat-4 mPCIe
SIMCom SIM7600NA-H LTE Cat-4 mPCIe
Sierra Wireless MC7455 mPCIe
Sierra Wireless MC7430
Sierra Wireless EM7430 M.2
Sierra Wireless, EM7455 M.2
Telit LE910C4-LA LTE CAT-4 mPCIe
Question

How-to guide: How can we control, configure and establish a simple data connection for a cellular module in Linux systems using the open source ModemManager tool for modem control and connection management.

Solution

ModemManager is a open source tool for Linux that can be used to communicate with cellular devices for configuration, status check, connection triggering etc. It is capable of communicate over several types of device control channels such as QMI/RMNET, MBIM, MODEM / AT command etc.

It is hosted by the Freedesktop.org community and driven by Aleksander Morgado and other contributors, please visit https://www.freedesktop.org/wiki/Software/ModemManager/ for latest information, source code, API reference manuals, debugging tips, contribution, mailing list etc.

Keep in mind that ModemManager is not directly developed or driven by cellular device vendors and the compatibility cannot be guaranteed for the specific device you aim to use. Some vendors contribute with code to make their devices fully compatible, while others don't. However many cellular devices can be set to expose standardized types of USB network interface and control channel such as MBIM interface by USB-IF or the Qualcomm proprietary interface QMI that ModemManager will try to identify, and often manage to work successfully with.

Before continuing with ModemManager, a good thing to ensure is that you have common Linux driver modules available in your kernel build.
You can compare your own systems kernel config with the ones listed in the following FAQ:
Common Linux kernel modules and configs necessary for communicating with cellular modules over USB interface
Selections of these are commonly used by cellular devices and need to be available in order to have device drivers correctly loaded when devices are detected.

Start by installing ModemManager and its dependencies to your Linux system.
You can build it from source code release tarball found at freedesktop.org (install instructions included in the archive)
If you have a package manager in your Linux distribution, it can usually be installed through them also.
E.g. on Ubuntu using apt to install it and related dependencies:
apt install modemmanager libmbim-utils libqmi-utils

Keep in mind that Linux distributions sometimes rely on fairly old releases in their repositories and the development of ModemManager, libqmi and libmbim are on-going continuously. So is also the development of the cellular devices when the cellular technologies evolve. It is therefore recommended that you have a fairly recent version of ModemManager, libqmi and libmbim running in your system as well as when it comes to kernel version since the driver modules sometimes acquire patch fixes to be compatible with new chipset features etc.
Check Freedesktop.org pages for details on the latest ModemManager, NetworkManager, Libqmi and Libmbim releases.

Once you've installed ModemManager and rebooted your system, the service daemon should be running already in background.
Mmcli is the related command line interface tool which can be used to interact with ModemManager daemon through command line commands.

Check the version by command:
mmcli -V
<< mmcli 1.13.0
<< Copyright (2011 - 2020) Aleksander Morgado
<< License GPLv2+: GNU GPL version 2 or later
<< This is free software: you are free to change and redistribute it.
<< There is NO WARRANTY, to the extent permitted by law.

Print general mmcli help message:
mmcli --help

ModemManager normally listen, probes and detects cellular devices automatically when operating correctly but a forced scan can be triggered with command:
mmcli --scan-modems
<< successfully requested to scan devices

To list detected cellular devices use command:
mmcli --list-modems
<< /org/freedesktop/ModemManager1/Modem/0 [Sierra Wireless, Incorporated] MC7455

Here ModemManager have detected a Sierra Wireless cellular device and it has here been given the the identifier number 0 by ModemManager.

To acquire more device information and status use the --modem command and identifier value.
mmcli --modem=0
<< -----------------------------
<< General | dbus path: /org/freedesktop/ModemManager1/Modem/0
<< | device id: 3a2f5fad8e91dbf417694f23165017c1f8a6e061
<< -----------------------------
<< Hardware | manufacturer: Sierra Wireless, Incorporated
<< | model: MC7455
<< | firmware revision: SWI9X30C_02.32.11.00 r8042 CARMD-EV-FRMWR2 2019/05/15 21:52:20
<< | carrier config: default
<< | h/w revision: 1.0
<< | supported: gsm-umts, lte
<< | current: gsm-umts, lte
<< | equipment id: 359072066171840
<< -----------------------------
<< System | device: /sys/devices/pci0000:00/0000:00:14.0/usb3/3-2
<< | drivers: qcserial, qmi_wwan
<< | plugin: sierra
<< | primary port: cdc-wdm0
<< | ports: cdc-wdm0 (qmi), wwan1 (net), ttyUSB2 (at), wwan0 (net),
<< | cdc-wdm1 (qmi), ttyUSB1 (gps), ttyUSB0 (qcdm)
<< -----------------------------
<< Status | lock: sim-pin
<< | unlock retries: sim-pin (3), sim-puk (10), sim-pin2 (0), sim-puk2 (10)
<< | state: locked
<< | power state: on
<< | signal quality: 0% (cached)
<< -----------------------------
<< Modes | supported: allowed: 3g; preferred: none
<< | allowed: 4g; preferred: none
<< | allowed: 3g, 4g; preferred: 4g
<< | allowed: 3g, 4g; preferred: 3g
<< | current: allowed: 3g, 4g; preferred: 4g
<< -----------------------------
<< Bands | supported: utran-1, utran-3, utran-4, utran-5, utran-8, utran-2,
<< | eutran-1, eutran-2, eutran-3, eutran-4, eutran-5, eutran-7, eutran-8,
<< | eutran-12, eutran-13, eutran-20, eutran-25, eutran-26, eutran-29,
<< | eutran-30, eutran-41
<< | current: utran-1, utran-3, utran-4, utran-5, utran-8, utran-2,
<< | eutran-1, eutran-2, eutran-3, eutran-4, eutran-5, eutran-7, eutran-8,
<< | eutran-12, eutran-13, eutran-20, eutran-25, eutran-26, eutran-29,
<< | eutran-30, eutran-41
<< -----------------------------
<< IP | supported: ipv4, ipv6, ipv4v6
<< -----------------------------
<< SIM | dbus path: /org/freedesktop/ModemManager1/SIM/0

A detailed summary of device status, configs and system drivers, paths and IDs are returned.

Currently the device status indicates that inserted SIM card is PIN locked, so a unlock by --pin command is necessary:
mmcli --modem=0 --sim=0 --pin=****
<< successfully sent PIN code to the SIM

Now we can change device state to enabled using command:
mmcli --modem=0 --enable
<< successfully enabled the modem

if we're check device status again we can see that device:
mmcli --modem=0

<< --------------------------------
<< Status | lock: sim-puk2
<< | unlock retries: sim-pin (3), sim-puk (10), sim-pin2 (0), sim-puk2 (10)
<< | state: registered
<< | power state: on
<< | access tech: lte
<< | signal quality: 96% (recent)

<< 3GPP | imei: 359072066171840
<< | operator id: 24002
<< | operator name: 3
<< | registration: home
<< --------------------------------
<< 3GPP EPS | ue mode of operation: csps-2
<< --------------------------------
<< SIM | dbus path: /org/freedesktop/ModemManager1/SIM/0


The status output shows that devices is registered in network using LTE technology with a good signal strength.

It is now time to activate the data connection with --simple-connect command.
ModemManager will tie the data bearer for our given subscription APN to the qmi_wwan network interface, typically named wwan0 (unless renamed by Linux distribution or user)
Fill in the details as below but for your modem number, subscription APN and the IP type it can work with (ipv4 / ipv6 ipv4v6)
mmcli -m 0 --simple-connect='apn=data.tre.se,ip-type=ipv4v6'
<< successfully connected the modem

if we check modem status again we can see that a bearer have been established.
mmcli --modem=0

<< --------------------------------
<< Bearer | dbus path: /org/freedesktop/ModemManager1/Bearer/0


The bearer have got identifier number 0 so we can request more details for it to acquire the IP details:

mmcli --modem=0 --bearer=0
<< ------------------------------------
<< General | dbus path: /org/freedesktop/ModemManager1/Bearer/0
<< | type: default
<< ------------------------------------
<< Status | connected: yes
<< | suspended: no
<< | interface: wwan1
<< | ip timeout: 20
<< ------------------------------------
<< Properties | apn: data.tre.se
<< | roaming: allowed
<< | ip type: ipv4v6
<< ------------------------------------
<< IPv4 configuration | method: static
<< | address: 2.68.206.100
<< | prefix: 29
<< | gateway: 2.68.206.101
<< | dns: 80.251.201.177, 80.251.201.178
<< | mtu: 1500
<< ------------------------------------
<< IPv6 configuration | method: static
<< | address: 2a02:aa1:1010:b6bb:6d12:d0dc:978e:3982
<< | prefix: 64
<< | gateway: 2a02:aa1:1010:b6bb:21ea:c721:62c3:9760
<< | dns: 2a02:aa0::55, 2a02:aa0::56
<< | mtu: 1500
<< ------------------------------------
<< Statistics | duration: 450
<< | bytes rx: 6693
<< | attempts: 1
<< | total-duration: 450
<< | total-bytes rx: 6693

From here we can see the IP details we've been assigned by the cellular network.
ModemManager does not assign IPv4 address details to the cellular modules network interface in Linux by itself.
When ModemManager is used in conjunction with NetworkManager and the cellular connection is managed by it, then the IPv4 address details will be collected by NetworkManager through ModemManager and automatically assigned to network interface when connection is established.
If the system does not implement NetworkManager, then the IP and routing configuration needs to be handled by user software/scripting.

Example:
Enable network interface in Linux:
ip link set wwan0 up

Set the IPv4 address acquired from bearer information above, the CIDR subnet mask can always be set to 32:
ip addr add 2.68.206.100/32 dev wwan0

Disable ARP:
ip link set dev wwan0 arp off

Set MTU value acquired from network:
ip link set dev wwan0 mtu 1500

Add a default or other type of route to the cellular network device (e.g. with a metric to set which route to prefer)
ip route add default dev wwan0 metric 200

Add the DNS servers reported by cellular network or use other public/desired ones.
DNS server addresses are handled in different ways depending on the Linux distribution and network manager used. Therefore please refer to related dist documentation for best practice to add / maintain DNS server addresses in your specific system.
sh -c "echo 'nameserver 80.251.201.177' >> /etc/resolv.conf"
sh -c "echo 'nameserver 80.251.201.178' >> /etc/resolv.conf"

We should now have a network interface passing data successfully, we can try it out by doing ping requests:
IPv4 data:
ping -4 -c 4 -I wwan0 8.8.8.8
PING 8.8.8.8 (8.8.8.8) from 2.68.206.100 wwan0: 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=57 time=50.8 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=57 time=48.8 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=57 time=24.0 ms
64 bytes from 8.8.8.8: icmp_seq=4 ttl=57 time=44.8 ms

--- 8.8.8.8 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3005ms
rtt min/avg/max/mdev = 23.979/42.115/50.840/10.694 ms

IPv6 data:
ping -6 -c 4 -I wwan0 2600::
PING 2600::(2600::) from 2a02:aa1:1010:b6bb:8962:7405:b81c:7627 wwan0: 56 data bytes
64 bytes from 2600::: icmp_seq=1 ttl=47 time=179 ms
64 bytes from 2600::: icmp_seq=2 ttl=47 time=176 ms
64 bytes from 2600::: icmp_seq=3 ttl=47 time=175 ms
64 bytes from 2600::: icmp_seq=4 ttl=47 time=177 ms

--- 2600:: ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3004ms
rtt min/avg/max/mdev = 175.411/176.935/179.268/1.446 ms


Related products
Huawei ME909u-521 - EU/ASIA
Huawei ME909u-523D - US - AT&T
Huawei ME909u-521 Mini PCI Express - EU/ASIA
Huawei ME909u-523D Mini PCI Express - US - AT&T
Huawei MS2131i-8 USB-stick
Huawei ME909s-821 mPCIe
Huawei ME909s-821 LGA
Huawei ME909s-120 mPCIe EU
Huawei ME909s-120 LGA EU
SimCom SIM7100E LTE SMT EU
SimCom SIM7100E LTE mPCIe EU
SimCom SIM7100A LTE mPCIe US
SimCom SIM7100C LTE mPCIe China
SimCom SIM7100E LTE mPCIe SIM
SIMCom SIM7500A LTE SMT US
SIMCom SIM7500E LTE SMT EU
SIMCom SIM7500E LTE mPCIe EU
SIMCom SIM7500SA LTE mPCIe Audio
SIMCom SIM7000E CAT-M1/NB1 SMT
Telit HE910-D-SIM HSPA+, miniPCIe, SIM card holder
Telit LM940A11 LTE CAT-11, GPS, mPCIe
Telit LE910-EU V2 LTE CAT-4, mPCIe
Telit LE910-SV V2 LTE CAT-4, Verizon, mPCIe
Telit LE910-NA V2 LTE CAT-4, AT T, TM, mPCIe
Telit LE910-AU V2 LTE CAT-4, Telstra, mPCIe
Telit HE910-GL SIM UMTS, miniPCIe, SIM card holder
Telit LE910-NA1 LTE CAT-1 LGA
Telit LE910-EU1 LTE CAT-1 LGA
Telit LE910-SV1 LTE CAT-1 LGA
Telit LE910-EU V2 LTE CAT-4 LGA
Telit LE910-NA V2 LTE CAT-4 LGA
Huawei MS2372h-153 LTE USB Dongle EU
SIMCom SIM7600E-H LTE SMT EU
SIMCom SIM7600E-H LTE CAT-4 mPCIe EU
SIMCom SIM7600E-H LTE CAT-4 mPCIe SIM
Huawei MS2372h-517 LTE USB Dongle US
SIMCom SIM7600A-H LTE CAT-4 mPCIe Audio
Huawei MS2372h-607 LTE USB Dongle Asia
Telit LE910-NA V2 LTE CAT-4, S.SKU, mPCIe
SIMCom SIM7600SA-H LTE CAT-4 mPCIe
Simcom SIM7600JC-H LTE CAT-4 mPCIe
SIMCom SIM7600A-H LTE CAT-4 mPCIe US
SIMCom SIM7600V-H LTE CAT-4 mPCIe Audio Verizon
SIMCom SIM7000G
Fibocom NL668-EAU mPCIe LTE CAT-4
SIMCom SIM7600SA-H LTE CAT-4 mPCIe with SIM holder
SIMCom SIM7600E LTE CAT-1 mPCIe
SIMCom SIM7600SA LTE CAT-1 mPCIe
SIMCom SIM7600E-H LTE CAT 4 -mPCIE with Audio
Telit LM960 LTE CAT-18, GPS, mPCIe
SIMCom SIM7000E CAT-M1/NB1 mPCIe
SIMCom SIM7000G CAT-M/NB-IoT/GSM miniPCIe
Fibocom NL678-E mPCIe LTE CAT-6
SIMCom SIM7600A-H LTE CAT-4 mPCIe-SIM
SIMCom SIM7600CE-T LTE CAT-4 mPCIe CN
Sierra Wireless MC-WP7607 LTE CAT-4 mPCIe
Telit LE910C4-NF LTE CAT-4 mPCIe
Telit LE910-NA V2 LTE CAT-4, S.SKU LGA
Telit LE910B1-NA S.SKU LTE Cat-1 LGA
Telit LE910C1-NS LTE CAT-1 Sprint mPCIe
Telit LE910-SVL LTE CAT-1
Telit HE910-GL HSPA+ LGA
SIMCom SIM7000A CAT-M SMT Verizon
SIMCom SIM7000A CAT-M SMT AT&T
SIMCom SIM7906E LTE CAT-6 M.2
SIMCom SIM7906E LTE CAT-6 mPCIe
SIMCom SIM7000A CAT-M mPCIe
Telit LE910-SVG LTE CAT-3 LGA
Telit HE910-NAR HSPA LGA
Telit HE910-D HSPA+ LGA
Telit LE910C1-NA LTE CAT-1 AT&T LGA
Telit LE910C1-NS LTE CAT-1 Sprint LGA
Telit LE910-NAG LTE CAT-3 AT&T LGA
Telit LE910-SVG LTE CAT-3 mPCIe
Telit LE910-NVG LTE CAT-3 LGA
SIMCom SIM7600G-H LTE CAT-4 mPCIe
Telit LE910-NA1 S.SKU LTE Cat-1 LGA
Telit LE910-JN1 LTE Cat-1 LGA
Telit LE910C1-AP
Telit LE910C1-EU LTE CAT-1 LGA
Telit LE910B1-NA
Telit LE910B1-SA
Telit LE910-AU V2
Telit LE910-SV V2
Telit LE910B4-NA
Telit LE910C4-NF LTE Cat-4 LGA
Telit LE910-SV1 LTE Cat-1 mPCIe
Telit LE910-EU1 LTE Cat-1 mPCIe
Telit LE910-JN1 LTE Cat-1 mPCIe
Telit LE910-NA1 LTE Cat-1 mPCIe
Telit LE910C1-AP LTE CAT-1 mPCIe
Telit LE910C1-EU LTE CAT-1 mPCIe
Telit LE910C4-EU LTE CAT-4 mPCIe
Telit LE910C4-EU LTE CAT-4 mPCIe SIM
Telit LE910C1-NF S.SKU LTE CAT-1 LGA
Telit LM940A11, HW Rev. 2, LTE CAT-11, GPS, mPCIe
Telit LE910C4-NF LTE CAT-4 mPCIe SIM
SIMCom SIM7912G LTE CAT-12 M.2
Telit LM960A18 LTE CAT-18 mPCIe
Telit LE910C1-EU LTE CAT-1 mPCIe SIM
Telit LE910C1-AP LTE CAT-1 mPCIe SIM
Telit LE910C1-NF LTE CAT-1 mPCIe
Telit LE910C4-AP LTE CAT-4 mPCIe SIM
Telit LE910C4-CN LTE CAT-4 mPCIe
Telit LE910C4-CN LTE CAT-4 mPCIe SIM
SIMCom SIM7600V-H LTE CAT-4 M.2 Verizon
Sierra Wireless EM7411 NAM
Sierra Wireless MC7411 NAM
Sierra Wireless EM7421 EMEA/APAC
Sierra Wireless MC7421 EMEA/APAC
Sierra Wireless EM7431 Japan
Sierra Wireless MC7431 Japan
Huawei MS2372h-158 LTE USB Dongle EU
Huawei MS2372h-518 LTE USB Dongle US
Huawei MS2372h-608 LTE USB Dongle Asia
Huawei ME909s-120p V2 mPCIe
Huawei ME909s-120 V2 LGA
Telit LE910C1-SA CAT-1 LGA
SIMCom SIM7600E LTE CAT-1 SMT
Telit LE910C1-NF S.SKU LTE CAT-1 mPCIe SIM
Sierra Wireless MC-WP7610 LTE CAT-4 mPCIe
SIMCom SIM7600G-H R2 LTE Cat-4 mPCIe
SIMCom SIM7600NA-H LTE Cat-4 mPCIe
Telit LE910C1-LA LTE CAT-1 mPCIe
Telit LE910C4-EU LTE CAT-4 LGA
Sierra Wireless MC7455 mPCIe
Sierra Wireless MC7430
Sierra Wireless EM7565 M.2
Sierra Wireless EM7430 M.2
Sierra Wireless EM7511 M.2
Telit LE910C1-EUX LTE CAT-1 mPCIe
SIMCom SIM7600G-H R2 LTE CAT-4 SMT
Sierra Wireless, EM7455 M.2
SIMCom SIM7600G R2 LTE CAT-1 SMT
SIMCom SIM7600SA LTE CAT-1 SMT
Alcatel IK41VE1 LTE USB Dongle EU
Alcatel IK41CQ LTE USB Dongle APAC
Alcatel IK41UD LTE USB Dongle LATAM
Alcatel IK41UC LTE USB Dongle NA
Telit LE910C4-LA LTE CAT-4 mPCIe
Telit LE910C4-AP LTE CAT-4 LGA
Telit LE910C4-LA LTE CAT-4 mPCIe w/ Simholder
Telit LE910C4-WWX LTE Cat-4 mPCIe
Telit LE910C4-WWX LTE Cat-4 LGA
Telit LE910C4-NFD LTE Cat-4 LGA
Question

How to use NetworkManager and ModemManager in Linux to automatically establish a cellular data connection and configure IP details?

Solution

Using NetworkManager and ModemManager in Linux to automatically establish a connection and configure IP details

In this FAQ we will show how to set up NetworkManager to automatically configure, establish the cellular data connection in your system.

NetworkManager and ModemManager are open source tool for Linux to manage several types of networks and interfaces such as ethernet, wifi, etc. It can also manage cellular WWAN interfaces through the ModemManager tool.
It is hosted by the Freedesktop.org community and driven by Aleksander Morgado and other contributors. please visit https://wiki.gnome.org/Projects/NetworkManager and https://www.freedesktop.org/wiki/Software/ModemManager/ for latest information, source code, API reference manuals, debugging tips, contribution, mailing list etc.

ModemManager is capable of communicating over several types of device control channels such as QMI/RMNET, MBIM, MODEM / AT command etc. But support for vendor proprietary or out-of-kernel drivers are none or very limited. Such drivers are gobinet, simcom_wwan and other drivers provided by the vendors directly.

Many Linux distributions have NetworkManager and ModemManager pre-installed or they can typically easily be installed through the systems package manager.
In Ubuntu for example apt can install it for you by command if not already installed:
apt install network-manager

Check with commands below that you have both tools installed in system and their versions.
NetworkManager -V
ModemManager -V

ModemManager (and NetworkManager) are continuously developed for better compatibility with the cellular devices, therefore it is recommend to use a recent version of the tools and in case of problem situations, evaluate the latest versions from source and check the mailing list archives for possible discussions on the problem experienced.

Keep in mind that NetworkManager and ModemManager projects are not directly developed or driven by the cellular device vendors and the compatibility with the device you aim to use can be limited. Some vendors contribute with code to make their devices fully compatible, while others don't. Many cellular devices can be set to expose standardized types of USB network interface and control channel such as MBIM interface by USB-IF or the Qualcomm proprietary interface QMI that ModemManager will try to identify, and often manage to work successfully with but there are exceptions also.

Both NetworkManager and ModemManager have command line interfaces (nmcli and mmcli respectively) where you can interact with the management tools.

Relate to the following FAQ if you want more details for using ModemManager only to configure and control the cellular device but manually establish, maintain the connection and network interface IP address details.
How-to guide: control and set up a data connection in Linux using ModemManager as connection manager?

Have ModemManager list all the cellular device it has detected. Here we use the Alcatel IK41 series with MBIM interface in this example:
mmcli --list-modems
/org/freedesktop/ModemManager1/Modem/0 [Alcatel] Mobilebroadband

General details and status of them modem can be listed with "--modem" option.
mmcli --modem=0
-----------------------------
General | dbus path: /org/freedesktop/ModemManager1/Modem/0
| device id: 998e478c5b14c75e16bffe6abaacabef22fb2f5b
-----------------------------
Hardware | manufacturer: Alcatel
| model: Mobilebroadband
| firmware revision: MPSS.JO.2.0.2.c1.7-00004-9607_
| carrier config: default
| h/w revision: 0
| supported: gsm-umts, lte
| current: gsm-umts, lte
| equipment id:
-----------------------------
System | device: /sys/devices/pci0000:00/0000:00:14.0/usb3/3-1
| drivers: option1, cdc_mbim
| plugin: Generic
| primary port: cdc-wdm0
| ports: cdc-wdm0 (mbim), ttyUSB0 (at), ttyUSB2 (at), wwan0 (net),
| ttyUSB1 (qcdm)
-----------------------------
Status | lock: sim-pin
| unlock retries: sim-pin (3)
| state: locked
| power state: on
| signal quality: 0% (cached)
-----------------------------
Modes | supported: allowed: 2g; preferred: none
| allowed: 3g; preferred: none
| allowed: 4g; preferred: none
| allowed: 2g, 3g; preferred: 3g
| allowed: 2g, 3g; preferred: 2g
| allowed: 2g, 4g; preferred: 4g
| allowed: 2g, 4g; preferred: 2g
| allowed: 3g, 4g; preferred: 3g
| allowed: 3g, 4g; preferred: 4g
| allowed: 2g, 3g, 4g; preferred: 4g
| allowed: 2g, 3g, 4g; preferred: 3g
| allowed: 2g, 3g, 4g; preferred: 2g
| current: allowed: 2g, 3g, 4g; preferred: 2g
-----------------------------
Bands | supported: egsm, dcs, pcs, g850, utran-1, utran-8, eutran-1, eutran-3,
| eutran-7, eutran-8, eutran-20, eutran-28
| current: egsm, dcs, pcs, g850, utran-1, utran-8, eutran-1, eutran-3,
| eutran-7, eutran-8, eutran-20, eutran-28
-----------------------------
IP | supported: ipv4, ipv6, ipv4v6
-----------------------------
SIM | dbus path: /org/freedesktop/ModemManager1/SIM/0

Check that the cellular device is managed by NetworkManager by not having state "unmanaged" listed for it.
nmcli device status
DEVICE TYPE STATE CONNECTION
cdc-wdm0 gsm disconnected --
enp3s0 ethernet unmanaged --
lo loopback unmanaged --

Now you should create a connection profile in NetworkManager for your specific network carrier and SIM card with the "nmcli connection add" command:
For example:
nmcli connection add type gsm ifname '*' con-name '3-sweden' apn 'data.tre.se' connection.autoconnect yes gsm.pin 0000

- type is gsm for all typical cellular connections unless it is of cdma type.
- ifname is the control interface name, in this case cdc-wdm0, wildcard can be used also to have it autoselect.
- con-name is the profile name you want to give it.
- apn is provided by your network carrier and tells the modem what attach point it should use for the data connection.
- connection.autoconnect set to yes will make NetworkManager always try to auto connect and maintain this profile connection.
- gsm.pin lets you provide a pin code for the SIM card, that NetworkManager will try to use if PIN check is enabled for SIM card.

There are several additional commands and attributes available such as username and password settings for the APNs etc. Refer to the NetworkManager help and manual pages for full details on the commands.

If successful you should receive a reply similar to this one:
Connection '3-sweden' (cad6fcbf-2cb1-4796-b7e6-67b9f9635aef) successfully added.

You can check the status now by command:
nmcli device status
DEVICE TYPE STATE CONNECTION
cdc-wdm0 gsm connected 3-sweden
enp3s0 ethernet unmanaged --
lo loopback unmanaged --

Where connected should be listed as state if the connection establishment was successful.

If the connection is not successful or you want more details about the device and connection you can check commands:

You can list the current status with command:
nmcli radio
WIFI-HW WIFI WWAN-HW WWAN
enabled enabled enabled enabled

nmcli device show cdc-wdm
GENERAL.DEVICE: cdc-wdm0
GENERAL.TYPE: gsm
GENERAL.HWADDR: (unknown)
GENERAL.MTU: 1500
GENERAL.STATE: 100 (connected)
GENERAL.CONNECTION: 3-sweden
GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveConnection/18
IP4.ADDRESS[1]: 2.68.73.130/30
IP4.GATEWAY: 2.68.73.129
IP4.ROUTE[1]: dst = 2.68.73.128/30, nh = 0.0.0.0, mt = 700
IP4.ROUTE[2]: dst = 0.0.0.0/0, nh = 2.68.73.129, mt = 700
IP4.DNS[1]: 80.251.201.177
IP4.DNS[2]: 80.251.201.178
IP6.ADDRESS[1]: 2a02:aa1:1017:6d11:1060:3dff:feac:e92f/64
IP6.ADDRESS[2]: 2a02:aa1:1017:6d11:6474:7254:7b72:eb09/64
IP6.GATEWAY: 2a02:aa1:1017:6d11:21e6:9049:6cfb:8ac3
IP6.ROUTE[1]: dst = ff00::/8, nh = ::, mt = 256, table=255
IP6.ROUTE[2]: dst = 2a02:aa1:1017:6d11::/64, nh = ::, mt = 700
IP6.ROUTE[3]: dst = ::/0, nh = fe80::21e6:9049:6cfb:8ac3, mt = 1024
IP6.ROUTE[4]: dst = 2a02:aa1:1017:6d11::/64, nh = ::, mt = 256
IP6.ROUTE[5]: dst = ::/0, nh = 2a02:aa1:1017:6d11:21e6:9049:6cfb:8ac3, mt = 700
IP6.DNS[1]: 2a02:aa0::55
IP6.DNS[2]: 2a02:aa0::56

nmcli connection show
NAME UUID TYPE DEVICE
3-sweden e946017f-2e9c-477b-89ad-4c31e7331d65 gsm cdc-wdm0

Ifconfig should now show the related IP address details already set to the network interface by NetworkManager:
ifconfig
wwan0: flags=4291 mtu 1500
inet 2.68.73.130 netmask 255.255.255.252 broadcast 2.68.73.131
inet6 2a02:aa1:1017:6d11:6474:7254:7b72:eb09 prefixlen 64 scopeid 0x0
inet6 2a02:aa1:1017:6d11:1060:3dff:feac:e92f prefixlen 64 scopeid 0x0
ether 12:60:3d:ac:e9:2f txqueuelen 1000 (Ethernet)
RX packets 186 bytes 10886 (10.8 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 5 bytes 480 (480.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

You can now for example test the connection over the network interface by sending ping requests.
Testing IPV4 connection:
ping -4 -I wwan0 8.8.8.8
PING 8.8.8.8 (8.8.8.8) from 2.68.73.130 wwan0: 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=118 time=55.8 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=118 time=45.4 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=118 time=42.9 ms
--- 8.8.8.8 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 42.918/48.053/55.845/5.601 ms

Testing IPV6 connection: (if your cellular device, network subscription and APN supports it)
ping -6 -I wwan0 2600::
PING 2600::(2600::) from 2a02:aa1:1017:6d11:1060:3dff:feac:e92f wwan0: 56 data bytes
64 bytes from 2600::: icmp_seq=1 ttl=46 time=172 ms
64 bytes from 2600::: icmp_seq=2 ttl=46 time=171 ms
64 bytes from 2600::: icmp_seq=3 ttl=46 time=169 ms
64 bytes from 2600::: icmp_seq=4 ttl=46 time=168 ms
--- 2600:: ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3004ms
rtt min/avg/max/mdev = 167.921/170.037/172.272/1.651 ms

The connection is successful and automatic reconnect is working when testing to unplug and plug in the device again.
For additional configurations, commands and available attributes, please relate to the manual pages for NetworkManager and ModemManager.

Troubleshooting logs:
NetworkManager and ModemManager write log messages to the Linux syslog file /var/log/syslog.
In case of problems with establishing a cellular data connection, please copy the logfile after the problem have appeared and include it in a Techship technical support ticket.

In some situations more detailed debug logs are needed, these can be acquired by changing the log levels for NetworkManager and ModemManager and run them manually.

To capture debug logs, please first disable and stop the normal services:
systemctl stop NetworkManager ModemManager
systemctl disable NetworkManager ModemManager

Run them manually in background with debug level set:
/usr/sbin/ModemManager --log-level=DEBUG &> /dev/null &
/usr/sbin/NetworkManager --log-level=DEBUG &

Reproduce the cellular data connection problem.
Once completed, kill the processes:
killall -TERM NetworkManager ModemManager

Copy the relate messages in syslog to a mm-nm-sys-debug.log logfile:
grep -E 'ModemManager|NetworkManager|systemd|dbus-daemon|dhclient' /var/log/syslog > mm-nm-sys-debug.log

Activate and start the services again:
systemctl enable NetworkManager ModemManager
systemctl start NetworkManager ModemManager

Include the mm-nm-sys-debug.log in a technical support ticket at Techship.com where you describe the issue in details and include other relevant information also such as kernel version, ModemManager and NetworkManager versions, dmesg log etc.

Related products
Huawei ME909u-521 - EU/ASIA
Huawei ME909u-521 Mini PCI Express - EU/ASIA
Huawei ME909u-523D Mini PCI Express - US - AT&T
Huawei MS2131i-8 USB-stick
Huawei ME909s-821 mPCIe
Huawei ME909s-821 LGA
Huawei ME909s-120 mPCIe EU
Huawei ME909s-120 LGA EU
SimCom SIM7100E LTE SMT EU
SIMCom SIM7100A LTE SMT US
SimCom SIM7100E LTE mPCIe EU
SimCom SIM7100A LTE mPCIe US
SimCom SIM7100C LTE mPCIe China
SimCom SIM7230 LTE mPCIe EU
SimCom SIM7100E LTE mPCIe SIM
SIMCom SIM7500A LTE SMT US
SIMCom SIM7500E LTE SMT EU
SIMCom SIM7500E LTE mPCIe EU
SIMCom SIM7500SA LTE mPCIe Audio
Telit HE910-D-SIM HSPA+, miniPCIe, SIM card holder
Telit LM940A11 LTE CAT-11, GPS, mPCIe
Telit LE910-EU V2 LTE CAT-4, mPCIe
Telit LE910-SV V2 LTE CAT-4, Verizon, mPCIe
Telit LE910-NA V2 LTE CAT-4, AT T, TM, mPCIe
Telit LE910-AU V2 LTE CAT-4, Telstra, mPCIe
Telit HE910-GL SIM UMTS, miniPCIe, SIM card holder
Telit LE910-NA1 LTE CAT-1 LGA
Telit LE910-EU1 LTE CAT-1 LGA
Telit LE910-SV1 LTE CAT-1 LGA
Telit LE910-EU V2 LTE CAT-4 LGA
Telit LE910-NA V2 LTE CAT-4 LGA
Huawei MS2372h-153 LTE USB Dongle EU
SIMCom SIM7600E-H LTE SMT EU
SIMCom SIM7600E-H LTE CAT-4 mPCIe EU
SIMCom SIM7600E-H LTE CAT-4 mPCIe SIM
Huawei MS2372h-517 LTE USB Dongle US
SIMCom SIM7600A-H LTE CAT-4 mPCIe Audio
Huawei MS2372h-607 LTE USB Dongle Asia
Telit LE910-NA V2 LTE CAT-4, S.SKU, mPCIe
SIMCom SIM7600SA-H LTE CAT-4 mPCIe
Simcom SIM7600JC-H LTE CAT-4 mPCIe
SIMCom SIM7600A-H LTE CAT-4 mPCIe US
SIMCom SIM7600V-H LTE CAT-4 mPCIe Audio Verizon
Fibocom NL668-EAU mPCIe LTE CAT-4
SIMCom SIM7600SA-H LTE CAT-4 mPCIe with SIM holder
SIMCom SIM7600E LTE CAT-1 mPCIe
SIMCom SIM7600SA LTE CAT-1 mPCIe
SIMCom SIM7600E-H LTE CAT 4 -mPCIE with Audio
Fibocom NL678-E mPCIe LTE CAT-6
SIMCom SIM7600A-H LTE CAT-4 mPCIe-SIM
SIMCom SIM7600CE-T LTE CAT-4 mPCIe CN
Sierra Wireless MC-WP7607 LTE CAT-4 mPCIe
Telit LE910C4-NF LTE CAT-4 mPCIe
Telit LE910-NA V2 LTE CAT-4, S.SKU LGA
Telit LE910B1-NA S.SKU LTE Cat-1 LGA
Telit LE910C1-NS LTE CAT-1 Sprint mPCIe
Telit LE910-SVL LTE CAT-1
Telit HE910-GL HSPA+ LGA
SIMCom SIM7906E LTE CAT-6 M.2
SIMCom SIM7906E LTE CAT-6 mPCIe
Telit LE910-SVG LTE CAT-3 LGA
Telit HE910-NAR HSPA LGA
Telit HE910-D HSPA+ LGA
Telit LE910C1-NA LTE CAT-1 AT&T LGA
Telit LE910C1-NS LTE CAT-1 Sprint LGA
Telit LE910-NAG LTE CAT-3 AT&T LGA
Telit LE910-SVG LTE CAT-3 mPCIe
Telit LE910-NVG LTE CAT-3 LGA
SIMCom SIM7600G-H LTE CAT-4 mPCIe
Telit LE910-NA1 S.SKU LTE Cat-1 LGA
Telit LE910-JN1 LTE Cat-1 LGA
Telit LE910C1-AP
Telit LE910C1-EU LTE CAT-1 LGA
Telit LE910B1-NA
Telit LE910B1-SA
Telit LE910-AU V2
Telit LE910-SV V2
Telit LE910B4-NA
Telit LE910C4-NF LTE Cat-4 LGA
Telit LE910-SV1 LTE Cat-1 mPCIe
Telit LE910-EU1 LTE Cat-1 mPCIe
Telit LE910-JN1 LTE Cat-1 mPCIe
Telit LE910-NA1 LTE Cat-1 mPCIe
Telit LE910C1-AP LTE CAT-1 mPCIe
Telit LE910C1-EU LTE CAT-1 mPCIe
Telit LE910C4-EU LTE CAT-4 mPCIe
Telit LE910C4-EU LTE CAT-4 mPCIe SIM
Telit LE910C1-NF S.SKU LTE CAT-1 LGA
Telit LM940A11, HW Rev. 2, LTE CAT-11, GPS, mPCIe
Telit LE910C4-NF LTE CAT-4 mPCIe SIM
SIMCom SIM7912G LTE CAT-12 M.2
Telit LM960A18 LTE CAT-18 mPCIe
Telit LE910C1-EU LTE CAT-1 mPCIe SIM
Telit LE910C1-AP LTE CAT-1 mPCIe SIM
Telit LE910C1-NF LTE CAT-1 mPCIe
Telit LE910C4-AP LTE CAT-4 mPCIe SIM
Telit LE910C4-CN LTE CAT-4 mPCIe
Telit LE910C4-CN LTE CAT-4 mPCIe SIM
SIMCom SIM7600V-H LTE CAT-4 M.2 Verizon
Sierra Wireless EM7411 NAM
Sierra Wireless MC7411 NAM
Sierra Wireless EM7421 EMEA/APAC
Sierra Wireless MC7421 EMEA/APAC
Sierra Wireless EM7431 Japan
Sierra Wireless MC7431 Japan
Huawei MS2372h-158 LTE USB Dongle EU
Huawei MS2372h-518 LTE USB Dongle US
Huawei MS2372h-608 LTE USB Dongle Asia
Huawei ME909s-120p V2 mPCIe
Huawei ME909s-120 V2 LGA
Telit LE910C1-SA CAT-1 LGA
SIMCom SIM7600E LTE CAT-1 SMT
Telit LE910C1-NF S.SKU LTE CAT-1 mPCIe SIM
Sierra Wireless MC-WP7610 LTE CAT-4 mPCIe
SIMCom SIM7600G-H R2 LTE Cat-4 mPCIe
SIMCom SIM7600NA-H LTE Cat-4 mPCIe
Telit LE910C1-LA LTE CAT-1 mPCIe
Telit LE910C4-EU LTE CAT-4 LGA
Sierra Wireless EM7690 LTE CAT-20
Sierra Wireless MC7455 mPCIe
Sierra Wireless MC7430
Sierra Wireless EM7565 M.2
Sierra Wireless EM7430 M.2
Sierra Wireless EM7511 M.2
Telit LE910C1-EUX LTE CAT-1 mPCIe
SIMCom SIM7600G-H R2 LTE CAT-4 SMT
Sierra Wireless, EM7455 M.2
SIMCom SIM7600G R2 LTE CAT-1 SMT
SIMCom SIM7600SA LTE CAT-1 SMT
Alcatel IK41VE1 LTE USB Dongle EU
Alcatel IK41CQ LTE USB Dongle APAC
Alcatel IK41UD LTE USB Dongle LATAM
Alcatel IK41UC LTE USB Dongle NA
Telit LE910C4-LA LTE CAT-4 mPCIe
Telit LE910C4-AP LTE CAT-4 LGA
SIMCom SIM7600G-H R2 LTE CAT-4 M.2
Telit LE910C1-EUX LTE Cat-1 LGA
Telit LE910C1-SAX LTE Cat-1 LGA
Telit LE910C1-SVX LTE Cat-1 LGA
SIMCom SIM7600G-H R2 mPCIe SIM
Telit LE910C4-LA LTE CAT-4 mPCIe w/ Simholder
SIMCom SIM7600E-H R2 LTE CAT-4 mPCIe EU
Telit LE910C1-WWX LTE Cat-1 mPCIe
Telit LE910C4-WWX LTE Cat-4 mPCIe
Telit LE910C1-WWX LTE Cat-1 LGA
Telit LE910C4-WWX LTE Cat-4 LGA
Question

How to collect initial diagnostics data and logs for Huawei cellular modules needed when requesting Techship technical support?

Solution

In order to troubleshoot and solve a technical problem, we ask you to please provide information about your system and logs from the related Huawei module when creating a technical support ticket.

Problem description of what exact problem is and in what precise situations present

Describe the host system:
-Hardware (system board, peripherals...)
-Operating system and detailed versions (E.g. Windows, Linux release, kernel...)
-Drivers and driver versions

Identify the precise details of cellular module found on label:
-Model
-SKU/BOM or P/N code
(For RMA returns the IMEI number is required also)

If you are running on a Linux based system, please capture the terminal logs bellow:
uname -a
lsusb
lsusb -t
ifconfig -a
ls -l /dev/serial/by-id
ls -l /sys/bus/usb-serial/devices
dmesg

The logs from module firmware can be acquired by accessing one of the USB enumerated serial (COM) interfaces accepting AT commands. (In Windows this is the PC UI serial interface). Send the following commands to module and capture the text output and include them when creating the the technical support ticket.
ATI
ATE1
AT+CMEE=2
AT+CFUN?
AT+CPIN?
AT^SYSINFOEX
AT^SYSCFGEX?
AT^HCSQ?
AT+CREG?
AT+CGREG?
AT+CEREG?
AT+COPS?
AT+CGDCONT?
AT^AUTHDATA?
AT+CGCONTRDP
AT+CGPADDR
AT+CGATT?
AT+CGACT?
AT^NDISDUP?
AT^NDISSTATQRY?
AT^DHCP?
AT^DHCPV6?

AT^CHIPTEMP?
AT^THERMFUN?
AT^FOTAMODE?

The support ticket can be created after login at: https://techship.com/technical_support/

Question

How to change USB mode from storage to cellular device for Huawei MS2372-series USB 4G/LTE cellular sticks in Linux systems?

Solution

The Huawei cellular 4G/LTE USB-Sticks will show up as USB mass storage devices when first loaded and enumerated in Linux systems.

lsusb
Bus 001 Device 004: ID 12d1:14fe Huawei Technologies Co., Ltd. Modem (Mass Storage Mode)

lsusb -t
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/8p, 480M
|__ Port 4: Dev 6, If 0, Class=Mass Storage, Driver=usb-storage, 480M

This mode is not the operational mode to use the device in for cellular connectivity, therefore a USB mode switch is necessary to perform.
It can easily be done with the tool usb_modeswitch in Linux.

You can download and install it from:
http://www.draisberghof.de/usb_modeswitch/

Or install it e.g. through a package manager if your Linux distribution supports one:
apt-get install usb-modeswitch

Once you have it installed it, open the file 40-usb_modeswitch.rules with a text editor, e.g:
nano /lib/udev/rules.d/40-usb_modeswitch.rules

Ensure that you find:
# Generic entry for most Huawei devices, excluding Android phones
ATTRS{idVendor}=="12d1", ATTRS{manufacturer}!="Android", ATTR{bInterfaceNumber}=="00", ATTR{bInterfaceClass}=="08", RUN+="usb_modeswitch '/%k'"

If not, add the following entry bellow and save the file:
# Huawei MS2372
ATTR{idVendor}=="12d1", ATTR{idProduct}=="14fe", RUN+="usb_modeswitch '/%k'"


Create a new empty text file in the folder /etc/usb_modeswitch.d/ called 12d1:14fe e.g. as bellow:
nano /etc/usb_modeswitch.d/12d1:14fe

Paste in the following configuration lines in the file:
# Huawei MS2372 series
TargetVendor=0x12d1
TargetProductList="1506"
HuaweiNewMode=1
NoDriverLoading=1

Now save the file.

You can run the command bellow to update the udev rules for what system should do when a new device of this kind is detected:
udevadm control --reload-rules && udevadm trigger

If you restart the system or unplug and plug in the MS2372 series USB-stick again now, USB mode switching should be done automatically, and the device appear in the correct mode in the system as bellow:
lsusb
Bus 001 Device 004: ID 12d1:1506 Huawei Technologies Co., Ltd. Modem/Networkcard
lsusb -t
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/8p, 480M
|__ Port 4: Dev 4, If 0, Class=Vendor Specific Class, Driver=option, 480M
|__ Port 4: Dev 4, If 1, Class=Vendor Specific Class, Driver=option, 480M
|__ Port 4: Dev 4, If 2, Class=Vendor Specific Class, Driver=option, 480M
|__ Port 4: Dev 4, If 3, Class=Vendor Specific Class, Driver=huawei_cdc_ncm, 480M

If this is not occurring correctly, usb_modeswitch debug logging can be turned on by editing the usb_modeswitch.conf file located in /etc/:
nano /etc/usb_modeswitch.conf

The log file can be found in:
/var/log/usb_modeswitch.log

Please note that all Linux command line commands were executed with elevated / root privileges in this example.

Question

How to activate the data connection for Huawei cellular USB-sticks (MS2372 series) using the NCM network interface exposed by module in Linux?

Solution

The first step is to assure that the Huawei cellular module is properly loaded in the Linux system. Huawei modules are most often automatically detected in recent Linux kernels, this can be verified in different ways, e.g. by commands bellow:

The lsusb command shows what physical USB devices are detected in the Linux operating system:
lsusb
Bus 001 Device 017: ID 12d1:1506 Huawei Technologies Co., Ltd. Modem/Networkcard

The lsusb -t command shows the USB endpoints exposed by the detected USB devices and the related drivers loaded for them:
lsusb -t
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/8p, 480M
|__ Port 4: Dev 17, If 0, Class=Vendor Specific Class, Driver=option, 480M
|__ Port 4: Dev 17, If 1, Class=Vendor Specific Class, Driver=option, 480M
|__ Port 4: Dev 17, If 2, Class=Vendor Specific Class, Driver=option, 480M
|__ Port 4: Dev 17, If 3, Class=Vendor Specific Class, Driver=huawei_cdc_ncm, 480M

If the device shows up as a USB mass storage device please see FAQ linked bellow on how to change USB mode:
lsusb
Bus 001 Device 004: ID 12d1:14fe Huawei Technologies Co., Ltd. Modem (Mass Storage Mode)

Techship.com: How to change USB mode from storage to cellular device for Huawei MS2372-series USB 4G/LTE cellular sticks in Linux systems?
https://techship.com/faq/how-to-change-usb-mode-from-storage-to-cellular-device-for-huawei-ms2372-series-usb-4g-lte-cellular-sticks-in-linux-systems/


The dmesg lists all the driver loading logs since system boot up:
dmesg
usb 1-4: new high-speed USB device number 16 using xhci_hcd
usb 1-4: New USB device found, idVendor=12d1, idProduct=14fe, bcdDevice= 1.02
usb 1-4: New USB device strings: Mfr=1, Product=2, SerialNumber=3
usb 1-4: Product: HUAWEI_MOBILE
usb 1-4: Manufacturer: HUAWEI_MOBILE
usb 1-4: SerialNumber: 0123456789ABCDEF
usb-storage 1-4:1.0: USB Mass Storage device detected
scsi host2: usb-storage 1-4:1.0
scsi 2:0:0:0: CD-ROM HUAWEI Mass Storage 2.31 PQ: 0 ANSI: 2
sr 2:0:0:0: Power-on or device reset occurred
sr 2:0:0:0: [sr0] scsi-1 drive
sr 2:0:0:0: Attached scsi CD-ROM sr0
sr 2:0:0:0: Attached scsi generic sg0 type 5
usb 1-4: USB disconnect, device number 16
usb 1-4: new high-speed USB device number 17 using xhci_hcd
usb 1-4: New USB device found, idVendor=12d1, idProduct=1506, bcdDevice= 1.02
usb 1-4: New USB device strings: Mfr=1, Product=2, SerialNumber=0
usb 1-4: Product: HUAWEI_MOBILE
usb 1-4: Manufacturer: HUAWEI_MOBILE
huawei_cdc_ncm 1-4:1.3: resetting NTB format to 16-bit
huawei_cdc_ncm 1-4:1.3: MAC-Address: 00:1e:10:1f:00:00
huawei_cdc_ncm 1-4:1.3: setting rx_max = 16384
huawei_cdc_ncm 1-4:1.3: NDP will be placed at end of frame for this device.
huawei_cdc_ncm 1-4:1.3: cdc-wdm0: USB WDM device
huawei_cdc_ncm 1-4:1.3 wwan0: register 'huawei_cdc_ncm' at usb-0000:00:15.0-4, Huawei CDC NCM device, 00:1e:10:1f:00:00
usbcore: registered new interface driver option
usbserial: USB Serial support registered for GSM modem (1-port)
option 1-4:1.0: GSM modem (1-port) converter detected
usb 1-4: GSM modem (1-port) converter now attached to ttyUSB0
option 1-4:1.1: GSM modem (1-port) converter detected
usb 1-4: GSM modem (1-port) converter now attached to ttyUSB1
option 1-4:1.2: GSM modem (1-port) converter detected
usb 1-4: GSM modem (1-port) converter now attached to ttyUSB2


The command ifconfig -a will list all network interfaces loaded in the Linux system, the cellular module interface can be named differently depending on the distribution used but generally named wwan0 initially.
ifconfig -a
wwan0: flags=4098 mtu 1500
ether 00:1e:10:1f:00:00 txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0


the command ls can list the USB serial interfaces detected:
ls /dev/ttyUSB*
/dev/ttyUSB0 /dev/ttyUSB1 /dev/ttyUSB2

Once this far we can now start communicate with the cellular module over AT commands. There are different applications available in Linux that enables manual communication with serial interfaces:

minicom -D /dev/ttyUSB2
socat - /dev/ttyUSB2,crnl
etc.

Basic AT commands for information and how to set up the data connection:

Print general information about cellular module and firmware versions, IMEI etc.
ATI

Enter the SIM PIN code:
AT+CPIN=1234

Set the operator APN name to use for the data connectivity
AT+CGDCONT=1,"IP","m2m.tele2.com"

Activate the data connection for the network interface exposed to host system with the APN profile previously created.
AT^NDISDUP=1,1,

Once: ^NDISSTAT:1,,,"IPV4" is received you now have a active data connection to the network operator.

Now you can use a DHCP client in your host system to request the IP address from the cellular network, e.g. by using any of the following one:
udhcpc --interface=wwan0 -q
dhclient -v wwan0

If successful you now have a working cellular network data connection in your Linux system.

ifconfig wwan0
wwan0: flags=4163 mtu 1500
inet 100.77.146.21 netmask 255.255.255.252 broadcast 100.77.146.23
inet6 fe80::21e:10ff:fe1f:0 prefixlen 64 scopeid 0x20
ether 00:1e:10:1f:00:00 txqueuelen 1000 (Ethernet)
RX packets 37 bytes 4286 (4.2 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 27 bytes 4474 (4.4 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

It can be verified e.g. by dong ping requests over the dedicated network interface:
ping -I wwan0 8.8.8.8

PING 8.8.8.8 (8.8.8.8) from 100.77.146.21 wwan0: 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=120 time=147 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=120 time=57.6 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=120 time=51.5 ms
64 bytes from 8.8.8.8: icmp_seq=4 ttl=120 time=49.6 ms
^C
--- 8.8.8.8 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3005ms
rtt min/avg/max/mdev = 49.656/76.500/147.083/40.859 ms

Additional details on how the AT commands can be used to enter APN credentials, initial LTE attach APN information etc. can be found in the AT commands manual