LE910C4FD12T127200
Supplier number:
Telit LE910C4-NFD is intended for the North American market.
It is 3GPP release 10 compliant and comes with LTE B14 which is dedicated for public safety and first responder networks.
Key benefits
• Best-in class 3GPP rel10 platform
• MTC features ready according to 3GPP Rel.12
• Easy to integrate with peripherals and actuators using USB 2.0 HS, UART and user definable GPIOs
• Internet friendly with integrated TCP/IP and UDP/IP stacks
• Simple drop-in migration and technology design reuse path to 2G and 3G with any xE910 module
• Over-the-Air firmware update
Datasheet for the Telit LE910Cx LTE LGA modules.
AT Command Guide for the LE910Cx over LWM2M protocol
User Guide for the Telit WHQL Windows 11 Drivers Installer version 11.02.0001 installation
User Guide for the Telit WHQL Windows 10 Drivers Installer version 2.20.0001 installation
IP Easy User guide for Telit modules
SSL/TLS user guide for Telit modules.
This archive contains the Windows 11 WHQL certified Telit module drivers for x64 system platforms.
Microsoft Windows 11
WHQL certified
This archive contains the Windows 11 WHQL certified Telit module drivers for x64 system platforms.
Microsoft Windows 11
WHQL certified
This archive contains the Windows 10 WHQL certified Telit module drivers for both x86 and x64 system platforms.
Microsoft Windows 10
WHQL certified
TelitVeiw is a tool for evaluating and to get familiar with the features and performances of Telit’s GNSS modules. This download also includes the Release document and User Guide.
Windows
This archive contains the Telit LE910C1-NFD TFI firmware updater tool and related release notes.
This archive contains the Telit LE910C1-NFD TFI firmware updater tool and related release notes.
How to configure and save a "User Profile" using AT-commands on selected Telit modems.
Sometimes you might want to store some settings to be automatically loaded on startup, without having to configure your modem or make a script.
Fortunately Telit has made it easy to do this, by creating a "User Profile", and this FAQ will guide you through on how to set this up.
For this example, we'll make some configurations to the GPS settings of the module, but you can choose whichever settings you like.
First, send the AT command:
AT&V0?
You will get a long list with info, but the one I want you to check is the last one:
DEFAULT PROFILE : &Y0=user profile 1
Make note of the "Y0" - This might be different on your setup, but don't worry, we'll change this in the next step.
Send the following AT command:
AT&P0
This sets the modem to a custom user profile. (There are 2 user profiles available, "0" and "1". We are using "0" here.)
Now check that we have updated the profile with the AT command:
AT&V0?
And now it should say at the bottom:
DEFAULT PROFILE : &P0=user profile 1
Great! Now we're editing our user profile, so go ahead and type your settings:
AT$GPSP=1
AT$GPSANTPORT=3
AT$GPSACP
AT$GPSNMUN=1
AT$GPSNMUN=1,1,1,1,1,1,1
AT$GPSSAV
To save these settings, it's not enough to only type "AT$GPSSAV", we need to save some of the settings to our profile!
Type the following AT command to do a "save profile":
AT&W
Now do a reboot with:
AT#REBOOT
And when it's up and running again type:
AT$GPSNMUN?
And it should say:
$GPSNMUN: 1,1,1,1,1,1,1
More info regarding the different modes and settings can be found in the AT Command Guide here.
How to step by step set up a data connection over QMI interface using qmicli and in-kernel driver qmi_wwan in Linux?
Several cellular modules based on Qualcomm chipsets implements the Qualcomm Qualcomm MSM (QMI) Interface.
There is a open source Linux in-kernel driver supporting this interface and it is called qmi_wwan. This driver can be used together with ModemManager and NetworkManager to automate connection establishment and as a connection manager.
The library libqmi which ModemManager uses can also be used to communicate in a more direct way with the cellular devices over the QMI interface and to step by step do necessary configurations and trigger the data connection over the cellular network.
A selection of cellular modules can be supported:
Using RAW IP kernel configuration:
Sierra Wireless MC74 series, EM74 series, EM75** series
Telit LM940, LM960
Telit LN94x series (requires USB mode switch)
Simcom SIM7500 series, SIM7600 series, SIM7600 -H series
(can be supported in qmi_wwan driver from kernel 4.18 or by applying the following one line qmi_wwan source code patch on previous kernel builds: qmi_wwan: apply SET_DTR quirk to the SIMCOM shared device ID)
Using 802.3 IP framing kernel configuration:
Simcom SIM7100 series
Sierra Wireless MC73**/EM73** series
ModemManager combined with NetworkManager will detect the cellular modules automatically in most cases, please refer to their respective documentations on how to establish a data connection using them.
Example on how to set up the data connection step by step manually with libqmi:
First install the libqmi Linux library e.g. by using your system package manager like apt or preferably latest version from source on the Freedesktop pages for libqmi project: https://www.freedesktop.org/wiki/Software/libqmi/
Verify that you have the Linux in-kernel qmi_wwan driver installed and attached for the cellular modules QMI interface over USB:
lsusb -t
Can look e.g. like this:
...
|__ Port 1: Dev 3, If 2, Class=Vendor Specific Class, Driver=qmi_wwan, 480M
...
If the driver is not correctly loaded, please verify that the module is set to expose the correct USB endpoints configuration toward the host system and that you have followed the provided guides from the cellular module vendors, regarding how to implement the module in Linux.
Libqmi expose a command line interface that can be used to communication with the module over QMI interface.
The qmicli help will output information about all commands available:
qmicli --help-all
The cellular modules QMI control interface are usually named cdc-wdm* e.g.:
qmicli --device=/dev/cdc-wdm0
In order to allow parallel commands to be execute on the module over QMI interface, it is recommended to use the libqmi proxy function. This can be done by including the attribute -p or --device-open-proxy in every qmicli command.
If a SIM pin is required for the SIM card, use command bellow:
qmicli --device=/dev/cdc-wdm0 -p --dms-uim-verify-pin=PIN,1234
The name of the related network interface to QMI control channel can be acquired with the command:
qmicli --device=/dev/cdc-wdm0 --device-open-proxy --get-wwan-iface
The most recent Qualcomm based cellular modules only expose QMI interfaces that can support Raw-IP mode. Sierra Wireless EM/MC74 and EM75 series modules, Telit LM940 and LN940 series for example require this.
Check what IP-mode the host system is configured for:
qmicli --device=/dev/cdc-wdm0 --get-expected-data-format
Check what IP-mode the cellular module require:
qmicli --device=/dev/cdc-wdm0 --device-open-proxy --wda-get-data-format
to change qmi_wwan driver to use Raw-IP.
Disable the network interfaces exposed by the cellular module:
ip link set dev wwan0 down
Trigger the Raw-IP support:
echo Y > /sys/class/net/wwan0/qmi/raw_ip
Enable the network interfaces again:
ip link set dev wwan0 up
Now the data connection in the cellular module can be activated e.g. with a IPv4 type configuration on the specified APN:
qmicli --device=/dev/cdc-wdm0 --device-open-proxy --wds-start-network="ip-type=4,apn=data.tre.se" --client-no-release-cid
Once "Network started" is displayed, you can send a DHCP request on the network interface.
Please note that not all DHCP clients in Linux can support Raw-IP format, udhcpc however support this for IPv4 over Raw-IP.
udhcpc -q -f -n -i wwan0
Disconnect the data bearer and data connection over QMI by command bellow and providing the network handle and CID returned at connection activation:
qmicli --device=/dev/cdc-wdm0 --device-open-proxy --wds-stop-network=NETWORK_HANDLE --client-cid=CID
Additional useful commands:
Request module manufacturer:
qmicli --device=/dev/cdc-wdm0 --device-open-proxy --dms-get-manufacturer
Get module model:
qmicli --device=/dev/cdc-wdm0 --device-open-proxy --dms-get-model
Get firmware version:
qmicli --device=/dev/cdc-wdm0 --device-open-proxy --dms-get-revision
Get module IDs (IMEI etc.):
qmicli --device=/dev/cdc-wdm0 --device-open-proxy --dms-get-ids
Get SIM card status:
qmicli --device=/dev/cdc-wdm0 --device-open-proxy --uim-get-card-status
Recent cellular modules like Sierra Wireless EM7565 require at least libqmi V1.20. Check version with command:
qmicli --version
If the connection was successfully set up established, you now have data connectivity. A ping to a remote server using the cellular network interface can for example prove this:
ping -I wwan0 8.8.8.8
The ifconfig Linux tool can show the current details for the network interface:
ifconfig wwan0
libqmi is well integrated and supported in ModemManager tool for Linux. ModemManager again is well integrated and supported when using NetworkManager tool in Linux. Please note however that these two tools expect the cellular module interfaces to only be used by them so if you manually want to use the libqmi library or AT commands interfaces, please turn off/disable ModemManager and NetworkManager first.
The libqmi is a generic open source library for Linux systems and QMI protocol from Qualcomm, therefor there are commands only working on selected devices and not necessarily supported on the device you use, resulting in an error message.
How do I select specific bands on my Telit module?
The AT command AT#BND can be used to select what specific GSM, UMTS and LTE bands that you want to be active on your module.
If you are experiencing poor DL or UL speeds, one solutions may be to only select the bands that you know are available, which can increase the transfer speeds.
When entering AT#BND? it will return a reply looking like (for example):
AT#BND?
#BND: 0,18,A7E0BB0F38DF,42 (for Generic)
OK
(Please note that the following examples are when using a LM960A18)
The "0" is referring to GSM bands, "18" to UMTS bands, "A7E0BB0F38DF" to LTE bands and "42" to LTE extended bands.
Starting at the GSM band (at chapter "Select Band - #BND" in the AT command reference manual) we can see that 0 corresponds to "GSM 900MHz + DCS 1800MHz (default value depending on module)"
In the same chapter we can read that 18 corresponds to 2100MHz (FDD I) + 1900MHz (FDD II) + 1700MHz (FDD IV) +
850MHz (FDD V) + 900MHz (FDD VIII) + JAPAN1800(FDD IX) + JAPAN800(FDD XIX) (default value depending on product)"
Now for LTE, which is probably what is a little tricky to understand. If we start the Windows Calculator and change to Programmer mode. If you copy the "A7E0BB0F38DF" into the calculator window it should convert it to binary.
HEX: A7E0 BB0F 38DF
BIN: 1010 0111 1110 0000 1011 1011 0000 1111 0011 1000 1101 1111
If you look at the line of BIN above you can see what band are active (1) and which are not (0). Looking from right to left, the first bit corresponds to B1, second bit to B2, third bit B3, and so on…
HEX: A7E0 BB0F 38DF
BIN: 1010 0111 1110 0000 1011 1011 0000 1111 0011 1000 1101 1111
Selected bands: B1+B2+B3+B4+B5+B7+B8+B12+B13+B14+B17+B18+B19+B20+B25+B26+B28+B29+B30+B32+B38+B39+B40+B41+B42+B43+B46+B48
So if I, for example, only want the GSM bands "GSM 900MHz + DCS 1800MHz", the UMTS band "1900MHz (FDD II)" and LTE bands "B1, B4, B7, B28" I would enter the following:
AT#BND=0,1,8000049
Since the first "0" corresponds to "GSM 900MHz + DCS 1800MHz", the "1" corresponds to "1900MHz (FDD II)" and lastly "8000049" corresponds to B1, B4, B7 and B28 as shown below:
Bands: B1, B4, B7, B28
Binary: 1000 0000 0000 0000 0000 0100 1001
Hexadecimal: 800 0049
For further information please take a look at the AT command user guide available on the product's specific page under "technical documentation", which is available for download once logged in.
How-to automatically set up and maintain the cellular data connection in headless Raspberry Pi OS / Raspbian systems?
The open-source tools NetworkManager and ModemManager can be uesd to establish, control and maintain a cellular connection even if the enironment and antenna RF circumstances vary.
First ensure that the cellular module have been detected in the Raspbian system, and that Linux in-kernel driver alternatives have been loaded correctly for the USB interfaces.
This can be verified through different tools like lsusb and usb-devices, and by checking the dmesg log.
Look at the Driver output, serial interface typically use option or qcserial driver and the network interfaces typically bind to the qmi_wwan or cdc_mbim drivers.
The in-kernel drivers, as well as NetworkManager and ModemManager tools are continously improved, due to the rapid progress in wirelless connectivity. Therefore it is recommended to use fairly recent Linux kernel and distribution versions, which is more likely to have device support out of the box.
lsusb
Bus 001 Device 012: ID 1e0e:9001 Qualcomm / Option
lsusb -t
|__ Port 4: Dev 12, If 1, Class=Vendor Specific Class, Driver=option, 480M
|__ Port 4: Dev 12, If 4, Class=Vendor Specific Class, Driver=option, 480M
|__ Port 4: Dev 12, If 2, Class=Vendor Specific Class, Driver=option, 480M
|__ Port 4: Dev 12, If 0, Class=Vendor Specific Class, Driver=option, 480M
|__ Port 4: Dev 12, If 5, Class=Vendor Specific Class, Driver=qmi_wwan, 480M
|__ Port 4: Dev 12, If 3, Class=Vendor Specific Class, Driver=option, 480M
usb-devices
T: Bus=01 Lev=02 Prnt=02 Port=03 Cnt=02 Dev#= 12 Spd=480 MxCh= 0
D: Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1
P: Vendor=1e0e ProdID=9001 Rev=03.18
S: Manufacturer=SimTech, Incorporated
S: Product=SimTech, Incorporated
S: SerialNumber=0123456789ABCDEF
C: #Ifs= 6 Cfg#= 1 Atr=a0 MxPwr=500mA
I: If#=0x0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
I: If#=0x1 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
I: If#=0x2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
I: If#=0x3 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
I: If#=0x4 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
I: If#=0x5 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=qmi_wwan
If drivers aren't loaded for all the USB interfaces, please see the following general FAQ on kernel configs and patches for cellular modules.
FAQ: Common Linux kernel modules and configs necessary for communicating with cellular modules over USB interface
On Raspberry Pi OS / Raspbian uses dhcpcd to configure networks, this causes problems for several cellular devices, so it is recommended to exclude the cellular modules wwan interfaces, see following FAQ for how-to details:
FAQ: We cannot acquire an DHCP address over qmi_wwan driver when using Raspbian Linux OS?
Update the system and install NetworkManager and ModemManager:
apt update
apt upgrade
apt install network-manager modemmanager libmbim-utils libmbim-proxy libqmi-utils libqmi-proxy
Once they are installed and services running, set the cellular module to be a managed interface for NetworkManager.
(The control interface is typically called cdc-wdm0 for cellular devices using qmi_wwan / cdc_mbim driver.)
nmcli device set cdc-wdm0 managed true
Now you can go ahead and establish the cellular data connection as described in FAQ below:
FAQ: Using NetworkManager and ModemManager in Linux to automatically establish and maintain a connection
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.
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