Netgear LBR20
The NETGEAR ORBI LBR20 is an arm_cortex-a7+neon-vfpv4, Qualcomm Atheros IPQ4019 / QCA9886 system with a Quectel EG18-NA (North America version) Cat 18 4G LTE modem chip.
Image Credits: https://www.the-ambient.com/reviews/netgear-orbi-4g-lte-router-lbr20-review-2532/
Hardware Highlights
Installation
OEM easy installation
Flash the current SNAPSHOT of the Openwrt Factory image, through the Netgear/Voxel firmware.
- You will get a warning that the version you are trying to flash is older. Just click 'Yes' and proceed.
- Settings in the NVRAM (the settings for the Netgear/Voxel configuration you are currently running) do not get reset.
- If you flash back to Netgear/Voxel, the LBR20 will start with the settings you had before you flashed Openwrt.
- This is convenient, because if you have a little difficulty with Openwrt or need to test something out, the N/V firmware will still have your previous settings.
OEM installation using the TFTP method
To consistently get the LBR20 into TFTP recovery mode, such as when you want to flash back to Netgear/Voxel from an active Openwrt image, pull power from the connector on the back, press and hold the RESET button with a SIM tool, and push the power connector back in. Wait 30 seconds before releasing the RESET button. The LBR20's white tower light should be regularly turning on and off, and the power LED indicator near the power port, should be blinking RED.
Now you can set your ethernet adapter to 192.168.1.10 and use your laptop to tftp an image into the device on port 69, as per normal NETGEAR TFTP recovery.
Use the LAN2 port as the wired connection to your laptop when configuring the ORBI LBR20, not the WAN/LAN1 port.
Upgrading OpenWrt
Debricking
Follow the TFTP flash guide on this page, above.
Failsafe mode
See the TFTP flash guide above.
Basic configuration
Use the LAN2 port as the wired connection to your laptop when flashing/configuring the ORBI LBR20, not the WAN/LAN1 port.
Openwrt does not enable IPv6 on the cell connection by default. Only IPv4. That's a problem, because downloads.openwrt.org does not fully support IPv4, so you will get errors when trying to run 'opkg update' then e.g. 'opkg install luci-ssl' (so you can have web access, as SNAPSHOT does not contain Luci). There are kludgy work-arounds for the underlying wget, but the best thing is to use an SCP app (such as WinSCP) to connect into the LBR20, and edit the file /etc/config/network, changing the 'pdptype' value to be 'ipv4v6' instead of 'ipv4', and then save and restart the router. You should have basic cell connectivity now, particularly if the Orbi LBR20 was working previously on the Netgear/Voxel firmware, as the Quectel modem will pull configuration information from the SIM card.
- The only text editor included with SNAPSHOT, is VI. Not nano or anything reasonably easier and intuitive. So you are in a Catch-22 if you want to ssh into the LBR20 and edit the network config. Unless you want to learn VI. That is why the suggestion to use SCP.
Specific Configuration & Gotchas
Quectel modems in general have an earned reputation for having firmware stability issues and design flaws. If you run into frustrating issues specifically with regards to the cell connection/modem, it is not likely to be Openwrt. The modem runs its own closed-source firmware, like a router within a router, and, unless it's in QMI mode (AT+QCFG=“usbnet”,0
), which is the default [where the IP assignment from the cell provider is directly assigned to the wwan interface] the modem also does its own routing inside the modem, which means you will get a double-NAT situation [e.g. if you use MBIM and NDIS instead]:
- DO NOT, under any circumstances, tell the ORBI LBR20 tower LED lights (referred to as 'backlights' in the LED Configuration page in Luci) to blink in coordination with wwan0 (cell modem) receive/transmit. That causes some kind of hardware signal interference, which will cause a crash of your cellular connection/modem. If you notice, the Netgear and Voxel firmware do not use the tower light for that indicator, and in those, that light is completely off when the LBR20 is connected and running properly. A solid LED when the link status is
ON
, such as a purple light by using both the red and blue LEDs, does not interfere.
- NETGEAR provided only 2 firmware revisions for the LBR20 (NA models), that could only be flashed through the Netgear (or Voxel) firmware; an A05, and A06 01.002. Both can have issues causing disconnects, or the modem to become unresponsive, sometimes requiring a reboot. The latest (05/2024) firmware, A06 01.008, seems very stable [A12 for EG18-EA (EU) models], but is only available on the Quectel Support Forum. See also EG18NAPAR01xxxM4G Firmware Request; Quectel staff will email modem firmware to you on request - they do not at present have a download site. It can take a week for them to response. It may be faster to register to the forum and email another member who has already received it!
- If you run the stock A05/A06, and do not have a wan watchdog script running in cron (Scheduled Tasks) to try to compensate for the issues, the 4G LTE connection will just 'die', and you will have no internet.
- Qfirehose Quectel Modem Upgrade-Flashing Procedure: Once you have acquired the qfirehose binary, put it in /root and mark it as executable. Unzip the Quectel-provided firmware to your computer, and upload the contents [update folder, contents.xml, and md5.txt] to the
/tmp
folder. There isn't enough user-storage space partitioned on the Orbi LBR20 to put it in /root. Disable your wan-watchdog.sh script. From a terminal (laptop) with a wired connection to the router, runqfirehose -f /tmp
. Allow the flash procedure to finish to 100% and confirm completion:* [083.292]: Upgrade module successfully.
- The modem (not the entire router) will reboot in 10 seconds, and then reconnect to the cell provider.
- Using
picocom /dev/ttyUSB2
, send the modem anAT+QGMR
, to display the current firmware revision.
- The latest A06 01.008 modem firmware, does not display a 01.008 revision code after the ...A06M4G response.
- The Netgear-provided A05 firmware, also does not display a revision code after the A05M4G response.
- The
/dev/ttyUSB2
may disappear after flashing, and be replaced with /dev/ttyUSB3 (0,1,2&3 → 0,1,3&4). That is a temporary artifact of flashing the modem. You might trypicocom /dev/ttyUSB3
, or reboot the ORBI LBR20, and the assignments will revert to 0,1,2&3.
QMI / wwan0 / 4G LTE Monitoring Script
Here is a wan_watchdog.sh script that tests the connection, and if it receives no response from several well-known DNS providers, it can:
- Tell the modem to soft-off.
- Tell the modem to soft-on (boot up).
- Restart the interface, and
- Reboot the router (if everything prior was unsuccessful).
- You will need to add the packages 'socat' and 'fping'.
- Save this as 'wan-watchdog.sh' in your /root/. Make it executable (
chmod +x wan-watchdog.sh
) - Add
*/4 * * * * /root/wan-watchdog.sh
in your Scheduled Tasks.
#!/bin/sh routeruptime=$(ubus call system info | jsonfilter -e "$['uptime']") echo $routeruptime "seconds of uptime since last reboot." sleep 2 if [[ $routeruptime -gt 300 ]]; then echo "Router uptime greater than 5 minutes, continuing.." sleep 2 else echo "Been up for less than 5 minutes, quitting script." exit 0 fi TRIES="0" while [[ "${TRIES}" -lt 3 ]] do echo "Attempt" $TRIES "..." echo "Attempting to ping a variety of well-known ipv4 and ipv6 addresses..." # ONE site failure will not fail fping. All of them failing, will. if fping --alive 1.1.1.1 9.9.9.9 8.8.8.8 2001:4860:4860::8888 2620:fe::fe | grep -q . # if fping --alive blablahblah | grep -q . # this will intentionally make the script fail, when we are testing. then echo "POSITIVE ONLINE SUCCESS: Not doing anything. EXITING IMMEDIATELY" # Positive reply from one (1) of the fping destinations - do nothing. exit 0 fi sleep 1 # Pause 1 second, before incrementing the number of tries, and re-trying the fping. TRIES=$(($TRIES+1)) done echo "PING FAILED 3 CONSECUTIVE TIMES. Attempting to restart wwan cell connection." sleep 2 # There are a variety of ways to restart the Quectel/4G interface. # The original script used hub-ctrl to turn-off, then turn-on, the USB hub. # However, devices like the Orbi LBR20 with a EM18-xx 4G chip, don't use a # USB bus. Older devices like the GL-X750, do (through a mini-pci-e slot). # Restart hub: (GL-X750/EC25-AF) # hub-ctrl -b 001 -d 002 -P 2 -p 0 # More general use: EG18xx EC25xx etc: ifup qmippp # restarts the interface sleep 15 # give the modem time to reconnect # Alternative method (older modem firmware, ymmv) # Tell the modem to turn off without actually disconnecting the tty serial # communication interface: # echo AT+CFUN=0 | socat - /dev/ttyUSB2,crnl # This does wear the storage on the modem. # sleep 3 # Tell the modem to turn on # echo AT+CFUN=1 | socat - /dev/ttyUSB2,crnl # sleep 7 echo "Restarted QMIPPP" >> /root/wan_reset_log.txt # Make a record in the log. date >> /root/wan_reset_log.txt # Write the date. This will be persistent between reboots. # sleep 2 # pause before bringing the hub back up # hub-ctrl -b 001 -d 002 -P 2 -p 1 # Test if the previous steps worked. If yes, exit. If no, reboot. # if fping --alive 1.1.1.1 9.9.9.9 8.8.8.8 2001:4860:4860::8888 2620:fe::fe | grep -q . # then # echo "SUCCESS: 'ifup qmippp' worked, no need for network restart." >> /root/wan_reset_log.txt # echo "SUCCESS: 'ifup qmippp' worked, no need for network restart." # exit 0 # fi # echo "FAILURE: 'ifup qmippp' did not work by itself, the modem is unresponsive. Restarting network..." # sleep 3 # /etc/init.d/network restart # sleep 25 if fping --alive 1.1.1.1 9.9.9.9 8.8.8.8 2001:4860:4860::8888 2620:fe::fe | grep -q . then echo "SUCCESS: WWAN restart worked, no need for reboot" >> /root/wan_reset_log.txt echo "SUCCESS: WWAN restart worked, no need for reboot" exit 0 fi echo "FAILURE: reboot required." >> /root/wan_reset_log.txt echo "FAILURE: reboot required. Rebooting..." sleep 3 reboot
Network interfaces
The default network configuration in Openwrt is:
Interface Name | Description | Default configuration |
---|---|---|
br-lan | WAN/LAN1 & LAN2 | 192.168.1.1/24 |
wwan0 | QMI Modem mode | Working, but only IPv4 by default |
</WRAP>
Buttons
→ hardware.button on howto use and configure the hardware button(s). Here, we merely name the buttons, so we can use them in the above Howto.
The Netgear LBR20 has the following buttons:
BUTTON | Event |
---|---|
Sync | For setting up mesh nodes with the stock firmware |
Reset | Reset/TFTP recovery mode |
Hardware
Info
- This table is automatically generated, once the correct filters for Brand and Model are set.
- If you see “Nothing.” instead of a table, please edit this section and adjust the filters with the proper Brand and Model. Just try, it's easy.
- If you still don't see a table here, or a table filled with '¿': Is there already a Techdata page available for Netgear LBR20 ? If not: Create one.
- If you see a table with the desired device data, everything is OK and you can delete this text and the
<WRAP>
that encloses it. - If it still doesn't work: Don't panic, calm down, take a deep breath and contact a wiki admin (tmomas) for help.
---- datatemplatelist dttpllist ---- template: meta:template_datatemplatelist cols : Brand, Model, Versions, Device Type, Availability, Supported Since Commit_git, Supported since Rel, Supported current Rel, Unsupported, Bootloader, CPU, Target, CPU MHz, Flash MBs, RAM MB, Switch, Ethernet 100M ports_, Ethernet Gbit ports_, Comments network ports_, Modem, VLAN, WLAN 2.4GHz, WLAN 5.0GHz, WLAN Hardwares, WLAN Comments_, Detachable Antennas_, USB ports_, SATA ports_, Comments USB SATA ports_, Serial, JTAG, LED count, Button count, Power supply, Device Techdata_pageid, Forum topic URL_url, wikidevi URL_url, OEM Device Homepage URL_url, Firmware OEM Stock URL_url, Firmware OpenWrt Install URL_url, Firmware OpenWrt Upgrade URL_url, Comments_ filter : Brand=Netgear filter : Model=LBR20 filter : Versions=
Photos
See above photos.
Opening the case
Note: This will void your warranty!
Here's a good video on how to open it up: https://www.youtube.com/watch?v=ModkiMVGvu8
- Remove the 8mm nuts on the LTE External antenna connectors.
- There are Torx screws above and to the outer side of the LTE Antenna ports, behind the rear label.
- Cut the bottom label in half along the seam, or peel it off.
- Remove the two rubber feet on either side, that bridge the front and back halves of the case.
- Now you can slide the front half of the case down, and it will lift directly off.
Serial
→ port.serial general information about the serial port, serial port cable, etc.
How to connect to the Serial Port of this specific device:
Insert photo of PCB with markings for serial port
Replace EXAMPLE by real values.
Serial connection parameters for Netgear LBR20 @@Version@@ | EXAMPLE 115200, 8N1, 3.3V |
---|
JTAG
→ port.jtag general information about the JTAG port, JTAG cable, etc.
How to connect to the JTAG Port of this specific device:
Insert photo of PCB with markings for JTAG port
Bootloader mods
Hardware mods
See the above Youtube video, as after he separates the case, it goes into how to install additional antennas. The ORBI LBR20 has internal UF.L connectors.
Bootlogs
OEM bootlog
COPY HERE THE BOOTLOG WITH THE ORIGINAL FIRMWARE
OpenWrt bootlog
COPY HERE THE BOOTLOG ONCE OPENWRT IS INSTALLED AND RUNNING
Notes
Space for additional notes, links to forum threads or other resources.
- ...
Tags
Add tags below, then remove this fixme.