Belkin RT3200/Linksys E8450 WiFi AX discussion

If you want to try the new mt76 version with that VHT160 DFS fix , you can test it by yourself by patching the mt76 Makefile:

--- a/package/kernel/mt76/Makefile
+++ b/package/kernel/mt76/Makefile
@@ -8,9 +8,9 @@ PKG_LICENSE_FILES:=
 
 PKG_SOURCE_URL:=https://github.com/openwrt/mt76
 PKG_SOURCE_PROTO:=git
-PKG_SOURCE_DATE:=2022-02-15
-PKG_SOURCE_VERSION:=c67df0d3130a51d79b558f0329c2ca289c73b16e
-PKG_MIRROR_HASH:=57526f62adc1c1cc2c594ff23b883314ad83df8cdfab54c9e3503a8ec4c3a33f
+PKG_SOURCE_DATE:=2022-02-24
+PKG_SOURCE_VERSION:=64c74dc93f68566cd2c199d2951482ee55ca8b9a
+PKG_MIRROR_HASH:=5b3d60047ff9ee97e091b7a2cd20778d1eea61e9210ad19944f2b942a3c16d90
 
 PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
 PKG_USE_NINJA:=0

EDIT:
with that patch, VHT160 at 36 succeeds.

2 Likes

I want to try it, I have already patched the mt76 Makefile but I am kinda lost with the .config. Can anyone provide a good reliable .config to start with for the E8450? I always get lost with the kernel modules.

You can start with just an empty .config, and then select the device and add LuCI.

EDIT:
I have uploaded my own r19043-c2d7896a65 build with that patch to:

Also my build config can be seen there as "diffconfig.txt"

2 Likes

Integrating the generation of the installer image into the current OpenWrt git tree would require quite a lot of structural changes. Currently we don't have a way to generate a specific per-device initramfs, and including yet another initramfs image as well as other build artifacts in an initramfs image (the installer) is completely out of scope.
What I was planning to do is simply to generate an installer based on 22.03.0 once it gets released.
I agree that forcing boot into recovery image based on pstore/ramoops may be confusing -- on the other hand it helps a lot to find and document hidden bugs which we do want to find and fix, so keeping it enabled has already brought as to a state where now (with nftables/firewall4 and no longer using the iptables flow-offloading hack) there just haven't been any reports of kernel crashes for months. In my opinion OpenWrt doesn't try to make a consumer-grade product but actually targets developers and enthusiasts, so I'm not feeling too bad about burdening users a bit if that results in overall better software quality (ie. meaningful bug reports of things which would otherwise go unnoticed).

This is kinda similar to the debate about the "reboot every 24h" cron-job you will find in some community mesh networks -- I understand the convenience and the need for it, but ultimately workarounds like this have the effect that things will just not get fixed and in the long-term you will then need to reboot (or live with kernel oops related reboots) more and more often.

Hence I'm tempted to just leave it on and maybe document it better (incl. how users can disable that feature) in the wiki.

3 Likes

How about a package e.g. "toggle-bootcmd-pstore-e8450" that installs a script file as /etc/toggle-bootcmd that by default displays the current bootcmd and offers cmdline options to toggle the initramfs fallback on/off with fw_setenv ? So the users would more easily be able to toggle the feature. The package might be included by default to E8450/RT3200.

Something like that might help casual users (although they naturally would need to find the command first even if the package would be installed by default).

Ps. Personal anecdote: I toggled that pstore initramfs feature off when I installed two new RT3200s for my sister. Her family would never be debugging anything, so having the routers possibly stuck on initramfs was not feasible. I think that this will true for many users.

4 Likes

Something like this:
(I made just minimal change and even left the if clause)

root@router4:~# cat /etc/toggle_bootcmd
#!/bin/sh
#
# This script can change the bootcmd in the u-boot bootloader 
# of E8450 / RT3200 UBI variant to boot either into
# * initramfs recovery if pstore crash logs are detected (default)
# * main OpenWrt despite the crash log files in pstore

cur_bootcmd=$(fw_printenv -n bootcmd)
echo "Current setting:  bootcmd=$cur_bootcmd"

echo -e "\nOptions:\n" \
        "-i   Boot into initramfs if crash files are present\n" \
        "-o   Boot always into normal OpenWrt\n"

if [ "$1" = "-i" ]
then
        echo "Set bootcmd to use initramfs if pstore files present"
        fw_setenv bootcmd "if pstore check ; then run boot_recovery ; else run boot_ubi ; fi"
elif [ "$1" = "-o" ]
then
        echo "Set bootcmd to always boot into normal OpenWrt"
        fw_setenv bootcmd "if pstore check ; then run boot_ubi ; else run boot_ubi ; fi"
else
        echo -e "\nNo operation selected"
fi

sync

fw_printenv bootcmd
4 Likes

I generally like the idea, but it should be in /sbin rather than /etc (which contains configuration rather than executable stuff).
Maybe it could even be integrated with luci-app-advanced-reboot so we won't need an additional package for that.

1 Like

It might be better to be e8450 specific and in the main OpenWrt repo, so that it could be included in the default images.

(Advanced-reboot is principally about the Linksys dual-boot toggling, somewhat different, and isn't included by default by any device)

2 Likes

Hey @hnyman thanks so much. Last night I left the build running following your simple build instructions, however it was too late here and I fell asleep. It worked fine. Yes, my build also shows the problem has been fixed. Thanks for sharing your diffconfig. I didn't know that the build comes straightforward without any configuration file.

https://lists.openwrt.org/pipermail/openwrt-devel/2022-March/038170.html

good evening ! on March 20 will take place the freezing of the next release but paul says that it takes more time before the officialization 22.03
my question may be stupid but how long do you think thank you in advance

2 Likes

10 posts were split to a new topic: E8450/RT3200 gigabit speeds tweaking?

Sounds like the first 22.03.0-rc1 version might be built in early April

See http://lists.openwrt.org/pipermail/openwrt-devel/2022-February/038037.html

Around 20. March 2022 we plan to branch off the next major release and
would prepare for a first release candidate about 1 week later.

5 Likes

Can you share your exact settings or?

He already did it in the right thread: E8450/RT3200 gigabit speeds tweaking? - #70 by JimmyValentine

1 Like

Maybe you can try iptables-nft with those commands?

Or disable the built in dns server and put the adblocking one directly on port 53.
Or config the built in dns server to use the adblock as the upstream dns server. I setup DHCP on my router to hand out pihole as DNS1 and the routers DNS as DNS2 if pihole/server would go down for some reason.

1 Like

Realized my setup was actually adding an additional hop by forwarding all the traffic from 53 to 5353. Ended up finding the official documentation (https://openwrt.org/docs/guide-user/services/dns/adguard-home) which basically just says to move DNSMasq to 5353 and run AdGuard native on 53. Been working amazingly so far. 4ms average processing time. This router is a beast. :slight_smile:

2 Likes

Raised it just now, as it looks like it was not raised by anyone so far. https://github.com/openwrt/openwrt/issues/9420#issue-1161938817

To resolve it temporarily for me, I've interposed a dumb gbps switch between the E8450 and the slow devices, so the router only sees gbps ethernet ports now. That resolved the issue for me and allows me to track snapshot builds until a real bug fix is found for the original commit's error.

2 Likes

I am on a Snapshot from earlier this year (beginning of january). It has been very solid for me and normally i have no reason to update. Unfortunately there is a major CVE in the Linux kernel. I am not certain if this CVE compromises my system, but better safe than sorry...

I tried to sysupgrade, but it is giving me the following error: opkg_install_cmd: Cannot install package iptables.

What should i do? Build from latest snapshot and reflash?

Yes.
The default firewall has changed since then. And the old iptables has been renamed as iptables-legacy.

If you have snapshot from January and want to install firewall related packages, you need to sysupgrade to the current snapshots first.

Ok. Just to clarify. I build from last snapshot on my linux system and flash via Flash new firmware image. Do i have to enter recovery mode or flash the "recovery firmware" before flashing the firmware like when i did the first install?

What happens to my settings and installed packages when i flash the self-build firmware?