EM7455, can't get it to work on 21.02.3

@frollic check out this:

I recall there was a command you could use after unlocking the modem to engineering mode, to disable FCC auth permanently, but I can't find it right now. Did that on one of Lenovo-branded modules, Dell ones didn't require that.
Edit: found that. AT!PCFCCAUTH command is your friend: https://forum.sierrawireless.com/t/em7455-deactivate-low-power-mode/8620/6
When you successfully enter AT!OPENLOCK, its status becomes writable.

For MBIM support, you can cherry-pick my PR if you fancy building your image or just replacing mbim.sh, it contains several fixes, tested on EM7455, however most of which didn't land in upstream yet. I need to come back and refactor it a tiny bit.

Thank you @Leo-PL,

this is startng to become a time vampire .... :wink:

the modem looks like it's up, the WAN LED is on, but I need to figure out how to set it up in openwrt.

really out of my comfort depth with this MC7455 :confused:

@frollic how is going? did you make it work? I am considering to buy the same Sierra modem to use it with openwrt

I had to take a step back from it.

I was trying to set it up on a Roqos RC10, where the USB port was misbehaving, and I wasn't
sure if the problem I was experiencing was because of the port, or related to the modem.

My modem (bought used) have a FCC lock, and needs to be unlocked, still not sure if it have
to be done every time I start it, or just once.

ModemManager have an "addon" for doing it, but those files have been removed from the MM
package in Openwrt. Most of them are also gone from the official tar.xz, but I didn't check the older
releases posted at https://www.freedesktop.org/software/ModemManager/, they might still contain them.

I just recently bought a Lanner NCA-1010B, and will be making another attempt, whenever time permits.

that is a nice device however I am running a pi zero as an AP for the house with 2x USB 4G dongles. They are Cat4 and I was planning to buy a Cat6 M.2 modem and a USB board to replace them.
The devices you are using look good but for the purpose I am looking for energy consumption is a factor too.

Every time the modem is rebooted.

Huh? The files are there in my ModemManager package at least:

root@wrt1900ac-1:~# ls -l /usr/share/ModemManager/fcc-unlock.available.d
-rw-r--r--    1 root     root           771 Mar 18 12:52 03f0:4e1d
-rw-r--r--    1 root     root          2650 Mar 18 12:52 105b
-rw-r--r--    1 root     root          2650 Mar 18 12:52 105b:e0ab
-rw-r--r--    1 root     root           771 Mar 18 12:52 1199
-rw-r--r--    1 root     root           771 Mar 18 12:52 1199:9079
-rw-r--r--    1 root     root           765 Mar 18 12:52 1eac
-rw-r--r--    1 root     root           765 Mar 18 12:52 1eac:1001
-rw-r--r--    1 root     root           615 Mar 18 12:52 2c7c
-rw-r--r--    1 root     root           615 Mar 18 12:52 2c7c:030a
-rw-r--r--    1 root     root           771 Mar 18 12:52 413c:81a3
-rw-r--r--    1 root     root           771 Mar 18 12:52 413c:81a8

The only change from earlier is that these are dsiabled by default, requiring an explicit action from the sysadmin. You enable an unlock method by symlinking to it from /etc/ModemManager/fcc-unlock.d

E.g on my laptop, which has a Lenovo EM7455:

bjorn@miraculix:~$ ls -l /etc/ModemManager/fcc-unlock.d
total 0
lrwxrwxrwx 1 root root 56 Dec 31  2021 1199:9079 -> /usr/share/ModemManager/fcc-unlock.available.d/1199:9079

Note that the scripts may require external utils. This one depends on qmicli for example, so you would have to install the qmi-utils package to make it work:

root@wrt1900ac-1:~# cat /usr/share/ModemManager/fcc-unlock.available.d/1199:9079 
#!/bin/sh

# SPDX-License-Identifier: CC0-1.0
# 2021 Aleksander Morgado <aleksander@aleksander.es>
#
# Sierra Wireless FCC unlock mechanism
#  HP 820 G1 (EM7355),    03f0:4e1d
#  Dell DW5570 (MC8805),  413c:81a3
#  Dell DW5808 (MC7355),  413c:81a8
#  Lenovo-shipped EM7455, 1199:9079
#

# require program name and at least 2 arguments
[ $# -lt 2 ] && exit 1

# first argument is DBus path, not needed here
shift

# second and next arguments are control port names
for PORT in "$@"; do
  # match port name
  echo "$PORT" | grep -q cdc-wdm && {
    CDC_WDM_PORT=$PORT
    break
  }
done

# fail if no cdc-wdm port exposed
[ -n "$CDC_WDM_PORT" ] || exit 2

# run qmicli operation
qmicli --device-open-proxy --device="/dev/$CDC_WDM_PORT" --dms-set-fcc-authentication
exit $?

All this and the rationale is documented on https://modemmanager.org/docs/modemmanager/fcc-unlock/

I'll keep digging on Mon, on my way to the airport.

Both options are available.

Consider something newer. Check what bands and CA combos are supported by your carrier in your location and make sure your new modem supports this.

Of course. Maybe the first gap here is to make openwrt to work on the pi zero 2. I was not able to find an image or a .config file to compile my own version. I tried it but it failed miserably.
Why that? because the usb hat I use on the pi zero is usb 2.0 and I think for a cat6 modem I will require usb3, that forces me to pi zero 2, the pi zero 1 limit is usb 2.0
Still looking modems and getting info in any case.

I booted a Sierra tool live image, containing the sierrakeygen, and ran it, it did the unlock procedure, even posted the key it sent, but tbh I don't know if it was for good, or just temp ,)

2nd option feels kinda pointless though, on a live image.

Check with AT!ENTERCND="A710" followed by AT!PCFCCAUTH?
All zeroes means no permanent lock.

not in the one I just installed post 22.03.5 "upgrade" - v1.18.6-2.

root@OpenWrt:/dev# ls -l /usr/share/ModemManager/
-rw-r--r--    1 root     root          3687 Aug 19  2022 mm-foxconn-t77w968-carrier-mapping.conf
-rw-r--r--    1 root     root          4122 Aug 19  2022 mm-foxconn-t99w175-carrier-mapping.conf
-rw-r--r--    1 root     root          9614 Aug 19  2022 modemmanager.common

Doh! You're right of course.

This is a relatively new change: https://github.com/openwrt/packages/commit/e430420aa176af672e913a2e50c5911e3ea70ef3 And it is unfortunately not part of the 22.03 branch.

Was away for a couple of days, and no time for playing around with this ...

OK
AT!ENTERCND="A710"
OK
AT!PCFCCAUTH?
NV Setting: 1
FCC Auth Enabled: 1
FCC Lock State: 1
OK

I guess it's still requires unlocking on every use ?

Right. Otherwise, a permanent unlock is required.

OK, seems I got that part solved.

Fired up the sierrakeygen again, with the modem in the openwrt device,
and run the keygen with the key and the modem type,

sierrakeygen.py -l [key challenge from modem] -d MDM9x30
then used the key it came back with, to unlock the modem, permanently, it seems.

AT!OPENLOCK?
key.challenge

OK
AT!OPENLOCK="key.answer"
OK
AT!PCFCCAUTH=0
OK
AT!PCFCCAUTH?
NV Setting: 0
FCC Auth Enabled: 1
FCC Lock State: 1

OK
AT!PCFCCAUTH=0
OK
AT!RESET
OK

at!entercnd="A710"
OK
AT!PCFCCAUTH?
NV Setting: 0
FCC Auth Enabled: 0
FCC Lock State: 0

(also documented in https://forum.sierrawireless.com/t/em7455-deactivate-low-power-mode/8620/22)

2 Likes