Flash on Zyxel NR7101

Many ways to do that. If using ModemManager you could look at access tech:

# mmcli -m any|grep access
           |          access tech: lte

Don't know exactly what it will say for 3g. There are quite som options:
https://www.freedesktop.org/software/ModemManager/api/latest/ModemManager-Flags-and-Enumerations.html#MMModemAccessTechnology

Probably "umts" or "hspa" or something similar. It's been a while since we had 3G around here :slight_smile:

1 Like

Thanks. I'm trying to diagnose non bufferbloat related ping having increased from circa 35ms to circa 60ms when unloaded. Any idea? Cell tower maintenance? Signal stats excellent and same cell tower.

root@OpenWrt:~# mmcli -m any --signal-get
  ----------------------
  Signal | refresh rate: 5 seconds
  ----------------------
  LTE    |         rssi: -44.00 dBm
         |         rsrq: -7.00 dB
         |         rsrp: -72.00 dBm
         |          s/n: 19.60 dB

But this ping increase only affects the Zyxel NR7101 and not my Pixel 3a.

Is it possible to hide number when sending SMS (I have redirect to SIM and don't want SIM number coming up)?

This is decided by the SMS service operator. It might be offered as a premium service. Or not. You don't want anyone else spoof your number, do you?

But this is just a simple option on any Android phone to show or hide number.

Isn't there a counterpart to this?

That's for calls, isn't it? Does it hide your number in SMS messages too? I guess it does.

Well, looks like the modem in the NR7101 supports AT+CLIP and AT+CLIR, so you could try those:

root@OpenWrt:/# mmcli -m any --command='AT+CLIP=?'
response: '+CLIP: (0,1)'
root@OpenWrt:/# mmcli -m any --command='AT+CLIR=?'
response: '+CLIR: (0-2)'
1 Like

This is how I got Zyxel firmware:

root@linux:~$ zyxel_pwgen/getsupervisor.sh SN

PW

Open 12 screws, connect usb-serial adapter

o-ooo
s-gh-

Login putty, root / pass (com3, serial, 57600)

iptables -F

Manual ip: 192.168.2.2, 255.255.255.0, 192.168.2.1, 192.168.2.1

From linux shell (Ubuntu):

  • sudo nano /etc/ssh/ssh_config
  • port 22022
  • ctrl-x
  • ssh root@172.17.1.1

Log in as β€œroot” on 172.17.1.1 port 22022

sudo scp firmware.bin [root@172.17.1.1:/tmp]
(Downloaded from Advanced Downloads for 5G devices – Zyxel Support Campus EMEA)

Prepare bootloader config by running:

nvram setro uboot DebugFlag 0x1

nvram setro uboot CheckBypass 0

nvram commit

Run mtd_write -w write initramfs-recovery.bin Kernel and reboot

Wait for the new firmware to boot and ssh to root@192.168.1.1

Log into 192.168.1.1 with supervisor and supervisor password if installed Zyxel firmware

If installed OpenWRT you need to set password

Thanks to this forum and @bmork for all the hints

1 Like

What is this ?

It's the serial pinout:
o-ooo
s-gh-

Sorry, but that's in norwegian:
s=Black
g=Green
h=White

image

[o] GND (black)
[ ] key - no pin
[o] RX (orange) (TX on cable)
[o] TX (red) (RX on cable)
[o] 3.3V Vcc (brown)

1 Like

Hi, Morgan

Nob, and trying to do this. HAve a Telenor like you.
Got the CP2102, and it works.
But do you breake the boot, or do you need to get the root psw for shell session?

thanks!

These are the high level steps I used to get back to stock FW:

  1. Get a USB Serial adapter and connect to the on-board connector.
  2. Connect with a terminal application as the device boots up. This will give you a shell session on the device, but without using the network.
  3. Temporarily enable http/https/ssh connectivity (iptables). This will open the device to allow you to connect to it through its internal Wifi AP.
  4. Use Web GUI to flash stock Zyxel FW.
  5. Flash OpenWRT from the Zyxel web GUI (optional).

Why do you gents want to go back to original firmware?

I have found 22.03.2 to work extremely well with this device, which has been running for months now with great LTE stats and without any issues whatsoever.

The only caveat was that to keep the device connected following ISP disconnects I had to upgrade ModemManager to version 1.18.12 (by manually installing .ipk) and edit the 10-report-down script to:

root@OpenWrt:/usr/lib/ModemManager/connection.d# cat 10-report-down-and-reconnect
#!/bin/sh

# Report modem disconnect to netifd and reconnect if the interface was up

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

MODEM_PATH="$1"
BEARER_PATH="$2"
INTERFACE="$3"
STATE="$4"

[ "${STATE}" = "disconnected" ] || exit 0

. /usr/share/ModemManager/modemmanager.common
. /lib/netifd/netifd-proto.sh
INCLUDE_ONLY=1 . /lib/netifd/proto/modemmanager.sh

MODEM_STATUS=$(mmcli --modem="${MODEM_PATH}" --output-keyvalue)
[ -n "${MODEM_STATUS}" ] || exit 1

MODEM_DEVICE=$(modemmanager_get_field "${MODEM_STATUS}" "modem.generic.device")
[ -n "${MODEM_DEVICE}" ] || exit 2

CFG=$(mm_get_modem_config "${MODEM_DEVICE}")
[ -n "${CFG}" ] || exit 3

IFUP=$(ifstatus ${CFG} | jsonfilter -e '@.up')

logger -t "modemmanager" "interface ${CFG} (network device ${INTERFACE}) ${STATE}"
proto_init_update $INTERFACE 0
proto_send_update $CFG

[ "${IFUP}" = "true" ] && ifup ${CFG}

exit 0

That is, conditionally bring wan back up if it was up prior to having been brought down following the disconnect.

Without this modification then upon any disconnection, the modem would remain disconnected and I would not have any internet access.

This modification has worked just fine for months now, even if it is a bit of a hack.