MC7455 fails to connect via SDK (Gobi) / QMI / MM / NM

I’m trying to get MC7455 working in a linux system.

I’ve had success with Telit module which work completely fine with Linux qmi_wwan functionality. I’m able to bring up the connection via qmicli and then use dhcpcd to get an IP address.

I’ve confirmed that the SIM card is activated and that the associated ICCID / IMEI is activated.
SIM APN: nimblink.gw12.vzwentp

I’ve tested that APN with Telit and it worked just fine.

Module Information:
Hardware | manufacturer: ‘Sierra Wireless, Incorporated’
| model: ‘MC7455’
| revision: ‘SWI9X30C_02.30.01.01 r7792 CARMD-EV-FRMWR2 2018/07/13 02:24:52’
| H/W revision: ‘unknown’
| supported: ‘gsm-umts, lte’
| current: ‘gsm-umts, lte’

However with MC7455 I am having nothing but issues. When I switched over to this hardware I initially tried to also use the qmicli and it failed for me (3,2001) no-service.

Things I have tried:

libqmi - raw-ip mode
libqmi reported that the support for MC7455 was only via raw-ip, so I changed the qmicli to open the device in net-raw-ip|net-no-qos-header for connectivity, but that also replied with the same issue.

GobiNet/GobiSerial
I downloaded the SDK for MC7455 which looks like the same as EM7565 (which I’m also looking into). I built the kernel modules for GobiNet and GobiSerial, I blacklisted the qmi_wwan drivers, rebooted the device and verified that only GobiNet was running. I built the SDK and put the sample programs on the device. I ran the ConnectionManager and tried to establish the a connection to the APN in question and I get only that it is disconnected.

./Connection_Manager/bin/connectionmgrhostx86_64 slqssdk 0
Instance ID :0                                                                                         
Session StateV4:1
Session StateV6:1
Instance ID :1
Session StateV4:1
Session StateV6:1

Please select one of the following options or press <Enter> to exit:
1.  Start UMTS Data Session
2.  Start LTE Data Session
3.  Start CDMA Data Session
4.  Start RUIM data session
5.  Stop the currently active Data Session
6.  Display all the profiles stored on the device
7.  Display the settings for a particular profile stored on the device
8.  Create a Profile on the device
9.  Modify the settings of an existing profile stored on the device
10. Delete a profile stored on the device
11. Power cycle the device
12. Set Device Power Mode
13. Qos testing
Option : 2
Modem not registered to network, reg state 255

1. IPV4 (default)
2. IPV6
3. IPV4V6
Please select IP family preference for the call, or press <Enter> to exit: 1

ID PDPType IPAddress           PrimaryDNS          SecondaryDNS        Auth ProfileName         APNName             UserName            
1  IPV4    0.0.0.0             0.0.0.0             0.0.0.0             0                        nimblink.gw12.vzwentp                    
2  IPV4V6  0.0.0.0             0.0.0.0             0.0.0.0             0                        vzwadmin                                
3  IPV4V6  0.0.0.0             0.0.0.0             0.0.0.0             0                        vzwinternet                             
4  IPV4V6  0.0.0.0             0.0.0.0             0.0.0.0             0                        vzwapp                                  
5  IPV4V6  0.0.0.0             0.0.0.0             0.0.0.0             0                        vzw800                                  
6  IPV4V6  0.0.0.0             0.0.0.0             0.0.0.0             0                        vzwclass6                               
7  IPV4V6  0.0.0.0             0.0.0.0             0.0.0.0             0    nimblink            nimblink.gw12.vzwentp                    
8  IPV4    0.0.0.0             0.0.0.0             0.0.0.0             0                        nimblink.gw12.vzwentp                    

Please provide a profile id(1-16), or press <Enter> to exit: 1

Failed to start LTE/CDMA Data SessionFailure Code : 1014(0x03f6)
WDS Call End Reason : 3(0x0003)

Verbose Failure Reason Type: 3(0x0003)

Verbose Failure Reason : 2001(0x07d1)

I also created a ConnectionManager2 which uses the SDK API to show SIM status since I didn’t see other functionality for it in the sample programs that come with the SDK.

./Connection_Manager2/bin/connectionmgrhostx86_64 slqssdk 0  
Instance ID :0
Session StateV4:1
Session StateV6:1
Instance ID :1
Session StateV4:1
Session StateV6:1
Hello Nodar
UIMGetCardStatus: 0
Card Status: 
=============
Primary GW provisioning application index: 2
Primary 1x provisioning application index: 0
Secondary GW provisioning application index: 65535
Secondary 1x provisioning application index: 65535
numSlot: 2
------------------------
Slot 0: cardState:   1
Slot 0: upinState:   0
Slot 0: upinRetries: 0
Slot 0: upukRetries: 0
Slot 0: errorState:  0
Slot 0: numApp:      4
------------------------
Slot 1: cardState:   0
Slot 1: upinState:   0
Slot 1: upinRetries: 0
Slot 1: upukRetries: 0
Slot 1: errorState:  0
Slot 1: numApp:      0

From the above, we see that the SDK sees the SIM card for the module in question, but we’re not able to connect.

Tried using ModemManager
I tried using ModemManager with both qmi_wwan and GobiNet/GobiSerial (separetely) meaning one of the driver sets being loaded at a time. ModemManager is able to recognize the module and finds the SIM card. In both cases (qmi_wwan and Gobi) I’m able to start the connection to the bearer that I create:

mmcli -m 0 --create-bearer="apn=nimblink.gw12.vzwentp" 
Successfully created new bearer in modem:
	/org/freedesktop/ModemManager1/Bearer/0

And connect to the bearer
mmcli -b 0 -c
successfully connected the bearer

ModemManager reports that I need to use ppp further

  -------------------------
  IPv4 configuration |   method: 'ppp'
                     |  address: 'unknown'
                     |   prefix: '0'
                     |  gateway: 'unknown'
                     |      DNS: none

I try various ways of using pppd to connect but that always fails. I found a sample configuration here: not sure if that’s what I should be using. I’ve also tried other configurations but none of them worked. Sierra Wireless Source - PPP sample configuration

With the telit module that fully works with opensource QMI, once the network establishes I just use dhcpcd and I get an IP address.

I also saw mentions to use NetworkManager, however when that is used with ModemManager it fails to register the network and just times out when doing nmcli c up verizon. All we see from ModemManager is Simple connect state (5/8): Register, that’s the last thing that is seen before it times out.

AT Commands
I tried following the guides for using AT commands for MC7455 to start up the connection.

ATI
Manufacturer: Sierra Wireless, Incorporated
Model: MC7455
Revision: SWI9X30C_02.30.01.01 r7792 CARMD-EV-FRMWR2 2018/07/13 02:24:52
MEID: <not showing>
ESN: 12802628024, 802819B8
IMEI: <not showing>
IMEI SV: 16
FSN: LQ930446970310
+GCAP: +CGSM

at!gstatus?
!GSTATUS: 
Current Time:  1873             Temperature: 29
Reset Counter: 1                Mode:        ONLINE         
System mode:   LTE              PS state:    Not attached 
LTE band:      No band          LTE bw:      Unknown 
LTE Rx chan:   0                LTE Tx chan: 4294967295
LTE CA state:  INACTIVE                 LTE Scell band:No band
LTE Scell bw:1.4 MHz            LTE Scell chan:0
EMM state:     Deregistered     No Cell        
RRC state:     RRC Idle       
IMS reg state: No Srv           IMS mode:    Normal       

PCC RxM RSSI:  0                RSRP (dBm):  0
PCC RxD RSSI:  0                RSRP (dBm):  0
SCC RxM RSSI:  0                RSRP (dBm):  0
SCC RxD RSSI:  0                RSRP (dBm):  0
Tx Power:      --               TAC:         2ADC (10972)
RSRQ (dB):     -1339.8          Cell ID:     02150D90 (34934160)
SINR (dB):

More AT information
at+csq?
+CME ERROR: operation not allowed
at!usbcomp?
Config Index: 1
Config Type: 1 (Generic)
Interface bitmask: 0000050D (diag,nmea,modem,rmnet0,rmnet1)

OK
at+cpin?
+CPIN: READY

OK
at+csq
+csq: 99,99

OK
at+creg
OK
at+cops?
+COPS: 0

OK

Trying to start a data connection fails
at!scact=?
!SCACT: <state(0|1)>[,]

OK
at!scact=1
ERROR

I followed instructions on changing the USBCOMP to using rmnet
at!usbcomp?
Config Index: 1
Config Type: 1 (Generic)
Interface bitmask: 0000010D (diag,nmea,modem,rmnet0)

I think that the fact that GSTATUS is reporting that PS state is not attached and that some of the states are shoring as inactive are causing issues.

Any help would be appreciated.

You don’t need that since the module only supports raw-ip anyway. But you do need to tell the driver about this. E.g

qmicli  -p -d /dev/cdc-wdm0 --set-expected-data-format=raw-ip

or

echo Y >/sys/class/net/wwan0/qmi/raw_ip

replacing cdc-wdm0 and wwan0 with whatever is correct for you of course. A bit of a hassle, but qmicli is mostly a debugging tool. You are supposed to use something more high level, like ModemManager, with libqmi.

Strange. Something much have gone wrong with the device scanning. ModemManager will not choose ppp if it finds a qmi device. What does

mmcli -m 0

say?

BTW, you don’t have to create bearer and connect in two steps. You can use

mmcli -m 0 --simple-connect="apn=nimblink.gw12.vzwentp" 

to do both in one step.

Thank you for the reply.

Setting the expected-data-format=raw-ip in either way fails for this Module. When I interacted with the Telit module which seems to to have much better support for qmi_wwan, that worked fine and I remember being able to test with both raw-ip and 802-3, but that is not the case with MC7455.

You don’t need that since the module only supports raw-ip anyway. But you do need to tell the driver about this. E.g

Via QMICLI

qmicli -d /dev/cdc-wdm0 --set-expected-data-format=raw-ip
  error: cannot set expected data format: Expected data format not updated properly to 'raw-ip': got '802-3' instead

VIA sysfs
Bring down the connection and then enable raw_ip fails

ip link set wwp0s21u3i8 down
echo Y > /sys/class/net/wwp0s21u3i8/qmi/raw_ip
bash: echo: write error: Operation not permitted

ModemManager
With ModemManager if I do not have the qmi-proxy binary available then ModemManager reports that it doesn’t find a SIM.

mmcli -m 0

/org/freedesktop/ModemManager1/Modem/0 (device id 'efc66e9b3c267be78f3c680f704b227a29aedc9f')
 -------------------------
  Hardware |   manufacturer: 'Sierra Wireless, Incorporated'
           |          model: 'MC7455'
           |       revision: 'SWI9X30C_02.32.11.00 r8042 CARMD-EV-FRMWR2 2019/05/15 21:52:20'
           |   H/W revision: '1.0'
           |      supported: 'gsm-umts
           |                  lte
           |                  gsm-umts, lte'
           |        current: 'gsm-umts, lte'
           |   equipment id: '359072065668440'
  -------------------------
  System   |         device: '/sys/devices/pci0000:00/0000:00:15.0/usb1/1-3'
           |        drivers: 'qcserial, qmi_wwan'
           |         plugin: 'Sierra'
           |   primary port: 'cdc-wdm0'
           |          ports: 'ttyUSB0 (qcdm), wwp0s21u3i8 (net), cdc-wdm0 (qmi)'
  -------------------------
  Numbers  |           own : 'unknown'
  -------------------------
  Status   |           lock: 'unknown'
           | unlock retries: 'unknown'
           |          state: 'failed'
           |  failed reason: 'sim-missing'
           |    power state: 'on'
           |    access tech: 'unknown'
           | signal quality: '0' (cached)
  -------------------------
  Modes    |      supported: 'allowed: 2g, 3g, 4g; preferred: none'
           |        current: 'allowed: any; preferred: none'
  -------------------------
  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-41'
           |        current: 'unknown'
  -------------------------
  IP       |      supported: 'ipv4, ipv6, ipv4v6'
  -------------------------
  SIM      |           path: 'none'

  -------------------------
  Bearers  |          paths: 'none'

In the logs when ModemManager starts up I see it fail to get SIM information via QMI

ModemManager[14559]: [/dev/cdc-wdm0] sent generic request (translated)...
<<<<<< QMUX:
<<<<<<   length  = 12
<<<<<<   flags   = 0x00
<<<<<<   service = "dms"
<<<<<<   client  = 2
<<<<<< QMI:
<<<<<<   flags       = "none"
<<<<<<   transaction = 10
<<<<<<   tlv_length  = 0
<<<<<<   message     = "UIM Get PIN Status" (0x002B)
ModemManager[14559]: [/dev/cdc-wdm0] received message...
<<<<<< RAW:
<<<<<<   length = 20
<<<<<<   data   = 01:13:00:80:02:02:02:0A:00:2B:00:07:00:02:04:00:01:00:47:00
ModemManager[14559]: [/dev/cdc-wdm0] received generic response (translated)...
<<<<<< QMUX:
<<<<<<   length  = 19
<<<<<<   flags   = 0x80
<<<<<<   service = "dms"
<<<<<<   client  = 2
<<<<<< QMI:
<<<<<<   flags       = "response"
<<<<<<   transaction = 10
<<<<<<   tlv_length  = 7
<<<<<<   message     = "UIM Get PIN Status" (0x002B)
<<<<<< TLV:
<<<<<<   type       = "Result" (0x02)
<<<<<<   length     = 4
<<<<<<   value      = 01:00:47:00
<<<<<<   translated = FAILURE: InvalidQmiCommand


ModemManager[14559]: <debug> [1573681348.449612] Multiple cards reported: 2
ModemManager[14559]: <debug> [1573681348.449627] Multiple applications reported in card [0]: 4
ModemManager[14559]: <debug> [1573681348.449640] Application 'csim' [0] in card [0]: detected
ModemManager[14559]: <debug> [1573681348.449651] Application 'isim' [1] in card [0]: detected
ModemManager[14559]: <debug> [1573681348.449662] Application 'usim' [2] in card [0]: illegal
ModemManager[14559]: <debug> [1573681348.449674] Unknown application [3] found in card [0]: detected. Ignored.
ModemManager[14559]: <debug> [1573681348.449685] Card '1' is absent
ModemManager[14559]: <debug> [1573681348.449696] Neither SIM nor USIM are ready
ModemManager[14559]: <debug> [1573681348.449713] Couldn't check if unlock required: 'QMI operation failed: SIM not ready yet (retry)'
ModemManager[14559]: <debug> [1573681348.449726] Retrying (2) unlock required check
ModemManager[14559]: <debug> [1573681350.426805] loading unlock required (UIM)...

However if I remove the QMI proxy binary the SIM card is detected

killall qmi-proxy
rm /usr/libexec/qmi-proxy

mmcli -m 0

/org/freedesktop/ModemManager1/Modem/0 (device id 'da8727aa8c1d4bbedaa893a87c1f0996b7a2e7e7')
  -------------------------
  Hardware |   manufacturer: 'Sierra Wireless, Incorporated'
           |          model: 'MC7455'
           |       revision: 'SWI9X30C_02.24.05.06 r7040 CARMD-EV-FRMWR2 2017/05/19 06:23:09'
           |   H/W revision: 'unknown'
           |      supported: 'gsm-umts, lte'
           |        current: 'gsm-umts, lte'
           |   equipment id: '359072065668440'
  -------------------------
  System   |         device: '/sys/devices/pci0000:00/0000:00:15.0/usb1/1-3'
           |        drivers: 'qcserial, qmi_wwan'
           |         plugin: 'Sierra'
           |   primary port: 'ttyUSB2'
           |          ports: 'ttyUSB0 (qcdm), wwp0s21u3i8 (net), ttyUSB2 (at)'
  -------------------------
  Numbers  |           own : 'unknown'
  -------------------------
  Status   |           lock: 'none'
           | unlock retries: 'sim-pin (3), sim-pin2 (2), sim-puk (10), sim-puk2 (10)'
           |          state: 'disabled'
           |    power state: 'on'
           |    access tech: 'unknown'
           | signal quality: '0' (cached)
  -------------------------
  Modes    |      supported: 'allowed: 2g, 3g, 4g; preferred: none'
           |        current: 'allowed: 2g, 3g, 4g; preferred: none'
  -------------------------
  Bands    |      supported: 'unknown'
           |        current: 'unknown'
  -------------------------
  IP       |      supported: 'ipv4, ipv6, ipv4v6'
  -------------------------
  3GPP     |           imei: '359072065668440'
           |  enabled locks: 'none'
           |    operator id: 'unknown'
           |  operator name: 'unknown'
           |   subscription: 'unknown'
           |   registration: 'unknown'
           |    EPS UE mode: 'csps-2'
  -------------------------
  SIM      |           path: '/org/freedesktop/ModemManager1/SIM/0'

  -------------------------
  Bearers  |          paths: 'none'

mmcli -i 0
Shows the propper iccid for the SIM.

BTW, you don’t have to create bearer and connect in two steps. You can use

mmcli -m 0 --simple-connect="apn=nimblink.gw12.vzwentp" 

to do both in one step.

Thank you for the heads up. I tried that and I get a Network timeout.

mmcli -m 0 --simple-connect="apn=nimblink.gw12.vzwentp"
error: couldn't connect the modem: 'GDBus.Error:org.freedesktop.ModemManager1.Error.MobileEquipment.NetworkTimeout: Network timeout'

In the ModemManager debug output

ModemManager[13322]: <info>  [1573683767.431687] Simple connect started...
ModemManager[13322]: <debug> [1573683767.431767]    PIN: unspecified
ModemManager[13322]: <debug> [1573683767.431790]    Operator ID: unspecified
ModemManager[13322]: <debug> [1573683767.431812]    Allowed roaming: yes
ModemManager[13322]: <debug> [1573683767.431833]    APN: nimblink.gw12.vzwentp
ModemManager[13322]: <debug> [1573683767.431853]    IP family: unspecified
ModemManager[13322]: <debug> [1573683767.431874]    Allowed authentication: unspecified
ModemManager[13322]: <debug> [1573683767.431896]    User: unspecified
ModemManager[13322]: <debug> [1573683767.431916]    Password: unspecified
ModemManager[13322]: <debug> [1573683767.431951]    Number: unspecified
ModemManager[13322]: <info>  [1573683767.431965] Simple connect state (4/8): Wait to get fully enabled
ModemManager[13322]: <info>  [1573683767.432000] Simple connect state (5/8): Register
ModemManager[13322]: <debug> [1573683767.432033] Launching automatic network registration...
ModemManager[13322]: <debug> [1573683767.432062] (ttyUSB2) device open count is 2 (open)
ModemManager[13322]: <debug> [1573683767.432108] (ttyUSB2): --> 'AT+COPS=0<CR>'
ModemManager[13322]: <debug> [1573683767.447024] (ttyUSB2): <-- '<CR><LF>+CME ERROR: 13<CR><LF>'
ModemManager[13322]: <debug> [1573683767.447083] Got failure code 13: SIM failure
ModemManager[13322]: <debug> [1573683767.447200] (ttyUSB2) device open count is 1 (close)

To compare that against create-bearer

mmcli -m 0 --create-bearer="apn=nimblink.gw12.vzwentp" 
Successfully created new bearer in modem:
	/org/freedesktop/ModemManager1/Bearer/0
mmcli -m 0 -b 0 -c
successfully connected the bearer

mmcli -b 0  
Bearer '/org/freedesktop/ModemManager1/Bearer/0'
  -------------------------
  Status             |   connected: 'yes'
                     |   suspended: 'no'
                     |   interface: 'ttyUSB2'
                     |  IP timeout: '20'
  -------------------------
  Properties         |         apn: 'nimblink.gw12.vzwentp'
                     |     roaming: 'allowed'
                     |     IP type: 'none'
                     |        user: 'none'
                     |    password: 'none'
                     |      number: 'none'
                     | Rm protocol: 'unknown'
  -------------------------
  IPv4 configuration |   method: 'ppp'
                     |  address: 'unknown'
                     |   prefix: '0'
                     |  gateway: 'unknown'
                     |      DNS: none
  -------------------------
  IPv6 configuration |   method: 'unknown'
  -------------------------
  Stats              |          Duration: '59'
                     |    Bytes received: 'N/A'
                     | Bytes transmitted: 'N/A'

Thank you in advance

This is a file system. Do you have write permission to this file?

If you have, then the only remaining possibility I can think of is that the type change is denied by a notified driver. A NOTIFY_BAD return is mapped to EPERM.

You didn’t add this interface to a bridge or team, did you? That won’t work.

I cannot make any sense out of this. The only possible explanation I can come up with for this, and all the other weird QMI communication problems, is that you have some other process interfering with the transactions. Do an

lsof /dev/cdc-wdm0

and make sure the qmi-proxy is the only process reading there. And you should be using the proxy. Killing qmi-proxy might remove some symptom you are seeing, but it is unlikely to solve any problem.

If there is no interfering process, then I have absolutely no idea what could be wrong…

Why did you get a “SIM failure” error from this AT command? There is something really fishy going on here.

This is a file system. Do you have write permission to this file?

Yes I do. The device in question has been set to down, so I should be able to set this, and as mentioned I had no issue doing this with the Telit, so this looks to be unique with MC7455.
When I attempt to set this in dmesg I see the following message.

[ 447.710024] qmi_wwan 1-3:1.8 wwp0s21u3i8: Type change was refused

Doing lsof for both the devices that are present show nothing is using it. At the time of doing this I do not have qmi-proxy running. Also this is right after a reboot without modem manager and network manager running, so nothing else should be using this.

# ls -la /dev | grep cdc
crw-------  1 root root 180, 176 Nov 15 14:25 cdc-wdm0
crw-------  1 root root 180, 177 Nov 15 14:25 cdc-wdm1

I do not get this issue in an Ubuntu Environment 18.04 environment, so that is something I can take a look at further, but the SIM card issue that I mention below occurs in both.

Switching to look at the SIM issue you mention

Yes this is quite strange that AT+COPS that its returning SIM failure.

I captured output of uim-get-card-status in a couple of different cases.

  • With the telit module we see a both the Primary GW and Primary 1X have a defined slot and application being used.
  • With the MC7455 we only see the primary GW being set but the Primary 1X stating that the session does not exist. I captured MC7455 without any SIM which shows different output and with a different SIM that’s not associated to the module. I even tried a brand new SIM.
  • The application 1 in the MC7455 shows detected and not ready, and the application 3 (usim) shows an application state of illegal.
  • With the MC7455 I also tried this in different environments
    • Gentoo - Linux Kernel 4.19.27 (qmicli - 1.22.2) - via mini-pcie onboard
    • Gentoo - Linux Kernel 4.19.27 (qmicli - 1.22.2) - via mini-pcie to usb adapter with SIM
    • Ubuntu 18.04.3 LTS - Linux Kernel 5.0.0-23-generic - via mini-pcie to usb adapter with SIM

Below is the SIM card state in all cases

Telit LE910-SVG - works

===== --uim-get-card-status ========
[/dev/cdc-wdm0] Successfully got card status
Provisioning applications:
	Primary GW:   slot '1', application '3'
	Primary 1X:   slot '1', application '1'
	Secondary GW: session doesn't exist
	Secondary 1X: session doesn't exist
Slot [1]:
	Card state: 'present'
	UPIN state: 'not-initialized'
		UPIN retries: '0'
		UPUK retries: '0'
	Application [1]:
		Application type:  'csim (4)'
		Application state: 'ready'
		Application ID:
			A0:00:00:03:43:10:02:F3:10:FF:FF:89:02:00:00:FF
		Personalization state: 'ready'
		UPIN replaces PIN1: 'no'
		PIN1 state: 'disabled'
			PIN1 retries: '3'
			PUK1 retries: '10'
		PIN2 state: 'enabled-not-verified'
			PIN2 retries: '3'
			PUK2 retries: '10'
	Application [2]:
		Application type:  'isim (5)'
		Application state: 'detected'
		Application ID:
			A0:00:00:00:87:10:04:F3:10:FF:FF:89:08:00:00:FF
		Personalization state: 'unknown'
		UPIN replaces PIN1: 'no'
		PIN1 state: 'disabled'
			PIN1 retries: '3'
			PUK1 retries: '10'
		PIN2 state: 'not-initialized'
			PIN2 retries: '0'
			PUK2 retries: '0'
	Application [3]:
		Application type:  'usim (2)'
		Application state: 'ready'
		Application ID:
			A0:00:00:00:87:10:02:F3:10:FF:FF:89:08:00:00:FF
		Personalization state: 'ready'
		UPIN replaces PIN1: 'no'
		PIN1 state: 'disabled'
			PIN1 retries: '3'
			PUK1 retries: '10'
		PIN2 state: 'enabled-not-verified'
			PIN2 retries: '3'
			PUK2 retries: '10'
	Application [4]:
		Application type:  'unknown (0)'
		Application state: 'detected'
		Application ID:
			A0:00:00:00:63:50:4B:43:53:2D:31:35
		Personalization state: 'unknown'
		UPIN replaces PIN1: 'no'
		PIN1 state: 'not-initialized'
			PIN1 retries: '0'
			PUK1 retries: '0'
		PIN2 state: 'not-initialized'
			PIN2 retries: '0'
			PUK2 retries: '0'

MC7455 - Without a SIM card

===== --uim-get-card-status ========
[/dev/cdc-wdm1] Successfully got card status
Provisioning applications:
    Primary GW:   session doesn't exist
    Primary 1X:   session doesn't exist
    Secondary GW: session doesn't exist
    Secondary 1X: session doesn't exist
Slot [1]:
    Card state: 'error: no-atr-received (3)
    UPIN state: 'not-initialized'
   	 UPIN retries: '0'
   	 UPUK retries: '0'

MC7455 - With a valid SIM card

===== --uim-get-card-status ========
[/dev/cdc-wdm1] Successfully got card status
Provisioning applications:
	Primary GW:   slot '1', application '3'
	Primary 1X:   session doesn't exist
	Secondary GW: session doesn't exist
	Secondary 1X: session doesn't exist
Slot [1]:
	Card state: 'present'
	UPIN state: 'not-initialized'
		UPIN retries: '0'
		UPUK retries: '0'
	Application [1]:
		Application type:  'csim (4)'
		Application state: 'detected'
		Application ID:
			A0:00:00:03:43:10:02:F3:10:FF:FF:89:02:00:00:FF
		Personalization state: 'unknown'
		UPIN replaces PIN1: 'no'
		PIN1 state: 'not-initialized'
			PIN1 retries: '0'
			PUK1 retries: '0'
		PIN2 state: 'not-initialized'
			PIN2 retries: '0'
			PUK2 retries: '0'
	Application [2]:
		Application type:  'isim (5)'
		Application state: 'detected'
		Application ID:
			A0:00:00:00:87:10:04:F3:10:FF:FF:89:08:00:00:FF
		Personalization state: 'unknown'
		UPIN replaces PIN1: 'no'
		PIN1 state: 'disabled'
			PIN1 retries: '3'
			PUK1 retries: '10'
		PIN2 state: 'not-initialized'
			PIN2 retries: '0'
			PUK2 retries: '0'
	Application [3]:
		Application type:  'usim (2)'
		Application state: 'illegal'
		Application ID:
			A0:00:00:00:87:10:02:F3:10:FF:FF:89:08:00:00:FF
		Personalization state: 'ready'
		UPIN replaces PIN1: 'no'
		PIN1 state: 'disabled'
			PIN1 retries: '3'
			PUK1 retries: '10'
		PIN2 state: 'enabled-not-verified'
			PIN2 retries: '2'
			PUK2 retries: '10'
	Application [4]:
		Application type:  'unknown (0)'
		Application state: 'detected'
		Application ID:
			A0:00:00:00:63:50:4B:43:53:2D:31:35
		Personalization state: 'unknown'
		UPIN replaces PIN1: 'no'
		PIN1 state: 'not-initialized'
			PIN1 retries: '0'
			PUK1 retries: '0'
		PIN2 state: 'not-initialized'
			PIN2 retries: '0'
			PUK2 retries: '0'

MC7455 - With an entirely different SIM card

===== --uim-get-card-status ========
[/dev/cdc-wdm1] Successfully got card status
Provisioning applications:
    Primary GW:   slot '1', application '3'
    Primary 1X:   session doesn't exist
    Secondary GW: session doesn't exist
    Secondary 1X: session doesn't exist
Slot [1]:
    Card state: 'present'
    UPIN state: 'not-initialized'
   	 UPIN retries: '0'
   	 UPUK retries: '0'
    Application [1]:
   	 Application type:  'csim (4)'
   	 Application state: 'detected'
   	 Application ID:
   		 A0:00:00:03:43:10:02:F3:10:FF:FF:89:02:00:00:FF
   	 Personalization state: 'unknown'
   	 UPIN replaces PIN1: 'no'
   	 PIN1 state: 'not-initialized'
   		 PIN1 retries: '0'
   		 PUK1 retries: '0'
   	 PIN2 state: 'not-initialized'
   		 PIN2 retries: '0'
   		 PUK2 retries: '0'
    Application [2]:
   	 Application type:  'isim (5)'
   	 Application state: 'detected'
   	 Application ID:
   		 A0:00:00:00:87:10:04:F3:10:FF:FF:89:08:00:00:FF
   	 Personalization state: 'unknown'
   	 UPIN replaces PIN1: 'no'
   	 PIN1 state: 'disabled'
   		 PIN1 retries: '3'
   		 PUK1 retries: '10'
   	 PIN2 state: 'not-initialized'
   		 PIN2 retries: '0'
   		 PUK2 retries: '0'
    Application [3]:
   	 Application type:  'usim (2)'
   	 Application state: 'illegal'
   	 Application ID:
   		 A0:00:00:00:87:10:02:F3:10:FF:FF:89:08:00:00:FF
   	 Personalization state: 'ready'
   	 UPIN replaces PIN1: 'no'
   	 PIN1 state: 'disabled'
   		 PIN1 retries: '3'
   		 PUK1 retries: '10'
   	 PIN2 state: 'enabled-not-verified'
   		 PIN2 retries: '3'
   		 PUK2 retries: '10'
    Application [4]:
   	 Application type:  'unknown (0)'
   	 Application state: 'detected'
   	 Application ID:
   		 A0:00:00:00:63:50:4B:43:53:2D:31:35
   	 Personalization state: 'unknown'
   	 UPIN replaces PIN1: 'no'
   	 PIN1 state: 'not-initialized'
   		 PIN1 retries: '0'
   		 PUK1 retries: '0'
   	 PIN2 state: 'not-initialized'
   		 PIN2 retries: '0'
   		 PUK2 retries: '0'

MC7455 - New SIM card that was just activated for it

===== --uim-get-card-status ========
[/dev/cdc-wdm1] Successfully got card status
Provisioning applications:
    Primary GW:   slot '1', application '3'
    Primary 1X:   session doesn't exist
    Secondary GW: session doesn't exist
    Secondary 1X: session doesn't exist
Slot [1]:
    Card state: 'present'
    UPIN state: 'not-initialized'
   	 UPIN retries: '0'
   	 UPUK retries: '0'
    Application [1]:
   	 Application type:  'csim (4)'
   	 Application state: 'detected'
   	 Application ID:
   		 A0:00:00:03:43:10:02:F3:10:FF:FF:89:02:00:00:FF
   	 Personalization state: 'unknown'
   	 UPIN replaces PIN1: 'no'
   	 PIN1 state: 'not-initialized'
   		 PIN1 retries: '0'
   		 PUK1 retries: '0'
   	 PIN2 state: 'not-initialized'
   		 PIN2 retries: '0'
   		 PUK2 retries: '0'
    Application [2]:
   	 Application type:  'isim (5)'
   	 Application state: 'detected'
   	 Application ID:
   		 A0:00:00:00:87:10:04:F3:10:FF:FF:89:08:00:00:FF
   	 Personalization state: 'unknown'
   	 UPIN replaces PIN1: 'no'
   	 PIN1 state: 'disabled'
   		 PIN1 retries: '3'
   		 PUK1 retries: '10'
   	 PIN2 state: 'not-initialized'
   		 PIN2 retries: '0'
   		 PUK2 retries: '0'
    Application [3]:
   	 Application type:  'usim (2)'
   	 Application state: 'illegal'
   	 Application ID:
   		 A0:00:00:00:87:10:02:F3:10:FF:FF:89:08:00:00:FF
   	 Personalization state: 'ready'
   	 UPIN replaces PIN1: 'no'
   	 PIN1 state: 'disabled'
   		 PIN1 retries: '3'
   		 PUK1 retries: '10'
   	 PIN2 state: 'enabled-not-verified'
   		 PIN2 retries: '3'
   		 PUK2 retries: '10'
    Application [4]:
   	 Application type:  'unknown (0)'
   	 Application state: 'detected'
   	 Application ID:
   		 A0:00:00:00:63:50:4B:43:53:2D:31:35
   	 Personalization state: 'unknown'
   	 UPIN replaces PIN1: 'no'
   	 PIN1 state: 'not-initialized'
   		 PIN1 retries: '0'
   		 PUK1 retries: '0'
   	 PIN2 state: 'not-initialized'
   		 PIN2 retries: '0'
   		 PUK2 retries: '0'

So this seems like a MC7455 module issue with reading the application contexts, or is there something else going on?

Thank you in advance, I appreciate any help.

I must admit that I am completely clueless now. But I still believe this assertion must be wrong. There is no hardware/firmware dependency in the code behind the “raw_ip” sysfs attribute. It’s a completely driver internal thing. Just look at the raw_ip_store() function here:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/net/usb/qmi_wwan.c#n357

And the only way I can see the code failing with EPERM is if call_netdevice_notifiers(NETDEV_PRE_TYPE_CHANGE,…) returns NOTIFY_BAD. But you should an error message in the log then.

Any ideas on the SIM output from my previous comment above? As mentioned I don’t see the raw_ip error in ubuntu, and the SIM output is the same in both cases.