Builds for Linksys WHW03 V2 + V1

I really appreciate your efforts on making OpenWRT work for this device.
I recently got your latest build flashed onto 2 of my WHW03 V1 nodes. Just wanted to mention a few issues I'm seeing on my units.

  1. Radio0 seems broken and does not seem to be communicating at al. Host or client mode.
  2. Devices connected to either radio1 or 2 do not seem to be able to get a ipv4 address. ipv6 seens to work.
  3. Network forwarding between WAN firewall and LAN firewall thus devices on LAN are not getting network to the outside world.
  4. It seems like the power output from the radios are low. I am comparing it to my 1 factory flashed node which seems to have at least 3x the range.

Thanks again for all your work!

I will look at it during the weekend; however, that behavior seems strange. Have you done a factory reset?

I only have one V1, but it's working with all 3 radios and devices do get IP v4 addresses (though they are not the authoritative DHCP server).

I have tried a factory reset and reflashed the latest build on your github (0.0.4.1). Same results
The DHCP server that im trying to use is hosted on my network gateway and not the nodes. But I have tried the node's DHCP server as well and still not working.
The radio0 is showing up as active but it isnt broadcasting any signal nor does it see any other wifi signal in the area.

I have just tried the build for V2 dated 12th March. I used the file called sysupgrade from https://github.com/flipy/openwrt/releases/tag/whw03v2-0.0.4 and applied it to this v2 unit at /fwupdate.html

The kernel reports a build date of Mon Mar 8 11:46:46 2021 so it is new. Unfortunately it does the same thing with

[    1.048062] ------------[ cut here ]------------
[    1.055671] WARNING: CPU: 0 PID: 1 at drivers/mtd/nand/raw/nand_base.c:5579 nand_scan_with_ids+0x178c/0x1790
[    1.060524] No oob scheme defined for oobsize 0
[    1.070308] Modules linked in:
[    1.074553] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 5.4.102 #0
[    1.077675] Hardware name: Generic DT based system
[    1.083858] [<c030e544>] (unwind_backtrace) from [<c030afc0>] (show_stack+0x10/0x14)
[    1.088457] [<c030afc0>] (show_stack) from [<c0853218>] (dump_stack+0x94/0xa8)
[    1.096352] [<c0853218>] (dump_stack) from [<c03213ac>] (__warn+0xbc/0xd8)
[    1.103379] [<c03213ac>] (__warn) from [<c032144c>] (warn_slowpath_fmt+0x84/0x94)
[    1.110239] [<c032144c>] (warn_slowpath_fmt) from [<c0659d04>] (nand_scan_with_ids+0x178c/0x1790)
[    1.117796] [<c0659d04>] (nand_scan_with_ids) from [<c06606a0>] (qcom_nandc_probe+0x518/0x934)
[    1.126649] [<c06606a0>] (qcom_nandc_probe) from [<c0627e60>] (platform_drv_probe+0x34/0x70)
[    1.135156] [<c0627e60>] (platform_drv_probe) from [<c06264d8>] (really_probe+0x1f0/0x358)
[    1.143748] [<c06264d8>] (really_probe) from [<c0626a28>] (device_driver_attach+0x58/0x60)
[    1.151819] [<c0626a28>] (device_driver_attach) from [<c0626a88>] (__driver_attach+0x58/0xcc)
[    1.160067] [<c0626a88>] (__driver_attach) from [<c0624a2c>] (bus_for_each_dev+0x68/0x8c)
[    1.168660] [<c0624a2c>] (bus_for_each_dev) from [<c06259b0>] (bus_add_driver+0x1c8/0x1d8)
[    1.176817] [<c06259b0>] (bus_add_driver) from [<c0627010>] (driver_register+0x74/0x108)
[    1.184978] [<c0627010>] (driver_register) from [<c0302764>] (do_one_initcall+0x84/0x1d8)
[    1.193231] [<c0302764>] (do_one_initcall) from [<c0b00fcc>] (kernel_init_freeable+0x1c4/0x26c)
[    1.201303] [<c0b00fcc>] (kernel_init_freeable) from [<c0868f7c>] (kernel_init+0x8/0x114)
[    1.209806] [<c0868f7c>] (kernel_init) from [<c03010e8>] (ret_from_fork+0x14/0x2c)
[    1.218132] Exception stack(0xdf43bfb0 to 0xdf43bff8)
[    1.225596] bfa0:                                     00000000 00000000 00000000 00000000
[    1.230722] bfc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[    1.238883] bfe0: 00000000 00000000 00000000 00000000 00000013 00000000
[    1.247090] ---[ end trace c7df6a2e882db4d6 ]---
[    1.253486] 8<--- cut here ---

Hi [flipy],

would it be possible to use the WHW03_V1 Image for the WHW01_V1 as well?
I have some WHW03 as well as WHW01 and would like to use OpenWRT on all of them.

I have flashed one of my WHW03_V1 with your image and it's working fine except the WiFi range and Radio 0 as mentioned before. The range is far less than stock Firmware and radio 0 is not active. Is there anything I could tweak to improve it?

Best regards
Björn

I'd also like to report low power output at both 5GHz and 2.4GHz on my WHW03 v1. However, it's not just that, the Rx sensitivity of the radios is pretty bad.
Curiously, the 2.4GHz radio reports a noise floor of -103 dBm, which is unusually low, I have another AP here and it reports -95dBm. None of my APs have ever reached that low of a noise floor. Maybe there is an attenuation in the Rx path?

Could it be that there is a FEM controlled by GPIO that isn't enabled currently? That would explain the lack of sensitivity as well as the lack of power. There is a documented case here: Asus map-ac2200 low transmit/receive signal 5Ghz - #11 by slh

I took a glance at the source tarball from Belkin and there seems to be nothing obvious.
My unit has a black PCB, just in case this matters. At a glance, it looks identical to the unit shown on the FCC pictures.

Could it be that you have a new model version?
Tried flashing from stock on a V2 several times with no reported errors.
From the log it panics when loading the NAND driver.

That's something I can try to dive deep, as I did found an impact on performance, but unit is usable.

Being the same SoC I'll compare and look for differences

I need your help :slight_smile:
I've messed up the VLAN config on my WHW03 V1 so it is not accessible anymore.
I can reset the node and boot into stock Firmware, but when I reflash your image, the last config is kept. How can I get rid of the config?

No one being able to help me? :frowning:

Assuming you don't have serial access, have you tried flashing stock firmware twice?

I have to check my notes but it might be possible to gain access thru SSH and from there it is possible to clear any OpenWRT settings.

Do let me know or PM me and we'll figure it out.

Yes, I tried without success. One thing I haven't tried is to use a previous stock version.
I also tried to set up static ip, but don't have access via ssh.

@flipy Would it be possible to build a FW taking the reset button into account?
I have a Linksys WRT1200 and there I can reset the OpenWRT FW to factory defaults by pressing the reset button approx. 10sec.
I think the Velop does not official support dual FW handling, as it is not activated in the stock FW like it is for the WRT1200.

That it's actually something that can be implemented.
And Velop does have 2 firmware partitions.

Haven't tried but boot OpenWRT and press the button, otherwise I'll try to make a new build with all recent changes identified.

1 Like

Okay, so after a little investigation today, I noticed that adding one of the board files from the original firmware: /lib/firmware/QCA9888/v1/FCC/boardData_2_0_QCA9888_5G_Y9690_SBS_HB.bin (my unit is from FCC region, hence why I chose this file) as "board.bin" inside the ath10k firmware directory resulted in a massive increase in Tx power (over 20dB) and in Rx sensitivity as well: scanning can pick up networks it simply couldn't previously.
So it seems the problem with the v1 units is simply that their board files are missing in board-2.bin.

Interesting, as I did extract the bin files from my devices -- long time ago though.

I'll try to fetch new ones and replace them to check the performance.

Does someone have a hint how to add VLAN to the WHW03 v1?
Regardless what I try it ends up in a non working configuration as soon as I add a new VLAN via LuCi.

Just to have it somewhere summarized, what are the blocks for PR to master at the moment? Afaik some less tested devices got accepted in the past.

That's something on my to-do list, but I don't know if LuCi supports VLANs thru the new DSA driver. A good starting point is the VLAN wiki: https://openwrt.org/docs/guide-user/network/vlan/switch_configuration

For V2 it might be doable, more testing is needed to iron out the outstanding issues, but once completed it should be fairly easy to PR to master or branch by rebasing and creating a single commit.

V1 is more hackish as it is a eMMC device but treated like a NAND one -- from that perspective another review on the modified processes as well as thoughtful testing will be necessary.