OpenWrt Support for Armor G5 (NBG7815)

Could you explain exactly whould did you do?
Did you trying set channel LED's by Luci, did you choose channel or mmc?

I'm afraid that debricking your device by serial cable is must.

If you go exactly with instruction, i assume that nothing bad will happen.

As now there's issue located wit asvio regarding setup LED's but beside that most functionality works and you can use your router without problems but remember it's experimental software and use it as your own risk.

I've located also problems with 160mhz at Openwrt software, i think it's not working properly.

2 Likes

I was traying setting it off but not sure if i set a chanel (not mmc) on heartbeat mode or something similar. then i push save and apply and begun to reboot. Everything went very fast, I'm not sure.

Ok,
Do not use Luci configuration, instead use configuration in /usr/bin/ledctl
driver needs some additional works to be compatible with Luci interface

I have unlocked with the factory firmware and it has loaded correctly and I can configure it as when it is reset.
The problem now is that when I try to load new firmware openwrt.
The router tries to load the led firmware but is unsuccessful and does not finish the boot process.
After it spending about a minute trying to load the led's firmware , the router restarts itself.

[   42.316409] br-lan: port 5(eth4) entered blocking state
[   42.316453] br-lan: port 5(eth4) entered disabled state
[   42.320595] device eth4 entered promiscuous mode
[   42.362542] loop0: detected capacity change from 122880 to 108416
[   42.665983] EXT4-fs (loop0): mounted filesystem with ordered data mode. Opts: (null). Quota mode: disabled.
[   42.667207] overlayfs: fs on '/' does not support file handles, falling back to xino=off.
[   42.806508] lp5569x 0-0032: Direct firmware load for lp5569 failed with error -2
[   42.806555] lp5569x 0-0032: Falling back to sysfs fallback for: lp5569
[   51.832248] lp5569x 0-0032: Direct firmware load for lp5569 failed with error -2
[   51.832296] lp5569x 0-0032: Falling back to sysfs fallback for: lp5569
[   60.862519] lp5569x 0-0032: Direct firmware load for lp5569 failed with error -2
[   60.862567] lp5569x 0-0032: Falling back to sysfs fallback for: lp5569
[   69.891682] lp5569x 0-0032: Direct firmware load for lp5569 failed with error -2
[   69.891731] lp5569x 0-0032: Falling back to sysfs fallback for: lp5569
[   78.919110] lp5569x 0-0032: Direct firmware load for lp5569 failed with error -2
[   78.919158] lp5569x 0-0032: Falling back to sysfs fallback for: lp5569

Seems that Luci saved his settings and after boot trying to load those bad setting and that cause reset

Do you know how can i delete those seting?
Don´t Know where to look at.

EDIT:

Finaly I can boot again on openwrt. I restored to factory, made a reset with reset-button and flash to openwrt again.

Apart from 160MHz I did get slower speeds even using wire, but I will test again and test using original firmware. For me, the setup after putting on your openwrt build was that all ports were in LAN group, so I removed eth4, maybe that caused more load then necessary, but I did not look into it more as I could not get 160MHz wifi working and quick search on openwrt forum and site did not help me with getting it working.

I mean it should simply be like set the channel 36 and use 160Mhz, right?

I think this device HW is really solid, design is very nice as far as routers go at this price point, it is just getting it all working :slight_smile: I know similar HW router do have 80Mhz 4:4 configuration, but if you set them to use 160MHz it changes to 2:2, ie. QHora-301W. Which so far seems like only alternative if i want to to pass gig+ internet connection to multiple devices that can consume gig+.

I do get about 750Mbit download / 850Mbit upload with asus rt-ax68u, with Armor G5 I do get about 400Mbit / 770Mbit. Speeds I get with asus are IMO maximum what 80MHz AX wifi can do (link speed is 1200Mbit).

Also weirdly asus does use about 1 watt more than the zyxel (runnin openWrt), which is very unexpected to me.

And yes, it is a bit weird to complain about "only" getting 400Mbit download speed using wifi.

1 Like

Problems I've found so far.
Keep in mind that I have detected these errors after a day of testing using the NBG7815 configured as AP only

root@NBG7815:~# cat /etc/config/network

config interface 'loopback'
        option device 'lo'
        option proto 'static'
        option ipaddr '127.0.0.1'
        option netmask '255.0.0.0'

config globals 'globals'
        option ula_prefix 'xxxx:xxxx:xxxx::/48'

config device
        option name 'br-lan'
        option type 'bridge'
        list ports 'eth0'
        list ports 'eth1'
        list ports 'eth2'
        list ports 'eth3'
        list ports 'eth4'
        list ports 'eth5'
        option neighgcstaletime '64'

config interface 'lan'
        option device 'br-lan'
        option proto 'dhcp'

Wireless device Problems detected.
-Wifi device do not work after power on or after reboot the device. you need to restart wifi device to make it work
-Wifi 6 do not work at HE160 at least on 36 or 100 channels.
-Slow speed on wifi 6 even being used in HE80 mode, uploading especially.

Network problem detected.
-When running first time if you connect wan port to a 192.168.1.1 network you will not have access to device. you will need to restart it with no cable on wan port.

Ethernet port problem detected.
-10gb port do not work at 2.5gb, I haven't done test on 5gb or 10gb device.

Usb problems detected.
-Usb media not detected by router (hdd, sticks...).

    BusyBox v1.35.0 (2022-11-24 09:12:14 UTC) built-in shell (ash)

  _______                     ________        __
 |       |.-----.-----.-----.|  |  |  |.----.|  |_
 |   -   ||  _  |  -__|     ||  |  |  ||   _||   _|
 |_______||   __|_____|__|__||________||__|  |____|
          |__| W I R E L E S S   F R E E D O M
 -----------------------------------------------------
 OpenWrt SNAPSHOT, r21275-3338b76468
 -----------------------------------------------------
root@NBG7815:~# opkg list-installed | grep usb
kmod-usb-core - 5.15.77-1
kmod-usb-dwc3 - 5.15.77-1
kmod-usb-dwc3-qcom - 5.15.77-1
kmod-usb-storage - 5.15.77-1
kmod-usb-storage-extras - 5.15.77-1
kmod-usb-storage-uas - 5.15.77-1
kmod-usb-xhci-hcd - 5.15.77-1
kmod-usb3 - 5.15.77-1
root@NBG7815:~# uname -a
Linux NBG7815 5.15.77 #0 SMP Tue Nov 29 14:28:14 2022 aarch64 GNU/Linux

LED problem detected.
-Don't use LUCI to control LED. I brick the device using it.

Flash problem detected.
-If after updating the device you find that you are still on the same firmware version and nothing has changed, check that you are flashing the correct partition. You may have to modify the /lib/upgrade/platform.sh file as indicated by itorK at Post 124

Thanks for your feedback

There was a memory leak in the driver, i made a fix for it, so with the latest build problem not exists anymore.

Can anyone confirm this? It doesen't happen on my device

1 Like

Updated to the last version.

I saw these mesages on kernel.log:

[   15.089747] ath11k c000000.wifi: qmi ignore invalid mem req type 3
[   15.097194] ath11k c000000.wifi: chip_id 0x0 chip_family 0x0 board_id 0xff soc_id 0xffffffff
[   15.097243] 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
[   19.937508] br-lan: port 1(eth0) entered blocking state
[   19.937555] br-lan: port 1(eth0) entered disabled state
.........
[   20.223808] br-lan: port 6(eth5) entered blocking state
[   20.223851] br-lan: port 6(eth5) entered disabled state
[   20.228497] device eth5 entered promiscuous mode
[   20.896585] lp5569x 0-0032: Direct firmware load for lp5569 failed with error -2
[   20.896640] lp5569x 0-0032: Falling back to sysfs fallback for: lp5569
[   20.953302] br-lan: port 3(eth2) entered blocking state
[   20.953350] br-lan: port 3(eth2) entered forwarding state
[   20.957562] br-lan: port 4(eth3) entered blocking state
[   20.962934] br-lan: port 4(eth3) entered forwarding state
[   20.968245] IPv6: ADDRCONF(NETDEV_CHANGE): br-lan: link becomes ready
[   23.363017] nss-dp 3a001800.dp5 eth4: PHY Link up speed: 2500
[   23.363102] br-lan: port 5(eth4) entered blocking state
[   23.367764] br-lan: port 5(eth4) entered forwarding state
[   29.924748] lp5569x 0-0032: Direct firmware load for lp5569 failed with error -2
[   29.924796] lp5569x 0-0032: Falling back to sysfs fallback for: lp5569
[   38.952202] lp5569x 0-0032: Direct firmware load for lp5569 failed with error -2
[   38.952252] lp5569x 0-0032: Falling back to sysfs fallback for: lp5569
[   47.974282] lp5569x 0-0032: Direct firmware load for lp5569 failed with error -2
[   47.974332] lp5569x 0-0032: Falling back to sysfs fallback for: lp5569
[   57.001277] lp5569x 0-0032: Direct firmware load for lp5569 failed with error -2
[   57.001325] lp5569x 0-0032: Falling back to sysfs fallback for: lp5569
[   66.025421] lp5569x 0-0032: Direct firmware load for lp5569 failed with error -2
[   66.025469] lp5569x 0-0032: Falling back to sysfs fallback for: lp5569

Wifi problem still present.

1 Like

Same error in the kernel log.

1 Like

For me the problem was getting the ip from a cold boot, the WiFi started but the device wasn't getting an ip from my main router but as soon as I assign a static IP I didn't had that problem, I also have a weird behaviour on the WiFi, my raspberry pi doesn't mantain connection for mores than 2 seconds I already tried all the channels/frequency/radio combinations and nothing, but with my asus art-x58u works perfectly

I am finally trying to replicate this on Qnap 301W, however if I fix that code snippet to:

	if (ab->hw_params.supports_regdb)
		ret = ath11k_qmi_load_bdf_qmi(ab, true);
	else
		ret = ath11k_qmi_load_bdf_qmi(ab, false);

	if (ret < 0) {
		ath11k_warn(ab, "failed to load board data file: %d\n", ret);
		return ret;
	}

It does fetch the regdb.bin, however even though 2.7 FW does not crash as it supports external regulatory driver never registers the WIPHY-s, quite literally iw phy is empty

I have looked at the system.log today and found these lines in the router boot process.

........

Tue Dec  6 10:36:26 2022 daemon.notice netifd: Interface 'loopback' is enabled
Tue Dec  6 10:36:26 2022 daemon.notice netifd: Interface 'loopback' is setting up now
Tue Dec  6 10:36:26 2022 daemon.notice netifd: Interface 'loopback' is now up
Tue Dec  6 10:36:26 2022 daemon.notice netifd: Network device 'eth3' link is up
Tue Dec  6 10:36:26 2022 daemon.notice netifd: Network device 'lo' link is up
Tue Dec  6 10:36:26 2022 daemon.notice netifd: Interface 'loopback' has link connectivity
Tue Dec  6 10:36:26 2022 daemon.notice netifd: radio0 (2615): Phy not found
Tue Dec  6 10:36:26 2022 daemon.notice netifd: radio0 (2615): Could not find PHY for device 'radio0'
Tue Dec  6 10:36:26 2022 daemon.notice netifd: Wireless device 'radio0' set retry=0
Tue Dec  6 10:36:26 2022 daemon.crit netifd: Wireless device 'radio0' setup failed, retry=0
Tue Dec  6 10:36:26 2022 daemon.notice netifd: radio0 (2687): WARNING: Variable 'data' does not exist or is not an array/object
Tue Dec  6 10:36:26 2022 daemon.notice netifd: radio0 (2687): Bug: PHY is undefined for device 'radio0'
Tue Dec  6 10:36:26 2022 daemon.notice netifd: Wireless device 'radio0' is now down
Tue Dec  6 10:36:26 2022 daemon.notice procd: /etc/rc.d/S95done: 'radio1' is disabled
Tue Dec  6 10:36:26 2022 daemon.notice procd: /etc/rc.d/S95done: 'radio2' is disabled
Tue Dec  6 10:36:26 2022 daemon.notice procd: /etc/rc.d/S95done: 'radio1' is disabled
Tue Dec  6 10:36:26 2022 daemon.notice procd: /etc/rc.d/S95done: 'radio2' is disabled
Tue Dec  6 10:36:26 2022 daemon.notice netifd: radio0 (2807): Phy not found
Tue Dec  6 10:36:26 2022 daemon.notice netifd: radio0 (2807): Could not find PHY for device 'radio0'
Tue Dec  6 10:36:26 2022 daemon.notice netifd: Wireless device 'radio0' set retry=0
Tue Dec  6 10:36:26 2022 daemon.crit netifd: Wireless device 'radio0' setup failed, retry=0
Tue Dec  6 10:36:26 2022 daemon.notice netifd: radio0 (2848): WARNING: Variable 'data' does not exist or is not an array/object
Tue Dec  6 10:36:26 2022 daemon.notice netifd: radio0 (2848): Bug: PHY is undefined for device 'radio0'
Tue Dec  6 10:36:26 2022 daemon.notice netifd: Wireless device 'radio0' is now down
Tue Dec  6 10:36:26 2022 daemon.info procd: - init complete -
........

Do you know what this "daemon.notice netifd: radio0 (2848): WARNING: Variable 'data' does not exist or is not an array/object" means?

Here is my wireless config:

root@NBG7815:~# cat /etc/config/wireless

config wifi-device 'radio0'
        option type 'mac80211'
        option path 'platform/soc/c000000.wifi'
        option band '5g'
        option cell_density '0'
        option htmode 'HE80'
        option channel '36'

config wifi-iface 'default_radio0'
        option device 'radio0'
        option network 'lan'
        option mode 'ap'
        option encryption 'psk2+ccmp'
        option key 'xxxxxxxxxxxxxxxxx'
        option ssid 'xxxxxxxxxxxxx'

config wifi-device 'radio1'
        option type 'mac80211'
        option path 'platform/soc/c000000.wifi+1'
        option channel '1'
        option band '2g'
        option htmode 'HE20'
        option disabled '1'

config wifi-iface 'default_radio1'
        option device 'radio1'
        option network 'lan'
        option mode 'ap'
        option ssid 'OpenWrt'
        option encryption 'none'

config wifi-device 'radio2'
        option type 'mac80211'
        option path 'platform/soc/c000000.wifi+2'
        option channel '36'
        option band '5g'
        option htmode 'HE80'
        option disabled '1'

config wifi-iface 'default_radio2'
        option device 'radio2'
        option network 'lan'
        option mode 'ap'
        option ssid 'OpenWrt'
        option encryption 'none'

root@NBG7815:~#

1 Like

Hi @all,

First thanks @dev's for bringing support for IPQ807x and their respective devices!

For this specific device I have some questions before I start to flash OpenWrt:

1.) I've recognized that recovery is only possible with serial access. But I'm a bit confused. In the wiki it is stated 3,3V for serial access. While everywhere is stated 1,8V for IPQ807x devices generally. I've used my 3,3V adapter for the Xiaomi AX3600 several times already and it was working without any issues. But for this device (quite expensive) I don't want to take the risk. So I'm asking if the wiki is right? ATM I don't own a 1,8V serial adapter. So I would order one.

From Wiki:

Serial connection parameters
for ZyXEL NBG7815 (Armor G5) NBG7815 TTL 115200, 8N1, 3.3V

2.) Does this device really do not have a WPS button? Did not find any (I own the device only a few hours now). I'm asking because tftp recovery is/was normally done with the WPS button (which would be nice for this device also). It's really sad if its gone. Esp. for a high price device like this. This device does not have any WPS button indeed. But it is indicated as activated by default and cannot be disabled within the GUI.

3.) How are the chances this device is getting fully supported with its special hardware? I've read short through this thread:

  • led (extra driver needed)
  • fan
  • bluetooth
  • 10 resp. 2,5 gig port Aquantia
  • 160 MHz not working
  • usb 3.1 port

The catch here was the driver for led. While I do not care about the lights at all (just want to disable it) I wonder if this driver will make it into OpenWrt/Kernel. For the fan it seems it is supported already?
If the odds are dim I would think about to sell the router right away. :confused:

4.) While I'm doing my own builds for the AX3600 already I would like to do so for this device also using robimarko's repo and just cherry-pick @itorK's commits as long it is not merged. I didn't catch anything beside d622c85 are there any other which I need to pull?

5.) Is it possible to make the router working without cloud activation?

6.) How is the wifi working on this device under OpenWrt? Is it compareable to AX3600 or are there any issues open (beside e. g. the ugly regdb issue)?

Thx in advance.

Kind regards,
pwned

1 Like

you forgot 160Mhz channel width in your list

So 160MHz is not working currently? Did not expect it as AX3600 is running so flawless. But it's O. K. Development for this specific device just started what I saw so far. If I think about I would guess USB 3.2 is propably another issue?

While I'm not a developer I would do testing if wanted/required. Just pm me or ask within this thread if help is needed. :slight_smile:

EDIT: I've setup with the device with Zyxel original firmware today and I had issues to get 160 MHz working properly. It didn't came even up with 80 MHz or with obscure channel selection which no device did find. I had two other devices around (36/160 and 100/80).
Then I saw the option "OBSS" which was new to me (it was activated by default). Deactivating OBSS solved the issue. Maybe this is sth. what is hardcoded by default within their blobs preventing us to use it on this devices?

1 Like

I faced the same problem. They have changed something. The password is simply not accepted anymore. They (I guess) simply put in a routine changing the password to a random password.
I did the following to get it working again:

uci set dropbear.setting.enable=1
uci commit dropbear
uci set network.general.auto_ip_change=0
uci commit network

awk '/ckNowChangeDefaultCg/{f=0} f{$0="#" $0} /#dropbear/{f=1} 1' /rom/etc/init.d/preboot > /etc/init.d/preboot

echo -e 'OWTisUber\nOWTisUber' | passwd root
cp /etc/shadow /etc/shadow.bak

sed -i '/exit 0/i \
 \
uci set dropbear.setting.enable=1 \
uci commit dropbear \
uci set network.general.auto_ip_change=0 \
uci commit network \
/etc/init.d/dropbear enable \
/etc/init.d/dropbear restart \
chmod +w /etc/shadow \
cp /etc/shadow.bak /etc/shadow \
chmod -w /etc/shadow \
 \
 \' /etc/rc.local

chmod -w /etc/init.d/preboot
chmod -w /etc/config/dropbear
chmod -w /etc/rc.local
chmod -w /etc/shadow

A bit broad I think because dropbear is starting already. But it works as intended.
Change the line with "OWTisUber" to your desired password

2 Likes

Latest updates in snapshot build:

  • update kernel to 5.15.82
  • fix lp5569 driver -> LED`s are fully supports luci settings, default is eth5 traffic on channel1
  • reset button works like original firmware: short push -> soft reset, push few seconds -> reset to factory defaults.
  • add bluetooth driver
4 Likes