OpenWrt Support for Armor G5 (NBG7815)

I had also problems with connecting certain ax clients. I wasn't able to figure out what the isue is. So I helped myself in relaying all dhcp requests to an external dhcp server. Now everything works fine.

I have been doing some tests.
The tests have been done by adding LUCI and wpad-openssl to the default configuration of the NBG7815.

Problems with ax210 clients start with commit 930e702d72 and still is present on last commit, and only occur after firmware installation. If the router is rebooted after the inicial sysupgrade's reboot the problem disappears.

As a result of the tests carried out, I have found other problems that I list below:

Every time the router is rebooted or sysupgraded, it changes the Wi-Fi radios's MACs in the range of 00:03:7f:12:xx:xx. It is true that the MACs can be set through the device-interface or wireless config but it is somewhat unexpected (at least for me) and can cause problems with some clients that when connecting do not just look at the SSID but also the BSSID. I have a samsung tv that does this.

If we add the block-mount package to config and if we build and install it, when the router is rebooted we won't have Wi-Fi. We will have to wait approximately 40-60 seconds and restart each of the Wi-Fi radios to get it operational again. As an alternative, the router can be restarted and after this new restart the Wi-Fi network will be operational.

I hope I have expressed myself correctly and everything has been understood.

EDIT: I hope someone can confirm these findings.

Again, since you are the only one having the issue and only one that can bisect it.
You have to undo what that commit did but one patch at a time to find the exact one so it can get fixed

I could add that the mac adress of other devices changed after I activated the wifi devices when they are not set manually. I had that problem serveral times. After I acctivated wifi I coudn't reach the router anymore over lan but still over wireguard. So I found out that the local ip adresses changed because it altered the mac addresses of its devices. Hence I would like to support asvios findings and I think it makes sense to find out what is going on. Let me now if can be of help. But I am not a linux or openwrt expert.

First of all I really appriciate all of your work and dedication. I successfully flashed openwrt using the instructions. What I did not understand is point 2 of the instructions:

"2. If you already have OpenWrt use sysupgrade or LuCi “Flash new firware image” option, after this operation use script from https://github.com/itorK/nbg7815_tools/blob/main/change_boot_partition.sh to change boot partition"

Why is it necessary to flash OpenWrt again when it is already running? And what is the benefit of running the skript "change_boot_partition.sh"?

Some time ago there was a problem with the openwrt installation since there are several sets of partitions where openwrt can be installed on this device (mmcblk0p3-mmcblk0p4 and mmcblk0p7-mmcblk0p8)
Initially it was only possible to install to the mmcblk0p7-mmcblk0p8 set and to be able to install correctly you had to run "change_boot_partition.sh".
It also happened that if it was installed in the set mmcblk0p3-mmcblk0p4 openwrt would not update and you had to change the boot partition for it to update correctly.

Currently these problems do not occur as the installation and sysupgrade scripts have improved and these issues no longer exist that I know of.

the NBG7815 wiki is a bit outdated in this regard.

This point 2 should say something like:
If you already have a very old version of openwrt for this device, to upgrade to a newer version of openwrt you can use sysupgrade or LuCi “Flash new firmware image”. It may be necessary to run https://github.com/itorK/nbg7815_tools/blob/main/change_boot_partition.sh to change the boot partition if it does not update correctly.

And if you are going to upgrade to a newer version don't forget to run wpad stop and wait a few seconds before running the sysupgrade command. (there is a problem for all ipq8074 devices with the sysupgrade process)

If there is any error in what I have exposed, someone with more knowledge correct it

1 Like

Has anyone tried firmwares built with NSS?

The repo belongs to @AgustinLorenzo

Releases · AgustinLorenzo/openwrt (github.com)

I cannot comment on the stability of AgustínLorenzo's or bitthief's nss-firmware and the advantages it has over the upstream version since I have not used them enough, but I have installed both, and what I can tell you is that if you need to use the port usb to share files do not use them because both present problems during the first reboot after the update and also the file exchange does not work.

It all comes for including the blockmount package in the build.

This problem seems to only affect this router since I haven't read anything similar with the other ipq807x devices on the forum.

And the 160Mhz channel width still does not work (although it does not work in the upstream version either) or at least I have not been able to make it work.

If you don't use blockmount package you can install it and commet how it works. (don't forget wpad stop before upgrade)

1 Like

Thank you @asvio, that explains it. Luckily I did not use the script. Updating to a new snapshot went without any surprises. I did not have to stop wpad before.

Btw, I had lately also issue connecting with an AX210 Intel client. It did not link to a R7800 running OpenWrt 19. I figured out that it always connects to another Router. I figured out that it prefered the other router since it offered WPA2/WPA3 mixed security. The R7800 offered only WPA2. Before it was never a problem. So this was a new issue and I solved it by just enabling WPA2/WPA3 on all routers.

Hi all. I bought a zyxel nbg7815, according to the wiki article I downloaded the latest itorK firmware, the router freezes when loading:

[ 7.940737] NET: Registered PF_PPPOX protocol family
[ 7.948997] ath11k c000000.wifi: ipq8074 hw2.0
[ 7.949031] ath11k c000000.wifi: FW memory mode: 0
[ 7.952761] remoteproc remoteproc0: powering up cd00000.q6v5_wcss
[ 7.965791] remoteproc remoteproc0: Booting fw image IPQ8074/q6_fw.mdt, size 668
[ 8.653344] remoteproc remoteproc0: remote processor cd00000.q6v5_wcss is now up
[ 8.657621] kmodloader: done loading kernel modules from /etc/modules.d/*
[ 8.697252] ath11k c000000.wifi: qmi ignore invalid mem req type 3
[ 8.704714] ath11k c000000.wifi: chip_id 0x0 chip_family 0x0 board_id 0xff soc_id 0xffffffff
[ 8.704757] ath11k c000000.wifi: fw_version 0x270204a5 fw_build_timestamp 2022-08-04 13:05 fw_build_id WLAN.HK.2.7.0.1-01744-QCAHKSWPL_SILICONZ-1

The problem is that the bootloader does not accept keyboard input via uart, I can only read logs. Is this a problem with the bootloader or my usb-ttl dongle?

Hello @neonman63
I think that if the router is blocked you cannot access it in any way.
Under normal conditions you should get access to ssh through the serial port with the openwrt firmware.
I've never had any problems with it.

I advise you to return to the factory firmware with the process described in the wiki and reinstall openwrt installed its most recent version (which is very stable) downloading it from here.

Download zyxel_nbg7815-squashfs-sysupgrade.bin and use it for the openwrt installation process

EDIT: you can try stopping the boot process to check if your ttl modem is working properly.

I can interrupt boot in the bootloader, but uart sends garbage to cli instead of normal characters. This usb-ttl works fine with Netgear R7800. I have a flash programmer, I can try to download the firmware directly from the chips. But what to do next?

That is an unknown world for me.
I would try another usb ttl.
Make sure you have only connected the ground, TX and RX wires. Do not connect the Vcc wire. Make sure the voltage is set to 3.3v at ttl level.
No one has complained so far about serial port issues on this device.

1 Like

I solved the problem - I replaced the usb-ttl adapter. I installed a different version of the firmware, the problem turned out not to be that the router was frozen, but that the wrong device names were indicated in the network configs - in the router it is lan1-lan4, wan, and in the configs everywhere eth0-eth5, etc. After I manually changed the configs, after rebooting everything worked.

1 Like

Hi, I'm considering trying a G5 to replace my owrt VM since I've found a very good price online. I don't really need the wireless part, just the multigig routing. Is there something I should be aware of? Is it usable as a daily driver? I've read here that the wiki is outdated, can someone point me in the right direction for the install instructions?
TIA

Most of the wiki is still accurate. Just the last part 2 is outdated. You don't have to use the script to change boot partitions.

I flashed now two G5 routers and it worked great following the wiki. I used telnet to initially connect to the router. Used the password provided in the wiki. After that I used scp to transfer the firmware and the flash_to_openwrt script from my ssh server. wget did not work because it complained about the https link. After using the script the router restarted and openwrt was installed. That's it. You can then connect to ssh 192.168.1.1 and install luci.

Unfortunately I did not have much time to test the functions, yet. So maybe somebody else can report about pros and cons. What I read from above is that LED and fan does not work yet - missing driver in snapshots. I saw that 8x8 wlan connectivity is not supported. Instead there are two 5 GHz devices probably each with 4x4 connectivity.

  • Ad. to wget, You can use curl instead of wget.
  • Ad. to daily driver. I have two NBG7815 one on stock and one on OpenWRT Snapshot. The one on OpenWRT Snapshot is my main GW. On the stock one the WiFi speed is more stable, but I don't have any 160Mhz device to test :frowning:
  • Ad. to the LEDs and fan, yes, the LED driver and fan are still missing.

I have a 10Gig network and use 10Gig as a wan with VLANs and everything is fine.
If you want I can test something for you.

1.)

This happens if you pull the fan and led patch from @itorK or @avalentin / ddimension repo.
There is still an outdated declartion within the dts file which is causing this issue.
Just execute:

sed -i 's/mac-address-ascii/mac-address/g' target/linux/ipq807x/files/arch/arm64/boot/dts/qcom/ipq8074-nbg7815.dts

after pulling it.

2.)

This annyoing issue/bug is still there. Maybe this issue should be mentioned in the Wiki for ppl. doing their own builds.

3.)

There are differences what configuration options can be set and not set in term of it is working or not working (this differs on devices). Stay as close as possible to vanilla settings. E. g. time_zone nobody needs normally. Setting mobility_domain is often problematic (auto should work without issue).
Another point is wolfssl vs openssl. Using openssl e. g. you cannot set he_bss_color. If you do so you will get an hostapd error about "integer out of range".

4.) @itorK / @avalentin

Is there an effort to get the fan patch into OpenWrt? I have faced issues under load if I just use vanilla OpenWrt. I can reproduce it. But 1st it takes a while and 2nd you have to have attached an USB device (idle is enough). Because this is increasing the heat produced generally.
My impression is that the CPU is throttled if its getting to hot because there is no fan starting at all. The system is getting unresponsive (login via ssh is delayed) and normal internet traffic is kind a "laggy".

5.) @robimarko

I'm writing it here just for information and to avoid spamming on github issue.
I've tested your ssdk-make backport and it is working for both devices (AX3600/NBG7815) flawlessly. I've tested ssdk-12.4 including nss-dp-12.4 also (while I didn't know what patches to drop. I just deleted gmac-syn-xgmac and reworked switchdev-fix-FDB to succeed). It's working flawlessly.
Kernel 5.15.113. I didn't test Kernel 6.1 so far.

2 Likes

Fyi I've just followed the wiki on a brand new G5 and got a partially working owrt installation after that the install script returned a bunch of "no space left on device" for some partitions.

Luci isn't working (no response from http/https ports), luckily ssh is ok and I can connect (without a password btw). Any suggestion to try a clean reinstall?

What is the current state? Is it still OEM or OpenWrt already? What is the output of:

ubus call system board

on ssh shell?

If its already OpenWrt SNAPSHOT (line description) then you have OpenWrt and you can issue a:

opkg update
opkg install luci

LuCI is not part of a snapshot image.