W1700K Community Builds
Following some great discussion in the main Quantum Fiber W1700K Developer Support thread, this thread has been created as a dedicated home for community and custom builds of the W1700K.
Why this thread?
With the W1700K now officially supported in OpenWrt snapshot, the developer thread is rightly focused on upstream submissions and official builds. Custom builds — which often include experimental patches, extra drivers, performance tweaks, and other additions beyond snapshot — are a fantastic part of this community, but they belong in their own space so both streams can thrive without stepping on each other.
Community builds are where a lot of the most interesting experimentation happens.
What this thread is for
- Sharing your custom W1700K builds
- Helping others flash, configure, and get the most out of their device
- Testing and discussing experimental patches before they go upstream
- Supporting users who want more than stock snapshot offers
A big thanks to everyone in the developer thread who has put so much work into getting this device to where it is today. That foundation is what makes all of this possible.
Jump in, share your builds, and let's keep the W1700K community growing. 
10 Likes
Thank you for starting this.
While I suck at coding
. I am generally ok with testing including thing that potentially breaks!
As they say.. take what you need and contribute what you can.
On the testing front, 6.18 PR seems stable and performant. And most of the essential patches from 6.12 that are stuck at PR have more or less been ported to 6.18 as well.
2 Likes
Anyone can write a patch now days, but it takes a brave soul to actually flash it! 
1 Like
Hello, I wanted to install OpenWrt to my W1700K, but I think there’s an error about initializing LAN device. it shows
[ 27.953058] platform 1fb58000.switch: deferred probe pending: (reason unknown)
[ 27.960306] pci 0000:01:00.0: deferred probe pending: pci: supplier 1fb50000.ethernet not ready
[ 27.969018] platform 1fb50000.ethernet: deferred probe pending: (reason unknown)
this text and I cannot get into LuCI. How can I solve this?
When I connect LAN to the 10GbE port next to the 1G port, it doesn’t recognizes at all. But when I connect it to 1GbE port, it works and flashes well.
Plus I can also see this error:
[ 13.313860] mt7996e 0000:01:00.0: WM Firmware Version: ____000000, Build Time: 20260311120504
[ 13.353734] mt7996e 0000:01:00.0: DSP Firmware Version: ____000000, Build Time: 20260311120415
[ 13.372270] mt7996e 0000:01:00.0: WA Firmware Version: ____000000, Build Time: 20260311120325
[ 13.706705] mt7996e 0000:01:00.0: eeprom load fail, use default bin
I bought this W1700K open-boxed one. Did this one got EEPROM cleaned? What should I do?
I am drawing quite a few assumptions from what you have just said.
Easiest way is to start clean from scratch. Which means, open up the box and connect to serial.
https://github.com/openwrt/openwrt/pull/17869
https://github.com/hurrian/w1700k-ubi-installer
Edit:
Taking a closer look at your post. You seems to be able to flash it from the web interface when connected to the 1G ports. Is that correct? You post is very scratchy on details. What have you flashed? how have you flashed? what is not working?
@glassdoor You might find a couple of patches in my repo useful.
PPE Hardware Offload Fix The first fixes PPE hw offload in bridge/AP mode when using the latest snapshots: 634-net-airoha-ppe-Init-PPE-hw-at-tc-block-bind-for-bridge-mode.patch
Realtek 5G/10G PHY Driver Fixes The following two patches address issues with the Realtek PHY driver on the latest snapshot:
-
742-net-phy-realtek-rtl826x-mask-interrupt-before-reset.patch — Fixes a WAN PHY IRQ race on first boot after a fresh flash. The RTL8261N asserts its interrupt during power-on reset before the phy_interrupt handler is registered, causing the kernel to permanently disable IRQ 53. This patch masks the PHY interrupt at the start of rtl826x_config_init() before the hardware reset fires, preventing the race condition.
-
CONFIG_REALTEK_PHY=m → =y in target/linux/airoha/an7581/config-6.12 — The driver was being built as a loadable module, meaning LAN2's PHY (phy5) was probed at around 13 seconds before the module had loaded. This caused the Generic C45 driver to grab it first and subsequently crash it. Changing to built-in resolves the issue cleanly.
1 Like
the PPE hardware offload fix is a standalone fix? I don’t quite get this fix.
Currently to offload bridge traffic in AP mode (including wifi traffic) there are two options
-
bridger (fw4 is not needed and can be disabled)
-
nf_flow_offload patches by way of fw4. https://github.com/openwrt/openwrt/pull/22533
Where does this fix fit in?
As for the rtl8261n phy driver, I have switch to the new driver under PR review right now. https://github.com/openwrt/openwrt/pull/22563
The fix is for the fw4 / nf_flow_offload path only — bridger isn't affected.
I run snapshots in AP mode, and after the recent airoha PPE patches merged, hardware offloading broke.. well for me it did. The root cause: in AP/bridge mode the MT7530 runs in switchdev mode with an empty software FDB. The kernel's nft_flow_route_bridging calls br_fdb_find_rcu(), gets NULL, and no flows ever land in the nf_flowtable.
Re: RTL8261N — I manually compiled the new driver into my build against the latest snapshot and hit both issues there. Good to know you're already on it via PR. The IRQ masking patch may still be relevant depending on whether the new driver addresses the power-on reset race.
1 Like
Thanks for the clarification. I have not build a 6.12 build after the recent ppe patches merge. My focus has been on the 6.18 PR and stacking existing or updated patches for it.
for 6.18, nf_flow_offload patches, I initially used @hurrian https://github.com/hurrian/openwrt-w1700k/commit/dd55ea0a1eb6c3c13e1af47d60becb05a8211589 but there are issues with it, wifi downloads was getting offloaded but wifi uploads were not and still going through the cpu. @OpenWRT-fanboy https://github.com/OpenWRT-fanboy/OpenW1700k/commit/d5ec52ad64349da6d5ea4a1ef683da3e25c4e7cf version of the patch works and both wifi DL and UL are properly offloaded. This is on top off 6.18 PR rebased with the ppe patches merged.
1 Like
It just occured to me I had not relook at bridger in a while now. The last time I tried it created all sorts of issues with wifi NPU offload. I may try a build with 6.18 to see if the issues have been sorted out.
I have everything back up and working how it should but I'm still using the older patch set from rchen14b so not sure if his recent update addressed it or not?
@glassdoor - These are functionally the same as the current 675 patches I'm using — just rebased. They still rely on br_fdb_find_rcu() finding entries in the bridge FDB.
Anyway, this old timer will retreat back to the shadows for now — hopefully some of the more prominent contributors will pick up where they left off. The door's open, the thread is ready, and the kettle's on. 
2 Likes
I just tried a bridger build with 6.18.
On a freshly rebooted AP. Both wifi downloads and uploads are correctly offloaded.
But when you disconnect and reconnect wifi clients (tested with iphone 16PM and 17PM). Wifi downloads is still correctly offloaded and works normally. Wifi uploads are now no longer offloaded and can be seen in the huge cpu spikes on AP during wifi client uploads and the wifi uploads is capped to under 1Gbps (vs 1.5Gbps when offloaded works properly). The only way to correct this is a reboot a the AP. Client connect/disconnects does not help.
[ 101.291675] br-lan: port 5(phy0.1-ap0) entered blocking state
[ 101.297461] br-lan: port 5(phy0.1-ap0) entered forwarding state
[ 149.576723] Unable to handle kernel write to read-only memory at virtual address ffffff8013a75ffe
[ 149.585621] Mem abort info:
[ 149.588428] ESR = 0x000000009600004f
[ 149.592186] EC = 0x25: DABT (current EL), IL = 32 bits
[ 149.597498] SET = 0, FnV = 0
[ 149.600544] EA = 0, S1PTW = 0
[ 149.603694] FSC = 0x0f: level 3 permission fault
[ 149.608482] Data abort info:
[ 149.611360] ISV = 0, ISS = 0x0000004f, ISS2 = 0x00000000
[ 149.616847] CM = 0, WnR = 1, TnD = 0, TagAccess = 0
[ 149.621905] GCS = 0, Overlay = 0, DirtyBit = 0, Xs = 0
[ 149.627211] swapper pgtable: 4k pages, 39-bit VAs, pgdp=0000000080cf5000
[ 149.633910] [ffffff8013a75ffe] pgd=18000000fffff403, p4d=18000000fffff403, pud=18000000fffff403, pmd=18000000fffbb403, pte=00e0000093a75787
[ 149.646453] Internal error: Oops: 000000009600004f [#1] SMP
[ 149.652107] Modules linked in: pppoe ppp_async nft_fib_inet nf_flow_table_inet pppox ppp_generic nft_reject_ipv6 nft_reject_ipv4 nft_reject_inet nft_reject nft_redir nft_quota nft_numgen nft_nat nft_masq nft_log nft_limit nft_hash nft_flow_offload nft_fib_ipv6 nft_fib_ipv4 nft_fib nft_ct nft_chain_nat nf_tables nf_nat nf_flow_table nf_conntrack nct7802 mt7996e(O) mt76_connac_lib(O) mt76(O) mac80211(O) iptable_mangle iptable_filter ipt_REJECT ip_tables cfg80211(O) xt_time xt_tcpudp xt_multiport xt_mark xt_mac xt_limit xt_comment xt_TCPMSS xt_LOG x_tables slhc regmap_i2c nfnetlink nf_reject_ipv6 nf_reject_ipv4 nf_log_syslog nf_defrag_ipv6 nf_defrag_ipv4 compat(O) br_netfilter i2c_mt7621 i2c_dev crypto_hw_eip93 sha1 md5 libmd5 des_generic libdes cmac leds_gpio mt7530_mmio mt7530_dsa airoha_eth airoha_npu gpio_button_hotplug(O) realtek hwmon i2c_core
[ 149.727233] CPU: 0 UID: 0 PID: 511 Comm: napi/qdma_eth-0 Tainted: G O 6.18.21 #0 NONE
[ 149.736622] Tainted: [O]=OOT_MODULE
[ 149.740102] Hardware name: Gemtek W1700K (OpenWrt U-Boot layout) (DT)
[ 149.746535] pstate: 60400005 (nZCv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--)
[ 149.753495] pc : br_nf_pre_routing_finish_bridge+0x1a4/0xcbc [br_netfilter]
[ 149.760493] lr : br_nf_pre_routing_finish_bridge+0x18c/0xcbc [br_netfilter]
[ 149.767463] sp : ffffffc080d0ba60
[ 149.770770] x29: ffffffc080d0ba60 x28: ffffffbfff072000 x27: ffffff80024ee000
[ 149.777905] x26: ffffff8013a7600e x25: 0000000000000008 x24: 0000000000000000
[ 149.785041] x23: ffffffc080ce2e40 x22: 0000000000000000 x21: ffffffc080ce2e40
[ 149.792177] x20: ffffff80021c9400 x19: ffffff8013f37100 x18: 0000000000000068
[ 149.799311] x17: ffffffbfff072000 x16: ffffffc080d08000 x15: 0000000000000080
[ 149.806447] x14: 0000000000000001 x13: ffffffc08090e990 x12: 0000000000000000
[ 149.813582] x11: ffffffc078dcaa40 x10: ffffff8001ed8218 x9 : 0000000000000000
[ 149.820718] x8 : 0000000000000004 x7 : ffffffc080c88958 x6 : 000000008ce7ad33
[ 149.827853] x5 : 0000000000000000 x4 : da03bcb3c9880000 x3 : ffffff8013a7600e
[ 149.834988] x2 : ffffff80021c94d4 x1 : 0000000000000000 x0 : ffffff800229c000
[ 149.842125] Call trace:
[ 149.844564] br_nf_pre_routing_finish_bridge+0x1a4/0xcbc [br_netfilter] (P)
[ 149.851534] br_nf_hook_thresh+0xe0/0x1448 [br_netfilter]
[ 149.856942] br_nf_hook_thresh+0x26c/0x1448 [br_netfilter]
[ 149.862437] br_nf_hook_thresh+0x69c/0x1448 [br_netfilter]
[ 149.867932] br_handle_frame+0x260/0x4ac
[ 149.871856] __netif_receive_skb_core.constprop.0+0x6d8/0xf90
[ 149.877602] __netif_receive_skb_one_core+0x28/0x50
[ 149.882480] __netif_receive_skb+0x14/0x58
[ 149.886577] process_backlog+0x74/0x174
[ 149.890414] __napi_poll+0x34/0x180
[ 149.893903] net_rx_action+0x11c/0x2ac
[ 149.897653] handle_softirqs+0xfc/0x22c
[ 149.901490] __do_softirq+0x10/0x18
[ 149.904980] ____do_softirq+0xc/0x20
[ 149.908557] call_on_irq_stack+0x30/0x60
[ 149.912480] do_softirq_own_stack+0x18/0x20
[ 149.916664] do_softirq+0x4c/0x60
[ 149.919972] __local_bh_enable_ip+0x88/0x8c
[ 149.924156] napi_threaded_poll_loop+0xdc/0x148
[ 149.928686] napi_threaded_poll+0x70/0x7c
[ 149.932697] kthread+0xe4/0x1ac
[ 149.935840] ret_from_fork+0x10/0x20
[ 149.939420] Code: 88dffc41 370003e1 f9406663 f9407284 (f81f0064)
[ 149.945511] ---[ end trace 0000000000000000 ]---
[ 149.950122] Kernel panic - not syncing: Oops: Fatal exception in interrupt
[ 149.956995] SMP: stopping secondary CPUs
[ 149.960916] Kernel Offset: disabled
[ 149.964399] CPU features: 0x000000,00000000,00000001,0400400b
[ 149.970145] Memory Limit: none
[ 149.973194] Rebooting in 3 seconds..
build with offloading without bridger make kernel panic and now it makes unstable performance fluctation in home network. something gone wrong.
build source?
I have been using with nf_flow_offload patches on both 6.12 and now 6.18 with no issues. My use case is as an AP with 10G port as uplink and wifi. The rest of the ports are not used. Maybe you want to describe your use case? So that others can replicate?
i used OpenWRT-fanboy’s build. SNAPSHOT & bridger build is stable. No issue for regular usage. test, minimal, minimal-OC build makes kernel panic. it can’t sustain an hour for regular usage. it’s not issue of sillicon lottery. i set clock to 1200, 1000, 800 it still makes kernel panic.
Are you using as a router with all ports populated? I run my setup for days. Never ran into a kernel panic due to nf_flow_offload patches before.
almost. i changed wan port to lan4 and put ISP modem on lan4, NAS on 10G wan port, PC on 10G lan2 port. and 3 device on 2.4G(3D Printer, Robot Vacuum, SmartPlug), 2 Device on 5G(TV, laptop), 1 Device on 6G(my phone).
If you can built your own images. I just have a plain snapshot build and and another one just with nf_flow_offload patches added. And do a direct A-B test. Fastest way to verify if that is the source of your problems.
Edit:
You mentioned that it kernel panics after an hour of use? Do you have any other packages installed?