Gemalto is now part of the Thales Group, find out more.

You are here

Thales IoT Developer Community

5G show case: running MV32 on Raspberry Pi 4 (Desktop, Raspberry Pi OS 64-bit)

Showcase, August 14, 2022 - 3:46pm, 655 views

This is a show case where we have our running MV32 on Raspberry Pi 4 ( Desktop, Raspberry Pi OS 64-bit).

System prerequisites:

HW: 

1) MV32 CS sample on the new 5G starter kit

2) Raspberry Pi 4 with Raspberry Pi OS (64-Bit), make sure that Raspberry Pi 4 device is new (2021 and further)

3) connect the MV32 sample to Raspberry Pi 4 on the USB 3.x interface

Linux OS:

On Raspberry Pi OS, make sure that the Raspberry Pi OS Linux kernel version is the latest ( v5.15.x), update with following steps:

=============================

sudo apt update
sudo apt full-upgrade
sudo rpi-eeprom-update

=============================

System Checks:

=============================

wmtester@raspberrypi:~ $ lsusb
Bus 002 Device 002: ID 1e2d:00f1 Gemalto M2M GmbH Cinterion PID 0x00F1 USB Mobile Broadband
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
 
wmtester@raspberrypi:~ $ mmcli -L
    /org/freedesktop/ModemManager1/Modem/0 [Cinterion] Cinterion PID 0x00F1 USB Mobile Broadband

=============================

Install libmbim and libqmi:

=============================

wmtester@raspberrypi:~ $ sudo apt install libmbim-utils
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following package was automatically installed and is no longer required:
  libfuse2
Use 'sudo apt autoremove' to remove it.
The following NEW packages will be installed:
  libmbim-utils
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 116 kB of archives.
After this operation, 202 kB of additional disk space will be used.
Get:1 http://deb.debian.org/debian bullseye/main arm64 libmbim-utils arm64 1.24.6-0.1 [116 kB]
Fetched 116 kB in 0s (737 kB/s)   
Selecting previously unselected package libmbim-utils.
(Reading database ... 92425 files and directories currently installed.)
Preparing to unpack .../libmbim-utils_1.24.6-0.1_arm64.deb ...
Unpacking libmbim-utils (1.24.6-0.1) ...
Setting up libmbim-utils (1.24.6-0.1) ...
Processing triggers for man-db (2.9.4-2) ...
 wmtester@raspberrypi:~ $ sudo apt install libqmi-utils
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following package was automatically installed and is no longer required:
  libfuse2
Use 'sudo apt autoremove' to remove it.
The following NEW packages will be installed:
  libqmi-utils
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 154 kB of archives.
After this operation, 692 kB of additional disk space will be used.
Get:1 http://deb.debian.org/debian bullseye/main arm64 libqmi-utils arm64 1.26.10-0.1 [154 kB]
Fetched 154 kB in 0s (1,530 kB/s)
Selecting previously unselected package libqmi-utils.
(Reading database ... 92414 files and directories currently installed.)
Preparing to unpack .../libqmi-utils_1.26.10-0.1_arm64.deb ...
Unpacking libqmi-utils (1.26.10-0.1) ...
Setting up libqmi-utils (1.26.10-0.1) ...
Processing triggers for man-db (2.9.4-2) ...

wmtester@raspberrypi:~ $ sudo reboot

=============================

Device Check of MV32 via $dmesg:

=============================

[  204.430516] usb 2-2: new SuperSpeed USB device number 3 using xhci_hcd
[  204.452747] usb 2-2: LPM exit latency is zeroed, disabling LPM.
[  204.456916] usb 2-2: New USB device found, idVendor=1e2d, idProduct=00f1, bcdDevice= 5.04
[  204.456943] usb 2-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[  204.456959] usb 2-2: Product: Cinterion PID 0x00F1 USB Mobile Broadband
[  204.456974] usb 2-2: Manufacturer: Cinterion
[  204.456987] usb 2-2: SerialNumber: 537475e0
[  204.629524] cdc_mbim 2-2:1.0: setting rx_*** = 16384
[  204.630257] cdc_mbim 2-2:1.0: cdc-wdm0: USB WDM device
[  204.631158] cdc_mbim 2-2:1.0 wwan0: register 'cdc_mbim' at usb-0000:01:00.0-2, CDC MBIM, 16:13:f5:a0:8e:c0
[  204.632868] option 2-2:1.2: GSM ****m (1-port) converter detected
[  204.633464] usb 2-2: GSM ****m (1-port) converter now attached to ttyUSB0
[  204.635636] option 2-2:1.4: GSM ****m (1-port) converter detected
[  204.636600] usb 2-2: GSM ****m (1-port) converter now attached to ttyUSB1
[  204.637601] option 2-2:1.5: GSM ****m (1-port) converter detected
[  204.638292] usb 2-2: GSM ****m (1-port) converter now attached to ttyUSB2
[  204.811003] 8021q: adding VLAN 0 to HW filter on device wwan0
========================================================

MBIM commands on MV32:

=====================================================

wmtester@raspberrypi:~ $ sudo -i

root@raspberrypi:~# mbimcli -d /dev/cdc-wdm0 -p --query-device-caps
[/dev/cdc-wdm0] Device capabilities retrieved:
          Device type: 'embedded'
       Cellular class: 'gsm'
          Voice class: 'no-voice'
            SIM class: 'removable'
           Data class: 'umts, hsdpa, hsupa, lte, custom'
             SMS caps: 'pdu-receive, pdu-send'
            Ctrl caps: 'hw-radio-switch'
         *** sessions: '15'
    Custom data class: '5G'
            Device ID: '355532870001404'
        Firmware info: 'FDE.F0.0.0.1.3.DT.001.006'
        Hardware info: 'Cinterion Snapdragon X62'
root@raspberrypi:~# mbimcli -d /dev/cdc-wdm0 -p --query-subscriber-ready-status
[/dev/cdc-wdm0] Subscriber ready status retrieved:
          Ready state: 'initialized'
        Subscriber ID: '262011409193877'
            SIM ICCID: '89490200001487545165'
           Ready info: 'none'
    Telephone numbers: (1) ''
root@raspberrypi:~# mbimcli -d /dev/cdc-wdm0 -p --query-registration-state
[/dev/cdc-wdm0] Registration status:
             Network error: 'unknown'
            Register state: 'home'
             Register ****: 'automatic'
    Available data classes: 'lte'
    Current cellular class: 'gsm'
               Provider ID: '26201'
             Provider name: 'Telekom.de'
              Roaming text: 'unknown'
        Registration flags: 'packet-service-automatic-attach'
root@raspberrypi:~# mbimcli -d /dev/cdc-wdm0 -p --atds-query-signal
[/dev/cdc-wdm0] Signal info retrieved:
          RSSI: -65 dBm
           BER: unknown (99)
          RSCP: unknown
         Ec/No: unknown
          RSRQ: -8.00 dBm
          RSRP: -93 dBm
         RSSNR: 19 dB
root@raspberrypi:~# 

==================================================

MBIM network connect:

=============================================

root@raspberrypi:~# mbim-network /dev/cdc-wdm0 start
Loading profile at /etc/mbim-network.conf...
    APN: internet.v6.telekom
    APN auth protocol: unset
    APN user: unset
    APN password: unset
    mbim-proxy: no
Loading previous state from /tmp/mbim-network-state-cdc-wdm0...
    Previous Transaction ID: 7
error: no actions specified
Clearing state at /tmp/mbim-network-state-cdc-wdm0...
Querying subscriber ready status 'mbimcli -d /dev/cdc-wdm0 --query-subscriber-ready-status --no-close '...
error: operation failed: Transaction timed out
[/dev/cdc-wdm0] Session not closed: TRID: '3'
Saving state at /tmp/mbim-network-state-cdc-wdm0... (TRID: 3)
Querying registration state 'mbimcli -d /dev/cdc-wdm0 --query-registration-state --no-open=3 --no-close '...
error: operation failed: Transaction timed out
[/dev/cdc-wdm0] Session not closed: TRID: '4'
Saving state at /tmp/mbim-network-state-cdc-wdm0... (TRID: 4)
Attaching to packet service with 'mbimcli -d /dev/cdc-wdm0 --attach-packet-service --no-open=4 --no-close '...
Saving state at /tmp/mbim-network-state-cdc-wdm0... (TRID: 5)
Starting network with 'mbimcli -d /dev/cdc-wdm0 --connect=apn='internet.v6.telekom' --no-open=5 --no-close '...
Network started successfully
Saving state at /tmp/mbim-network-state-cdc-wdm0... (TRID: 7)

========================================================

Network interface WWAN0 status check:

=================================================

wmtester@raspberrypi:/etc $ ifconfig -a wwan0
wwan0: flags=4291<UP,BROADCAST,RUNNING,NOARP,MULTICAST>  mtu 1500
        inet 169.254.154.29  netmask 255.255.0.0  broadcast 169.254.255.255
        inet6 fe80::c0c7:b320:39b:3cf3  prefixlen 64  scopeid 0x20<link>
        inet6 2a01:598:b175:77e3:615b:c322:3ce7:e56b  prefixlen 64  scopeid 0x0<global>
        ether 5a:c5:64:8d:17:43  txqueuelen 1000  (Ethernet)
        RX packets 1268986  bytes 1573199630 (1.4 GiB)
        RX errors 27  dropped 2776  overruns 0  frame 0
        TX packets 633607  bytes 770014035 (734.3 MiB)
        TX errors 0  dropped 129 overruns 0  carrier 0  collisions 0
wmtester@raspberrypi:~ $ sudo -i
root@raspberrypi:~# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000
    link/ether dc:a6:32:cc:da:8a brd ff:ff:ff:ff:ff:ff
3: wlan0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1000
    link/ether dc:a6:32:cc:da:8b brd ff:ff:ff:ff:ff:ff
5: wwan0: <BROADCAST,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 1000
    link/ether 5a:c5:64:8d:17:43 brd ff:ff:ff:ff:ff:ff
    inet 169.254.154.29/16 brd 169.254.255.255 scope global noprefixroute wwan0
       valid_lft forever preferred_lft forever
    inet 192.0.0.2/27 brd 192.0.0.31 scope global dynamic noprefixroute wwan0
       valid_lft 6353sec preferred_lft 5453sec
    inet6 2a01:598:b175:77e3:615b:c322:3ce7:e56b/64 scope global mngtmpaddr noprefixroute 
       valid_lft forever preferred_lft forever
    inet6 fe80::c0c7:b320:39b:3cf3/64 scope link 
       valid_lft forever preferred_lft forever
root@raspberrypi:~# ping -I wwan0 8.8.8.8
PING 8.8.8.8 (8.8.8.8) from 192.0.0.2 wwan0: 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=53 time=42.1 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=53 time=42.9 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=53 time=53.9 ms
64 bytes from 8.8.8.8: icmp_seq=4 ttl=53 time=41.2 ms
64 bytes from 8.8.8.8: icmp_seq=5 ttl=53 time=25.6 ms
64 bytes from 8.8.8.8: icmp_seq=6 ttl=53 time=25.0 ms
64 bytes from 8.8.8.8: icmp_seq=7 ttl=53 time=23.4 ms
64 bytes from 8.8.8.8: icmp_seq=8 ttl=53 time=25.9 ms
^C
--- 8.8.8.8 ping statistics ---
8 packets transmitted, 8 received, 0% packet loss, time 6993ms
rtt min/avg/***/mdev = 23.377/34.986/53.899/10.696 ms
root@raspberrypi:~# 
==================================================

Speedtest on WWAN0

==================================

Screenshot in attachment

Meanwhile, we have also used/verified our MV31/MV32 on the Raspberry Pi 5G Development Kit by SixFab

https://sixfab.com/product/raspberry-pi-5g-development-kit-5g-hat/

 

Author

wemei's picture
wemei