Onhub TP-LINK TGR1900 future support?

Quick note - I had been having issues with downloads failing on my NSS builds that I had isolated to being a bad interaction between the NSS kernel modules and software flow offloading being enabled at the same time. Had a bunch of logspam of mdio-gpio mdio eth1: nss_gmac_xmit_frames: dropping skb when this occurred. Apparently by enabling software flow offloading you are bypassing the NSS drivers.

So maybe don't do that. Kind of makes sense but I didn't figure it out until now testing out some new builds on a secondary device. I'm not seeing any prominent note in this in the thread about the NSS drivers or ACWifiDude's builds, so I figured I'd share. My speedtest seems to be better with it disabled on the NSS builds anyway.

I'll try to get a more complete guide on BT speaker configuration and maybe a premade build. I've been on and off the grid lately - bad storms, haven't had time or power to test often.

1 Like

Thanks for the clear steps that you put together.
I'm having problems at the step after the 2 beeps. I tried to press developer button immediately, after 1 second, etc, I tried with several USB sticks(containing openwrt-ipq806x-chromium-tplink_onhub-squashfs-factory.bin file), formatted both FAT32 and ext4, the low-tone beep still appear.
I start your steps after I performed the factory reset using chromeos_9334.41.3_whirlwind_recovery_stable-channel_mp.bin image.
Please let me know if you have any ideea what I should further try.

Many thanks!

1 Like

Are you dragging the OpenWRT .bin file onto a pre-formatted flash drive instead of 'burning' it with dd or something like Balena Etcher? You shouldn't have to choose a filesystem, there's already a filesystem inside the .bin.

1 Like

Indeed, I just copied the openwrt-ipq806x-chromium-tplink_onhub-squashfs-factory.bin onto the stick, I did not think that is just another image like the factory reset image was. I thought that is just a special bin file that will be recognized by the OnHub and will load it. I was also being tricked by the fact that I was using in the past several openwrt bin files for some other routers and none of them were images, is true that they were not loaded through USB.
Anyway, your reply made things clear and everything is working perfectly now.

Thanks a lot, I really appreciate.

Interesting. I was able to get 450 Mbps (I have 500 from ISP, so I'm guessing this is as good as I'll get) by using precompiled NSS image from dadogroove and his rc.local cmds. But then I also achieved the same using SQM cake. To be honest, I wasn't paying attention to what my s/w flow controls were set to... I'll have to check tonight and report back here.
One thing I noticed, there's an NSS init script that simply will not start for me. It doesn't seem to have any effect, but I'm wondering if it runs successfully for anyone else? (Exact name to follow, but you can find it in the LUCI Startup section). Thx.

To ryjelsum's point, Correct, there is no need to use software or hardware offloading either through the gui as it will negate the NSS advantages. I think there was something in ACwifidude's thread at some point about this. There are some that install and use irqbalance but I've read mixed reviews about that. It seems to be good for quad core devices, not so helpful for dual core like the onhub. I haven't had any luck getting any further with the bluetooth yet.

To Trigger31337, The SQM with cake works very well but with the NSS cores active it should keep the main cpus load lower than using cake for the same results. This will help the device speed up as a whole. I have read that the qca-nss-mirred is somehow needed with the NSS and the 5.15 kernel. It is disabled on all devices I've used and I cannot enable it either. I just leave it be, doesn't seem to harm anything. It is not present in the 5.10 NSS builds, which I use on my main router. This was one recent post in ACwifidude's thread, I believe there were one or two above it as well.

1 Like

Guys, what for there are two VLANs after flashing?
And second question, how to bridge all interfaces to make a Wifi or LAN repeater? (WAN port need too). I tried relayd package, but OnHub reboots after setting up and reconnecting to router.


Is this what you are referring to?

1 Like

This I can understand, but when I tries to bridge these 2 vLans, and connect to repeater and check connection, router reboots.

Yes, I used things from this article, but I need WAN port too and keep same subnet. And tried this https://openwrt.org/docs/guide-user/network/wifi/relay_configuration

Main goal: Main Router LAN -> WAN Second Router, so LAN port and Wifi clients will recieve DHCP settings from Main Router.

Current config: https://pastebin.com/xYSppqVS and if I try to connect to wifi on Router with static ip (or dhcp) (subnet 192.168.1.) on client, Router reboots.

If I connect to wifi with 192.168.10. subnet on client settings, Router not reboots, but no internet on LAN, WIFI clients, but Router have it.

Any way to covert WAN port to LAN?

I think there is too much going on there. No need for firewall on the AP, that is done at the router. Not sure about the ready bridge either. These are the instructions I have saved for doing this. I don't currently have any WRT APs setup.

Configuration via Web Interface LUCI

Of course you can achieve this with using the web interface:
Once you have configured your wireless network with LUCI you can start configuring your dumb AP.

1. Disconnect the (soon-to-be) Dumb AP from your network, and connect your computer to it with an Ethernet cable.

2. Use the web interface to go to Network → Interfaces and select the LAN interface.

3. Enter an IP address “next to” your main router on the field “IPv4 address”. (If your main router has IP, enter Set DNS and gateway to point into your main router to enable internet access for the dumb AP itself

4. Then scroll down and select the checkbox “Ignore interface: Disable DHCP for this interface.”

5. Click “IPv6 Settings” tab and set everything to “disabled”.

6. In the top menu go to System → Startup, and disable dnsmasq and odhcpd in the list of startup scripts.

7. Click the Save and Apply button. Hard-Restart your router if you're not able to connect anymore.

8. Go to (or whatever address you specified) and check if the settings for the LAN interface are the same.

9. Use an Ethernet to connect one of the LAN ports on your main router to one of the LAN/switch ports of your “new” dumb AP. (There's no need to connect the WAN port of the Dumb AP.)

Once the AP is given a static address and DHCP turned off you will not be able to connect to it unless you connect it to the router or set a static IP on the computer you are using to configure it. To convert the WAN port to LAN by referring to your picture above, switch the items in WAN column. VLAN 1 = untagged and VLAN2 = off. Also under network - interfaces edit wan and wan6 general settings, uncheck bring up at boot since you will not be using them. Hope this helps.

1 Like

Thanks for some advices. I'm already did it.
For testing purpose last time I used LAN port, to connect to main router. Then I deleted all the interfaces, and left one with static settings and device: br-lan (lan+wlan).

Then I ping some sites with bultin tool, router had connection to the internet. But when I tried to connect to wifi, right after my client recieved IP router reboots.

If someone have time and this device please test in same situation.

disabled firewall while in dumb ap mode will cause panic
as a workaround, disable ecm init script and execute sysctl -w dev.nss.general.redirect=1 to avoid error when wifi clients connected
but without ecm wifi performance is slower

1 Like

I followed my own instructions on my onhub and got the same issue of a reboot when the wifi client connected. Once I re-enabled the firewall all is good. I'm pretty sure when I've made APs before I always disabled the AP's firewall without issue. Maybe something new in 5.15 as my other APs were all on 5.10. Probably Firewall4, now that I think about it. All my APs were using Firewall3. I also made sure to remove all NSS or SQM settings as the main router is doing all that work.

1 Like

So I shouldn't disable it completely, but can allow all the things?

Thanks for answers! Didn't touch firewall at all, deleted all others than LAN interfaces, and moved "untagged" mark of WAN port to VLAN 1. And all works!

1 Like

If you can, leave WAN alone - makes your setup much simpler and you only lose one port.

If you can't, don't bridge, just remove the WAN port from VLAN2 and add it to VLAN1 (they're all sitting on the same switch anyways) - once done, VLAN2 and WAN/ WAN6 can be removed as well.

Again, if you can, go with option 1.

1 Like

Interesting. I've disabled firewall and dnsmasq on both my TPLink switches. Also configured fast roaming. Using your NSS build to get around 450mbps (out of a possible 500 from ISP). Everything just works and very stable.
Next things to play with are Bluetooth and the LEDs. Oh, and if I can silence the BEEP on reboot, that'd be nice too. :slight_smile: hehe.. when I get around to it. :stuck_out_tongue:
Thanks again, mate!

1 Like

You're welcome. I haven't been able to get the Bluetooth working yet but it's not a huge issue for me. Would just be fun since it supports it. I have played music streams through it with mpg123, though. The LEDs are fun to play with since it has 6 with 3 colors each. Did you see this? I haven't tried it yet.

1 Like

Your patch applies nicely and compiles well! I made a test build for ASUS or TP Link devices. Anyone is free to try it and give feedback.


Looks good, performance-wise... but is it me or is the System/Software menu now missing?! :wink:
Also, I'm partial to the Bootstrap.Dark interface over OpenWRT2020... but I'm just nitpicking now. :slight_smile: Great work, sir! Keep it up!

When I ran this command it ask for a password

scp -O openwrt-ipq806x-chromium-tplink_onhub-squashfs-factory.bin root@

root@'s password:

I reset to factory setting and booted with OpenWrt image and was able to ping the router.
What could be the root password? I try it a few time and get the same result