Date created: Wednesday, November 15, 2023 5:48:39 PM. Last modified: Tuesday, November 12, 2024 4:03:27 PM
Mobile Internet / WWAN / mmcli
Check if modem is detected:
$ sudo dmesg |grep mhi
[ 0.917256] mhi-pci-generic 0000:04:00.0: BAR 0: assigned [mem 0xfd500000-0xfd500fff 64bit]
[ 0.917273] mhi-pci-generic 0000:04:00.0: enabling device (0000 -> 0002)
[ 0.918317] mhi mhi0: Requested to power ON
[ 0.918496] mhi mhi0: Power on setup success
[ 2.984935] mhi mhi0: Wait for device to enter SBL or Mission mode
Here we see that the radio state is "fcc-locked":
$ sudo apt-get install libmbim-utils
$ sudo mbimcli -d /dev/wwan0mbim0 -p -v --quectel-query-radio-state
...
[10 Jul 2023, 18:10:58] [Debug] [/dev/wwan0mbim0] received message (translated)...
>>>>>> Header:
>>>>>> length = 52
>>>>>> type = command-done (0x80000003)
>>>>>> transaction = 3
>>>>>> Fragment header:
>>>>>> total = 1
>>>>>> current = 0
>>>>>> Contents:
>>>>>> status error = 'None' (0x00000000)
>>>>>> service = 'quectel' (11223344-5566-7788-99aa-bbccddeeff11)
>>>>>> cid = 'radio-state' (0x00000001)
>>>>>> Fields:
>>>>>> RadioState = 'fcc-locked'
Enabled the radio.
$ sudo mbimcli --device-open-proxy --device="/dev/wwan0mbim0" --quectel-set-radio-state=on
...
[10 Jul 2023, 18:21:08] [Debug] [/dev/wwan0mbim0] received message (translated)...
>>>>>> Header:
>>>>>> length = 52
>>>>>> type = command-done (0x80000003)
>>>>>> transaction = 3
>>>>>> Fragment header:
>>>>>> total = 1
>>>>>> current = 0
>>>>>> Contents:
>>>>>> status error = 'None' (0x00000000)
>>>>>> service = 'quectel' (11223344-5566-7788-99aa-bbccddeeff11)
>>>>>> cid = 'radio-state' (0x00000001)
>>>>>> Fields:
>>>>>> RadioState = 'on'
To make this permenant across reboots, sym-link the FCC-unlock scripts into the ModemManager directory.
$ sudo apt install network-manager
$ sudo ln -sft /etc/ModemManager/fcc-unlock.d /usr/share/ModemManager/fcc-unlock.available.d/*
Here we can see that there is a modem found but it has the eSIM slot set as the default, not the physical SIM:
$ mmcli --help-all
$ sudo mmcli --list-modems
/org/freedesktop/ModemManager1/Modem/0 [quectel] EM120R_GL
$ sudo mmcli -m any
$ sudo mmcli -m 0
-----------------------------------
General | path: /org/freedesktop/ModemManager1/Modem/1
| device id: fd4191211cbe29e0aXXXXXXXXXXXXXXXXXXXXX
-----------------------------------
Hardware | manufacturer: quectel
| model: EM120R_GL
| firmware revision: EM120RGLAPR02A07M4G
| carrier config: ROW_Commercial
| carrier config revision: 08010809
| h/w revision: EM120R_GL
| supported: gsm-umts, lte
| current: gsm-umts, lte
| equipment id: XXXXXXXXXXXXXX
-----------------------------------
System | device: /sys/devices/pci0000:00/0000:00:02.5/0000:04:00.0
| drivers: mhi-pci-generic
| plugin: quectel
| primary port: wwan0mbim0
| ports: wwan0 (net), wwan0at0 (at), wwan0mbim0 (mbim),
| wwan0qcdm0 (qcdm)
-----------------------------------
Status | state: failed
| failed reason: esim-without-profiles
| power state: low
-----------------------------------
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-6, 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-14, eutran-17, eutran-18,
| eutran-19, eutran-20, eutran-25, eutran-26, eutran-28, eutran-29,
| eutran-30, eutran-32, eutran-38, eutran-39, eutran-40, eutran-41,
| eutran-42, eutran-43, eutran-46, eutran-48, eutran-66, utran-19
| current: utran-1, utran-3, utran-4, utran-6, 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-14, eutran-18, eutran-19,
| eutran-20, eutran-25, eutran-26, eutran-28, eutran-29, eutran-30,
| eutran-32, eutran-38, eutran-39, eutran-40, eutran-41, eutran-42,
| eutran-43, eutran-46, eutran-48, eutran-66, utran-19
-----------------------------------
IP | supported: ipv4, ipv6, ipv4v6
-----------------------------------
SIM | primary sim path: /org/freedesktop/ModemManager1/SIM/1
| sim slot paths: slot 1: none
| slot 2: /org/freedesktop/ModemManager1/SIM/1 (active)
We can switch from the eSIM slot to the physical SIM slot:
$ sudo mmcli -m 0 --set-primary-sim-slot=0
$ sudo mmcli -m 0
-----------------------------------
General | path: /org/freedesktop/ModemManager1/Modem/0
| device id: fd4191211cbe29e0a1ec7XXXXXXXXXXXXXXX
-----------------------------------
Hardware | manufacturer: quectel
| model: EM120R_GL
| firmware revision: EM120RGLAPR02A07M4G
| carrier config: ROW_Commercial
| carrier config revision: 08010809
| h/w revision: EM120R_GL
| supported: gsm-umts, lte
| current: gsm-umts, lte
| equipment id: XXXXXXXXXXXXXXX
-----------------------------------
System | device: /sys/devices/pci0000:00/0000:00:02.5/0000:04:00.0
| drivers: mhi-pci-generic
| plugin: quectel
| primary port: wwan0mbim0
| ports: wwan0 (net), wwan0at0 (at), wwan0mbim0 (mbim),
| wwan0qcdm0 (qcdm)
-----------------------------------
Status | state: failed
| failed reason: sim-missing
| power state: low
-----------------------------------
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-6, 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-14, eutran-17, eutran-18,
| eutran-19, eutran-20, eutran-25, eutran-26, eutran-28, eutran-29,
| eutran-30, eutran-32, eutran-38, eutran-39, eutran-40, eutran-41,
| eutran-42, eutran-43, eutran-46, eutran-48, eutran-66, utran-19
| current: utran-1, utran-3, utran-4, utran-6, 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-14, eutran-18, eutran-19,
| eutran-20, eutran-25, eutran-26, eutran-28, eutran-29, eutran-30,
| eutran-32, eutran-38, eutran-39, eutran-40, eutran-41, eutran-42,
| eutran-43, eutran-46, eutran-48, eutran-66, utran-19
-----------------------------------
IP | supported: ipv4, ipv6, ipv4v6
-----------------------------------
SIM | sim slot paths: slot 1: none (active)
| slot 2: /org/freedesktop/ModemManager1/SIM/0
# In this case there is no SIM in the physical SIM card slot:
$ sudo mmcli -m 0 --sim=1
error: couldn't find SIM
View SIM details:
mmcli -i /org/freedesktop/ModemManager1/SIM/0 --output-keyvalue
View the modem connection profile:
qmicli -d /dev/cdc-wdm0 -p --wds-get-profile-list=3gpp
Other ideas?
sudo mbimcli -d /dev/wwan0mbim0 --query-device-caps sudo mbimcli -d /dev/wwan0mbim0 --query-device-caps --verbose sudo mbimcli -d /dev/wwan0mbim0 -p -v --quectel-query-fcc-unlock ModemManager --debug
Previous page: Linux Network Tuning
Next page: netplan