Connect to the internet using Sierra Wireless EM7455 Qualcomm Snapdragon X7 LTE-A

Hi,

I have got a nice linuxfromscratch.org installation on my notebook.

uname -a
Linux minosone 6.4.12 #1 SMP PREEMPT_DYNAMIC Wed Dec  6 12:23:55 GMT 2023 x86_64 GNU/Linux

My modem "Sierra Wireless EM7455 Qualcomm Snapdragon X7 LTE-A" is supported by the linux kernel.

I used to be fine ModemManager and NetworkManager with linux 4.12.16, but with recent kernels I experience difficulties to connect to the internet.

root [ ~ ]# cat /etc/mbim-network.conf
APN=gprs.swisscom.ch
PROXY=yes
root [ ~ ]# cat /etc/config/network
config interface 'wwan'
        option proto 'mbim'
        option device '/dev/cdc-wdm0'
        option apn 'internet'
        option pdptype 'ip'
root [ ~ ]# ModemManager 
ModemManager[4008]: <info>  ModemManager (version 1.18.12) starting in system bus...
ModemManager[4008]: [qrtr] socket lookup from 1:0
ModemManager[4008]: [qrtr] initial lookup finished
ModemManager[4008]: opening device...
ModemManager[4008]: [/dev/cdc-wdm0] Read max control message size from descriptors file: 4096
ModemManager[4008]: <info>  [cdc-wdm0/mbim] MBIM device is not QMI capable
ModemManager[4008]: [/dev/cdc-wdm0] channel destroyed
ModemManager[4008]: <info>  [device /sys/devices/pci0000:00/0000:00:14.0/usb1/1-5] creating modem with plugin 'sierra' and '2' ports
ModemManager[4008]: <info>  [base-manager] modem for device '/sys/devices/pci0000:00/0000:00:14.0/usb1/1-5' successfully created
ModemManager[4008]: <info>  [base-manager] couldn't check support for device '/sys/devices/pci0000:00/0000:00:1c.0/0000:03:00.0': not supported by any plugin
ModemManager[4008]: <info>  [base-manager] couldn't check support for device '/sys/devices/pci0000:00/0000:00:1f.6': not supported by any plugin
ModemManager[4008]: opening device...
ModemManager[4008]: [/dev/cdc-wdm0] Read max control message size from descriptors file: 4096
ModemManager[4008]: [/dev/cdc-wdm0] Opening device with flags 'version-info, proxy, mbim, expect-indications'...
ModemManager[4008]: [/dev/cdc-wdm0] created endpoint
ModemManager[4008]: [/dev/cdc-wdm0] creating MBIM device...
ModemManager[4008]: [/dev/cdc-wdm0] MBIM device created
ModemManager[4008]: [/dev/cdc-wdm0] opening MBIM device...
ModemManager[4008]: opening device...
ModemManager[4008]: [/dev/cdc-wdm0] Read max control message size from descriptors file: 4096
ModemManager[4008]: [/dev/cdc-wdm0] MBIM device open
ModemManager[4008]: [/dev/cdc-wdm0] Checking version info (15 retries)...
ModemManager[4008]: [/dev/cdc-wdm0] QMI Device supports 33 services:
ModemManager[4008]: [/dev/cdc-wdm0]    ctl (1.5)
ModemManager[4008]: [/dev/cdc-wdm0]    wds (1.67)
ModemManager[4008]: [/dev/cdc-wdm0]    dms (1.14)
ModemManager[4008]: [/dev/cdc-wdm0]    nas (1.25)
ModemManager[4008]: [/dev/cdc-wdm0]    qos (1.6)
ModemManager[4008]: [/dev/cdc-wdm0]    wms (1.10)
ModemManager[4008]: [/dev/cdc-wdm0]    auth (1.3)
ModemManager[4008]: [/dev/cdc-wdm0]    at (1.2)
ModemManager[4008]: [/dev/cdc-wdm0]    voice (2.1)
ModemManager[4008]: [/dev/cdc-wdm0]    cat2 (2.24)
ModemManager[4008]: [/dev/cdc-wdm0]    uim (1.45)
ModemManager[4008]: [/dev/cdc-wdm0]    pbm (1.4)
ModemManager[4008]: [/dev/cdc-wdm0]    test (1.0)
ModemManager[4008]: [/dev/cdc-wdm0]    loc (2.0)
ModemManager[4008]: [/dev/cdc-wdm0]    sar (1.0)
ModemManager[4008]: [/dev/cdc-wdm0]    ts (1.0)
ModemManager[4008]: [/dev/cdc-wdm0]    tmd (1.0)
ModemManager[4008]: [/dev/cdc-wdm0]    wda (1.16)
ModemManager[4008]: [/dev/cdc-wdm0]    csvt (1.1)
ModemManager[4008]: [/dev/cdc-wdm0]    coex (1.0)
ModemManager[4008]: [/dev/cdc-wdm0]    pdc (1.0)
ModemManager[4008]: [/dev/cdc-wdm0]    rfrpe (1.0)
ModemManager[4008]: [/dev/cdc-wdm0]    dsd (1.0)
ModemManager[4008]: [/dev/cdc-wdm0]    ssctl (1.0)
ModemManager[4008]: [/dev/cdc-wdm0]    unknown [0x2e] (1.0)
ModemManager[4008]: [/dev/cdc-wdm0]    unknown [0x30] (1.0)
ModemManager[4008]: [/dev/cdc-wdm0]    unknown [0x31] (1.0)
ModemManager[4008]: [/dev/cdc-wdm0]    unknown [0x36] (1.0)
ModemManager[4008]: [/dev/cdc-wdm0]    rms (1.0)
ModemManager[4008]: [/dev/cdc-wdm0]    unknown [0xf0] (1.0)
ModemManager[4008]: [/dev/cdc-wdm0]    unknown [0xf3] (1.0)
ModemManager[4008]: [/dev/cdc-wdm0]    unknown [0xf5] (1.0)
ModemManager[4008]: [/dev/cdc-wdm0]    unknown [0xf6] (1.0)
ModemManager[4008]: [/dev/cdc-wdm0] Enabling QMI indications via MBIM...
ModemManager[4008]: [/dev/cdc-wdm0] enabled QMI indications via MBIM
ModemManager[4008]: <info>  [modem0/cdc-wdm0/mbim] MBIM device is QMI capable
ModemManager[4008]: [/dev/cdc-wdm0] Allocating new client ID...
ModemManager[4008]: [/dev/cdc-wdm0] Registered 'dms' (version 1.14) client with ID '3'
ModemManager[4008]: [/dev/cdc-wdm0] Allocating new client ID...
ModemManager[4008]: [/dev/cdc-wdm0] Registered 'nas' (version 1.25) client with ID '4'
ModemManager[4008]: [/dev/cdc-wdm0] Allocating new client ID...
ModemManager[4008]: [/dev/cdc-wdm0] Registered 'loc' (version 2.0) client with ID '1'
ModemManager[4008]: [/dev/cdc-wdm0] Allocating new client ID...
ModemManager[4008]: [/dev/cdc-wdm0] Registered 'pdc' (version 1.0) client with ID '1'
ModemManager[4008]: [/dev/cdc-wdm0] Allocating new client ID...
ModemManager[4008]: [/dev/cdc-wdm0] Registered 'uim' (version 1.45) client with ID '3'
ModemManager[4008]: <info>  [modem0] QMI-based capability and mode switching support enabled
ModemManager[4008]: <warn>  [modem0/sim0] couldn't load list of emergency numbers: No AT port available to run command
ModemManager[4008]: <warn>  [modem0] couldn't load UE mode of operation for EPS: No AT port available to run command
ModemManager[4008]: <warn>  [modem0] couldn't load initial EPS bearer settings: LTE attach status info is unsupported
ModemManager[4008]: <warn>  [modem0] couldn't open ports during Modem SIM hot swap enabling: Couldn't get primary port
ModemManager[4008]: <info>  [modem0] state changed (unknown -> disabled)
ModemManager[4008]: <info>  [modem0] state changed (disabled -> enabling)
ModemManager[4008]: <info>  [modem0] power state updated: on
ModemManager[4008]: <info>  [modem0] state changed (enabling -> enabled)
ModemManager[4008]: <info>  [modem0] 3GPP registration state changed (unknown -> registering)
ModemManager[4008]: <info>  [modem0] 3GPP registration state changed (registering -> home)
ModemManager[4008]: <info>  [modem0] state changed (enabled -> registered)
ModemManager[4008]: <info>  [modem0] simple connect started...
ModemManager[4008]: <info>  [modem0] simple connect state (4/8): wait to get fully enabled
ModemManager[4008]: <info>  [modem0] simple connect state (5/8): register
ModemManager[4008]: <info>  [modem0] simple connect state (6/8): bearer
ModemManager[4008]: <info>  [modem0] simple connect state (7/8): connect
ModemManager[4008]: <info>  [modem0] state changed (registered -> connecting)
ModemManager[4008]: <warn>  [modem0/bearer0] connection attempt #1 failed: Busy
ModemManager[4008]: <info>  [modem0] state changed (connecting -> registered)
ModemManager[4008]: <info>  [modem0/bearer0] connection #1 finished: duration 0s, tx: 0 bytes, rx: 0 bytes
ModemManager[4008]: <info>  [modem0] simple connect started...
ModemManager[4008]: <info>  [modem0] simple connect state (4/8): wait to get fully enabled
ModemManager[4008]: <info>  [modem0] simple connect state (5/8): register
ModemManager[4008]: <info>  [modem0] simple connect state (6/8): bearer
ModemManager[4008]: <info>  [modem0] simple connect state (7/8): connect
ModemManager[4008]: <info>  [modem0] state changed (registered -> connecting)
ModemManager[4008]: <warn>  [modem0/bearer1] connection attempt #1 failed: Busy
ModemManager[4008]: <info>  [modem0] state changed (connecting -> registered)
ModemManager[4008]: <info>  [modem0/bearer1] connection #1 finished: duration 0s, tx: 0 bytes, rx: 0 bytes
ModemManager[4008]: <info>  [modem0] simple connect started...
ModemManager[4008]: <info>  [modem0] simple connect state (4/8): wait to get fully enabled
ModemManager[4008]: <info>  [modem0] simple connect state (5/8): register
ModemManager[4008]: <info>  [modem0] simple connect state (6/8): bearer
ModemManager[4008]: <info>  [modem0] simple connect state (7/8): connect
ModemManager[4008]: <info>  [modem0] state changed (registered -> connecting)
ModemManager[4008]: <warn>  [modem0/bearer2] connection attempt #1 failed: Busy
ModemManager[4008]: <info>  [modem0] state changed (connecting -> registered)
ModemManager[4008]: <info>  [modem0/bearer2] connection #1 finished: duration 0s, tx: 0 bytes, rx: 0 bytes

How is this thread Openwrt related?

As shown in the internet:

ln -sft /etc/ModemManager/fcc-unlock.d /usr/share/ModemManager/fcc-unlock.available.d/*

Enabling QMI

qmicli -d /dev/cdc-wdm0 --dms-swi-set-usb-composition=6

Fix config files:

root [ ~ ]# cat /etc/mbim-network.conf
APN=internet
PROXY=yes
root [ ~ ]# cat /etc/config/network
config interface 'wwan'
        option proto 'qmi'
        option device '/dev/cdc-wdm0'
        option apn 'internet'
        option pdptype 'ip'

Restart device:

qmicli -d /dev/cdc-wdm0 --dms-set-operating-mode=offline
qmicli -d /dev/cdc-wdm0 --dms-set-operating-mode=reset

This command gave me hope:

qmicli -d /dev/cdc-wdm0 --dms-set-fcc-authentication

Then start ModemManager add WWAN connection to NetworkManager.

ModemManager
nm-connection-editor

Makes it work!

I have seen similar questions but actually I am unsure about openwrt. Is it part of the linux kernel?

Not even close - https://openwrt.org/

you created your own wireless router? Is it open HW? Something like HackRF?

There's a router too, but it's fairly new, OpenWrt One - celebrating 20 years of OpenWrt.

the project itself is 20+ years.

https://openwrt.org/about/history

This topic was automatically closed 10 days after the last reply. New replies are no longer allowed.