Builds for Linksys WHW03 V2 + V1

Does someone have working Radio 0 (WHW03 v1) bord files for me?
Radio 0 is working for me, but with poor signal strength

I'll DM the original board files for the supported boards from the original firmware, see if that helps.

Hi Andreas,

will you upload the files somewhere?

Hey guys I have the WHW03v2 model is there anyway of flashing it with openwrt and can i have the method on how to @flipy

thanks
ray

Hello,
Achieved some success here with same whw03v2 device and Hynix nand.
The issue seems to be related to a bug described here.

Applied the following patch to the kernel and voila!

--- a/drivers/mtd/nand/raw/qcom_nandc.c
+++ b/drivers/mtd/nand/raw/qcom_nandc.c
@@ -2554,10 +2554,23 @@ static int qcom_nand_attach_chip(struct
 	ecc->mode = NAND_ECC_HW;
 
 	mtd_set_ooblayout(mtd, &qcom_nand_ooblayout_ops);
+	/* Free the initially allocated BAM transaction for reading the ONFI params */
+	if (nandc->props->is_bam)
+		free_bam_transaction(nandc);
 
 	nandc->max_cwperpage = max_t(unsigned int, nandc->max_cwperpage,
 				     cwperpage);
 
+	/* Now allocate the BAM transaction based on updated max_cwperpage */
+	if (nandc->props->is_bam) {
+		nandc->bam_txn = alloc_bam_transaction(nandc);
+		if (!nandc->bam_txn) {
+			dev_err(nandc->dev,
+				"failed to allocate bam transaction\n");
+			return -ENOMEM;
+		}
+	}
+
 	/*
 	 * DATA_UD_BYTES varies based on whether the read/write command protects
 	 * spare data with ECC too. We protect spare data by default, so we set
@@ -2827,16 +2840,6 @@ static int qcom_nand_host_init_and_regis
 	if (ret)
 		return ret;
 
-	if (nandc->props->is_bam) {
-		free_bam_transaction(nandc);
-		nandc->bam_txn = alloc_bam_transaction(nandc);
-		if (!nandc->bam_txn) {
-			dev_err(nandc->dev,
-				"failed to allocate bam transaction\n");
-			return -ENOMEM;
-		}
-	}
-
 	ret = mtd_device_register(mtd, NULL, 0);
 	if (ret)
 		nand_cleanup(chip);

Bootlog after kernel recompilation:

Sat Apr  2 07:37:18 2022 kern.info kernel: [    1.035327] nand: device found, Manufacturer ID: 0xad, Chip ID: 0xdc
Sat Apr  2 07:37:18 2022 kern.info kernel: [    1.036127] nand: Hynix H27U4G8F2EKA-BM
Sat Apr  2 07:37:18 2022 kern.info kernel: [    1.042773] nand: 512 MiB, SLC, erase size: 128 KiB, page size: 2048, OOB size: 128
Sat Apr  2 07:37:18 2022 kern.notice kernel: [    1.046452] 15 fixed-partitions partitions found on MTD device qcom_nand.0
Sat Apr  2 07:37:18 2022 kern.notice kernel: [    1.053957] Creating 15 MTD partitions on "qcom_nand.0":
Sat Apr  2 07:37:18 2022 kern.notice kernel: [    1.060896] 0x000000000000-0x000000100000 : "SBL1"
Sat Apr  2 07:37:18 2022 kern.notice kernel: [    1.068315] 0x000000100000-0x000000200000 : "MIBIB"
Sat Apr  2 07:37:18 2022 kern.notice kernel: [    1.072875] 0x000000200000-0x000000300000 : "QSEE"
Sat Apr  2 07:37:18 2022 kern.notice kernel: [    1.077571] 0x000000300000-0x000000380000 : "CDT"
Sat Apr  2 07:37:18 2022 kern.notice kernel: [    1.081938] 0x000000380000-0x000000580000 : "APPSBL"
Sat Apr  2 07:37:18 2022 kern.notice kernel: [    1.088232] 0x000000580000-0x000000600000 : "ART"
Sat Apr  2 07:37:18 2022 kern.notice kernel: [    1.091753] 0x000000600000-0x000000680000 : "u_env"
Sat Apr  2 07:37:18 2022 kern.notice kernel: [    1.096345] 0x000000680000-0x0000006c0000 : "s_env"
Sat Apr  2 07:37:18 2022 kern.notice kernel: [    1.100739] 0x0000006c0000-0x000000700000 : "devinfo"
Sat Apr  2 07:37:18 2022 kern.notice kernel: [    1.105745] 0x000000700000-0x00000a800000 : "kernel"
Sat Apr  2 07:37:18 2022 kern.notice kernel: [    1.119156] random: fast init done
Sat Apr  2 07:37:18 2022 kern.notice kernel: [    1.274294] 0x000000d00000-0x00000a800000 : "rootfs"
Sat Apr  2 07:37:18 2022 kern.notice kernel: [    1.432700] mtd: device 10 (rootfs) set to be root filesystem
Sat Apr  2 07:37:18 2022 kern.alert kernel: [    1.433067] mtdsplit: no squashfs found in "rootfs"
Sat Apr  2 07:37:18 2022 kern.notice kernel: [    1.437449] 0x00000a800000-0x000014900000 : "alt_kernel"
Sat Apr  2 07:37:18 2022 kern.notice kernel: [    1.606774] 0x00000ae00000-0x000014900000 : "alt_rootfs"
Sat Apr  2 07:37:18 2022 kern.notice kernel: [    1.764963] 0x000014900000-0x000014b00000 : "sysdiag"
Sat Apr  2 07:37:18 2022 kern.notice kernel: [    1.767902] 0x000014b00000-0x000020000000 : "syscfg"

I'm totally newbie so won't know how to integrate those modifications on github or others but just wanted to share those findings.

Success! (ish)

[    1.317263] nand: Hynix H27U4G8F2EDA-BC
[    1.323917] nand: 512 MiB, SLC, erase size: 128 KiB, page size: 2048, OOB siz                                                                                                                                                 e: 128
[    1.327842] 15 fixed-partitions partitions found on MTD device qcom_nand.0
[    1.335083] Creating 15 MTD partitions on "qcom_nand.0":
[    1.342031] 0x000000000000-0x000000100000 : "SBL1"
[    1.349053] 0x000000100000-0x000000200000 : "MIBIB"
[    1.353534] 0x000000200000-0x000000300000 : "QSEE"
[    1.358304] 0x000000300000-0x000000380000 : "CDT"
[    1.362778] 0x000000380000-0x000000580000 : "APPSBL"
[    1.368898] 0x000000580000-0x000000600000 : "ART"
[    1.372532] 0x000000600000-0x000000680000 : "u_env"
[    1.377121] 0x000000680000-0x0000006c0000 : "s_env"
[    1.381661] 0x0000006c0000-0x000000700000 : "devinfo"
[    1.386433] 0x000000700000-0x00000a800000 : "kernel"
[    1.399086] random: fast init done
[    1.541061] 0x000000d00000-0x00000a800000 : "rootfs"
[    1.685745] mtd: device 10 (rootfs) set to be root filesystem
[    1.686085] mtdsplit: no squashfs found in "rootfs"
[    1.690533] 0x00000a800000-0x000014900000 : "alt_kernel"
[    1.846113] 0x00000ae00000-0x000014900000 : "alt_rootfs"
[    1.991290] 0x000014900000-0x000014b00000 : "sysdiag"
[    1.993758] 0x000014b00000-0x000020000000 : "syscfg"
[    2.169729] spi_qup 78b5000.spi: IN:block:16, fifo:64, OUT:block:16, fifo:64
[    2.170682] spi-nor spi0.0: unrecognized JEDEC id bytes: ff ff ff ff ff ff
[    2.176645] spi_qup 78b6000.spi: IN:block:16, fifo:64, OUT:block:16, fifo:64
[    2.185754] mdio_bus 90000.mdio-1: MDIO device at address 0 is missing.
[    2.190188] mdio_bus 90000.mdio-1: MDIO device at address 1 is missing.
[    2.196455] mdio_bus 90000.mdio-1: MDIO device at address 2 is missing.
[    2.203074] mdio_bus 90000.mdio-1: MDIO device at address 3 is missing.
[    2.209668] mdio_bus 90000.mdio-1: MDIO device at address 4 is missing.
[    2.216247] mdio_bus 90000.mdio-1: MDIO device at address 5 is missing.
[    2.243091] ESS reset ok!
[    2.314519] ESS reset ok!
[    2.627217] PHY 0 single test PSGMII issue happen!
[    2.684227] PHY 1 single test PSGMII issue happen!
[    2.741306] PHY 2 single test PSGMII issue happen!
[    2.798523] PHY 3 single test PSGMII issue happen!
[    2.855563] PHY 4 single test PSGMII issue happen!
[    2.913300] PHY0 test see issue!
[    2.917492] PHY1 test see issue!
[    2.921896] PHY2 test see issue!
[    2.926255] PHY3 test see issue!
[    2.930492] PHY4 test see issue!
[    3.001889] ESS reset ok!
[    3.309502] PHY 0 single test PSGMII issue happen!
[    3.366990] PHY 1 single test PSGMII issue happen!
[    3.424512] PHY 2 single test PSGMII issue happen!
[    3.481928] PHY 3 single test PSGMII issue happen!
[    3.539401] PHY 4 single test PSGMII issue happen!
[    3.597637] PHY0 test see issue!
[    3.602083] PHY1 test see issue!
[    3.606572] PHY2 test see issue!
[    3.611016] PHY3 test see issue!
[    3.615527] PHY4 test see issue!
[    3.687047] ESS reset ok!

I posted here the full logs if that can help (system log and kernel log).

I used whw03v2-21.02 branch from @flipy github and applied the patch to the kernel (5.4.182). Then, flashed new factory image from stock firmware.

Resulting images are available here for itb, factory image and sysupgrade image (for testing only, use with care!)

Some of the steps I followed to patch and recompile the kernel after building an initial image:

cd ~/openwrt/
make target/linux/{clean,prepare} V=s QUILT=1
cd build_dir/target-arm_cortex-a7+neon-vfpv4_musl_eabi/linux-ipq40xx_generic/linux-5.4.182/
quilt push -a
quilt top
quilt new platform/998-rawnand_qcom_fix.patch
quilt add drivers/mtd/nand/raw/qcom_nandc.c
quilt edit drivers/mtd/nand/raw/qcom_nandc.c

Manually edited the qcom_nandc.c file here according to the modifications suggested in the patch and saved changes

quilt diff
quilt refresh
cd ~/openwrt/
make target/linux/update V=s

Not sure if this step is required:

cd build_dir/target-arm_cortex-a7+neon-vfpv4_musl_eabi/linux-ipq40xx_generic/linux-5.4.182/
quilt push -a
quilt diff
quilt refresh

Then rebuilt the image:

cd ~/openwrt/
make target/linux/refresh V=s
make target/linux/compile
make target/linux/install

Thanks for the mini tutorial. I have been running it for a few hours now and observing bad performance/signal on the QCA9886. using ath10k-ct or non-ct doesn't make a difference. Is anyone else having the same issue? i guess ill have to extract stock BDF

Noticed the same issue as well: sometimes the 2nd 5Ghz Wifi on the QCA9886 was not visible on phone, sometimes on laptop. When visible, phone won't connect, laptop managed to connect only once. Overall signal was poor.

Tried different country codes, channels, ... to no avail. Would be interesting to see if you'll get improvements with the stock BDF.

Here are the BDFs I extracted: https://anonfiles.com/70Zeqfjby2/BDF-WHW03v2-hynix-2.1.18.206964.tar_gz

So far, nothing improved, but more testing needs to be done.

It was BDF after all. Although it doesn't work with all channels country code yet. @tsaranora can you test it with the same config on flipy's build? (US, CH132, VHT80)

Thank you for the attachment.
Copied directly the boardData_2xxx file to board.bin on the device as suggested earlier in this forum.
However, I had to delete the existing board-2.bin to make it work with the board.bin file.

Result without the BDF: low signal strength (RSSI -71) and laptop couldn't connect

Result with BDF added: better signal strength (RSSI -45) and laptop can now connect

I've compiled a version with the correct BDF. Here are the images: initramfs, factory
(testing purposes only!)

These images should boot with wireless enabled.

@Nico1320 @tsaranora feel free to PR on my GitHub and I'll merge!
Or even make you repo admins so we can work together.

I did extract and play with several BDF files, and if there are more testers available happy to compile some versions -- device tree parameters for the wifi can be tweaked as well.

@tsaranora @Nico1320 thank you so much for looking into to issue with newer whw03v2 devices and Hynix nand. I have been following the conversation between last months, but been too busy to comment again till now on holiday.

Yestarday, I flashed the build from latest @Nico1320 links and can confirm the image is booting now properly also on these devices with hynix nand. Also, the wireless performance is (in my opinion) much better than on my older wrt3200, which's mrlwifi has suffered stability issues since 21.02 release (althought they got better with patches, I can already confirm that whw03v2 snapshot's performance is better than on stable release of wrt3200). Latency and overall responsiveness is better with Velop, also it's coverage and speed.

I have now these two whw03v2 nodes as my primary wireless "dump" AP's on my network, while wrt3200 is acting as firewall/router behind them. Will monitor stability and performance closely next weeks and comment back, if I have new to tell.

hi guys I need help asap to go back to stock please can someone help I have the v2 one

Any update on Linksys WHW03 V1 firmware, I downloaded from the whw03-0.0.6-fix and install from OEM CA mode, the NOT Saved problem still there. I re-imaged back to OEM and did again, still same result.

1 Like

I've compiled a newer snapshot build. I'm not sure if this build is "stable". It might not be an improvement from the last one.
Initramfs Factory

Thank you @flipy @Nico1320 and everyone else for your efforts to support this device.

I have been following this thread with interest for some time and can confirm @Nico1320 builds are working well, although here are a few observations:

  • After flashing from stock using the fwupdate.html, communication was lost with the device and I found that WAN and LAN port designations changed after the switch (not a problem, but could be causing headaches for users)

  • DSA seems to be working (have have yet to connected up to trunked port, but I do have a working isolated vlan configured). Noticed that the luci DSA configuration spits out an error when trying to save Interface Device settings (seems as though there is a dependancy on git).

  • Setting brightness of LEDs fails with the following error (Setting an LED's brightness failed (-110))

root@OpenWrt:~# echo 0 > /sys/devices/platform/soc/78b7000.i2c/i2c-0/0-0062/leds/pca963x\:whw03v2\:blue\:power/brightness
root@OpenWrt:~# dmesg | tail -n 1
[226125.419648] leds pca963x:whw03v2:blue:power: Setting an LED's brightness failed (-110)

I found an thread on the ath10k mail archives that appear to be relevant to this error and specifically discusses a similar issue specifically for ipq4019 platform. Thread suggests that there is an upstream patch that fixes this issue, so I am definitely interested is trying out @Nico1320 's snapshot build.

Link to thread: https://www.mail-archive.com/ath10k@lists.infradead.org/msg12277.html

Thanks @Nico1320 for this image which works well on my WHW03v2. Please could you add your changes to @flipy 's repo or share a link to the one you are using?

I'd like to build a new image based on the latest OpenWrt snapshot with an updated Linux kernel.