Davidc502- wrt1200ac wrt1900acx wrt3200acm wrt32x builds

Hello everyone. I've been following this thread for a long time, but didn't sign up as I didn't feel I could add anything.

Like a few others, I have been plagued by wifi issues even on the latest versions (WRT32X). These normally manifest in disconnections for all devices, with the radios (both 0 and 1) being disabled either individually or at the same time. Usually, these would restart on their own, on occasion they wouldn't. In the worst-case situation, just one of the radios would work, and enabling the other would disable the working one. This didn't seem to be DFS related as the logs didn't have any mention of it. I also locked to channel 36 to ensure. The only way to fix it when the router was in the state was a reboot.

This seemed really weird, as I could factory reset the device / reinstall the firmware, make almost no changes (password / encryption only) and the wifi was effectively unusable at random.

There are around 10 wireless devices, ranging from old Android phones (~8 years old), to Samsung S20s and Amazon Alexa devices across the 2 radios.
To complicate matters further, the router was purchased in the UK, but I moved to Iceland. I believe that some (smart?) devices pass localization information around, which I suspected may be causing an issue. The device reports FR: DFS-ETSI which of course I'm unable to change. I have no idea how or if it's important it is that devices 'match' this in some way - comments welcome. I'm out of the loop with this.

Anyway, I've been slowly changing settings one at a time to see if I could isolate something which would stop the disconnects. This has taken quite a while, as sometimes the wifi would work for a day or so, before the 'death cycle' started.

After many attempts, I seem to have found a solution for me: Disabling WMM Mode on radio 1.
I'm aware this lowers the speed for devices on this radio, but given that I am able to leave WMM Mode enabled on the 5Ghz radio0, then it really doesn't matter for my use case. All devices on the slower radio are older ones anyway.

I'm posting this for a couple of reasons:

  • Maybe this will help others
  • What the heck would cause this? It seems so weird that disabling WMM on radio 1 could have such a massive impact on stability across both radios.

For the first time since moving here, I have stable wifi (1week+) with the following config:

config wifi-device 'radio0'
        option type 'mac80211'
        option hwmode '11a'
        option path 'soc/soc:pcie/pci0000:00/0000:00:01.0/0000:01:00.0'
        option htmode 'VHT80'
        option country 'FR'
        option channel '36'

config wifi-iface 'default_radio0'
        option device 'radio0'
        option network 'lan'
        option mode 'ap'
        option macaddr 'xx:xx:xx:xx:xx:xx'
        option ssid 'MySSID5Ghz'
        option key '*****'
        option disassoc_low_ack '0'
        option encryption 'psk2+ccmp'

config wifi-device 'radio1'
        option type 'mac80211'
        option hwmode '11g'
        option path 'soc/soc:pcie/pci0000:00/0000:00:02.0/0000:02:00.0'
        option htmode 'HT20'
        option country 'FR'
        option channel '5'

config wifi-iface 'default_radio1'
        option device 'radio1'
        option network 'lan'
        option mode 'ap'
        option macaddr 'xx:xx:xx:xx:xx:xx'
        option ssid 'MySSID'
        option key '*****'
        option encryption 'psk-mixed+ccmp'
        option wmm '0'

I feel like I'm missing something, but I don't know what :man_shrugging:

Try to change wpad-wolfssl or wpad mini or full....to hostapd-openssl and wpa-supplicant-openssl

This in combination with your find of wmm and setting your 2.4ghz band to legacy....will solve everything!

Specify as much in Luci as possible....so fill in every standard value in the options in general and advanced...like distance, (don't force 40mhz!!!)

I have full 700-877mbit for 6 5ghz devices at the same time! And reconnects within 1 second!!! And my range and speed is better!

Looks at the beginning of the log lines...with 26 .... connected, handshake, authentication within 1 second

1 Like

You don't state device / OpenWrt version so a little supposition here:

  • Re. CC for locale, there is a patch that I have seen some in the EU report success with better behaviour frrom connecting clients.
  • Re. one radio going down when enabling the other, there is a FS and thread on the issue, resolution
1 Like

Thank you both. The device is a WRT32X (Don't know how I forgot to include that!), with the latest Davidc502 build, although I did try the vanilla OpenWRT builds and experienced the same wifi issues. This would have been on 19.07.3 though, not the recent .5 release.

@anon68513369 - Thanks, I will go and read up on this. It looks like the only package that is installed and is close to what you describe is "wpad-basic". Neither "hostapd-openssl" or "wpa-supplicant-openssl" is installed according to opkg. I will install them and do some reading.

@anomeome - Thanks, I've added the model to the post.
I've modified the file in /lib/netifd/wireless/mac80211.sh to match the one reported to work better.
Unfortunately, the patch is a bit beyond me currently, but thank you for the information. I'll add it to the list of things to read up on in the future.

Veth stuff doesnt work with new kernel at least not for me....

Hi all,

I've been using David's OpenWRT build for my WRT3200ACM for some years now as it was the only way to get decent Wireless speeds. This week I decided to try the latest build and got 2 problems:

  • wireless (2.4Ghz or 5Ghz) speeds are terribly slow: 1/10 of wifi speeds with stock firmware (don't have numbers on speeds on older David's build).

  • Some devices can't connect to network, it hangs on "obtaining IP address". So far I can confirm it happens with Android phones, while it works with a Mac and iPhone. Since I also changed my password, I haven't checked if all other devices are having the same problem.

Here's some logs when the Android device tries to connect:

Sun Jan  3 10:57:37 2021 daemon.debug hostapd: wlan0: STA 06:9c:ae:ab:e3:b1 IEEE 802.11: authentication OK (open system)
Sun Jan  3 10:57:37 2021 daemon.debug hostapd: wlan0: STA 06:9c:ae:ab:e3:b1 MLME: MLME-AUTHENTICATE.indication(06:9c:ae:ab:e3:b1, OPEN_SYSTEM)
Sun Jan  3 10:57:37 2021 daemon.debug hostapd: wlan0: STA 06:9c:ae:ab:e3:b1 MLME: MLME-DELETEKEYS.request(06:9c:ae:ab:e3:b1)
Sun Jan  3 10:57:37 2021 daemon.debug hostapd: wlan0: STA 06:9c:ae:ab:e3:b1 IEEE 802.11: association OK (aid 2)
Sun Jan  3 10:57:37 2021 daemon.notice hostapd: wlan0: STA-OPMODE-N_SS-CHANGED 06:9c:ae:ab:e3:b1 2
Sun Jan  3 10:57:37 2021 daemon.info hostapd: wlan0: STA 06:9c:ae:ab:e3:b1 IEEE 802.11: associated (aid 2)
Sun Jan  3 10:57:37 2021 daemon.debug hostapd: wlan0: STA 06:9c:ae:ab:e3:b1 MLME: MLME-ASSOCIATE.indication(06:9c:ae:ab:e3:b1)
Sun Jan  3 10:57:37 2021 daemon.debug hostapd: wlan0: STA 06:9c:ae:ab:e3:b1 MLME: MLME-DELETEKEYS.request(06:9c:ae:ab:e3:b1)
Sun Jan  3 10:57:37 2021 daemon.debug hostapd: wlan0: STA 06:9c:ae:ab:e3:b1 IEEE 802.11: binding station to interface 'wlan0'
Sun Jan  3 10:57:37 2021 daemon.debug hostapd: wlan0: STA 06:9c:ae:ab:e3:b1 WPA: event 1 notification
Sun Jan  3 10:57:37 2021 daemon.debug hostapd: wlan0: STA 06:9c:ae:ab:e3:b1 WPA: start authentication
Sun Jan  3 10:57:37 2021 daemon.debug hostapd: wlan0: STA 06:9c:ae:ab:e3:b1 IEEE 802.1X: unauthorizing port
Sun Jan  3 10:57:37 2021 daemon.debug hostapd: wlan0: STA 06:9c:ae:ab:e3:b1 WPA: sending 1/4 msg of 4-Way Handshake
Sun Jan  3 10:57:37 2021 daemon.debug hostapd: wlan0: STA 06:9c:ae:ab:e3:b1 WPA: received EAPOL-Key frame (2/4 Pairwise)
Sun Jan  3 10:57:37 2021 daemon.debug hostapd: wlan0: STA 06:9c:ae:ab:e3:b1 WPA: sending 3/4 msg of 4-Way Handshake
Sun Jan  3 10:57:37 2021 daemon.debug hostapd: wlan0: STA 06:9c:ae:ab:e3:b1 WPA: received EAPOL-Key frame (4/4 Pairwise)
Sun Jan  3 10:57:37 2021 daemon.notice hostapd: wlan0: AP-STA-CONNECTED 06:9c:ae:ab:e3:b1
Sun Jan  3 10:57:37 2021 daemon.debug hostapd: wlan0: STA 06:9c:ae:ab:e3:b1 IEEE 802.1X: authorizing port
Sun Jan  3 10:57:37 2021 daemon.info hostapd: wlan0: STA 06:9c:ae:ab:e3:b1 WPA: pairwise key handshake completed (RSN)
Sun Jan  3 10:57:37 2021 daemon.info hostapd: wlan0: STA 06:9c:ae:ab:e3:b1 IEEE 802.11: authenticated
Sun Jan  3 10:58:13 2021 daemon.notice hostapd: wlan0: AP-STA-DISCONNECTED 06:9c:ae:ab:e3:b1
Sun Jan  3 10:58:13 2021 daemon.debug hostapd: wlan0: STA 06:9c:ae:ab:e3:b1 WPA: event 3 notification
Sun Jan  3 10:58:13 2021 daemon.debug hostapd: wlan0: STA 06:9c:ae:ab:e3:b1 IEEE 802.1X: unauthorizing port
Sun Jan  3 10:58:13 2021 daemon.debug hostapd: wlan0: STA 06:9c:ae:ab:e3:b1 IEEE 802.11: deauthenticated
Sun Jan  3 10:58:13 2021 daemon.debug hostapd: wlan0: STA 06:9c:ae:ab:e3:b1 MLME: MLME-DEAUTHENTICATE.indication(06:9c:ae:ab:e3:b1, 3)
Sun Jan  3 10:58:13 2021 daemon.debug hostapd: wlan0: STA 06:9c:ae:ab:e3:b1 MLME: MLME-DELETEKEYS.request(06:9c:ae:ab:e3:b1)
Sun Jan  3 10:58:13 2021 kern.debug kernel: [ 4478.875956] ieee80211 phy0: staid 2 deleted

I did a clean upgrade (not keeping any configs) and haven't changed anything besides configuring wireless (with new password as stated before).

Here's my /etc/config/wireless:

config wifi-device 'radio0'
	option type 'mac80211'
	option hwmode '11a'
	option path 'soc/soc:pcie/pci0000:00/0000:00:01.0/0000:01:00.0'
	option htmode 'VHT80'
	option channel '40'
	option country 'DE'
	option log_level '2'

config wifi-iface 'default_radio0'
	option device 'radio0'
	option network 'lan'
	option mode 'ap'
	option ssid 'redacted'
	option wmm '0'
	option encryption 'psk2'
	option key 'redacted'

config wifi-device 'radio1'
	option type 'mac80211'
	option channel '11'
	option hwmode '11g'
	option path 'soc/soc:pcie/pci0000:00/0000:00:02.0/0000:02:00.0'
	option htmode 'HT20'
	option country 'DE'
	option log_level '1'

config wifi-iface 'default_radio1'
	option device 'radio1'
	option network 'lan'
	option mode 'ap'
	option ssid 'redacted'
	option wmm '0'
	option encryption 'psk2'
	option key 'redacted'

and /etc/config/network:

config interface 'loopback'
	option ifname 'lo'
	option proto 'static'
	option ipaddr '127.0.0.1'
	option netmask '255.0.0.0'

config globals 'globals'
	option ula_prefix 'redacted' # let me know if it's helpful to show it here

config interface 'lan'
	option type 'bridge'
	option ifname 'eth0.1'
	option proto 'static'
	option ipaddr '192.168.1.1'
	option netmask '255.255.255.0'
	option ip6assign '60'
	list dns '1.1.1.1'
	list dns '1.0.0.1'

config interface 'wan'
	option ifname 'eth1.2'
	option proto 'dhcp'

config switch
	option name 'switch0'
	option reset '1'
	option enable_vlan '1'

config switch_vlan
	option device 'switch0'
	option vlan '1'
	option ports '0 1 2 3 5t'

config switch_vlan
	option device 'switch0'
	option vlan '2'
	option ports '4 6t'

I also flashed newest OpenWrt official build, same problem with Android and DHCP.

I'm now back to stock firmware after so many years :frowning:.

My phone won't go any faster my upstairs neighbor....has a speedtest of 780...up and down with a ping of 5ms on wifi!!!

The wifi problem is a faulty script that is used by hostapd and wpad....in the mbedtls, gnutls, and in a few settings of the wolfssl liberaries.

I've been working on a perfect stable wifi and fast and reliable wifi network. With different routers....and different sdks and different versions.

One of the developers from the lede project, explained the situation and problems wifi, and regdb, wpa, ssl tls liberaries, wpa key renewal, mimo....this young guy...had the first perfect stable builds for atk9 chips...and the wifi and dns was so fast....

So now I have a good chip with good open source firmware and support for openwrt.
That's the wrt1200-wrt3200-wrt32x chips.

Maybe my experience is different. But the range and speed is perfect now. I haven't tried the combination dfs, wmm, combo with 2.4ghz N settings...maybe you can try for yourself.
( I removed the standard gnutls library...from config file... I build ....get no errors...but my ping drops everywhere with 2-4ms....my traceroutes with 4-20ms...because I took out a ssl liberary that is required in the std build...!?!?)

Please let me know, your experience and remarks.

I'll upload the new firmware and separate packages later this evening.

Hey Guys -

I've got a Linksys WRT1900ACS which I've run a Davidc502 build on since I bought it a couple of years ago. About a month ago, I checked for an update and saw the message about new updates not being released currently with r13342 being the latest. Since it was a newer release than what I had, I installed it - keeping my existing config.

Unfortunately, since then; my wifi has been acting really odd where range and bandwidth seem to dramatically drop after being on a few hours. I implemented a script to restart the router nightly, but am looking for a better solution.

What would be the best suggestion for how to proceed / remediate? I've read a bit about DSA and not sure if I use it - definately haven't installed anything that uses it to my knowledge. To note, I do have a lot of custom rules configured which I can transfer over so would prefer keeping config unless wipe is needed...

Current Router Specs

  • Model: Linksys WRT1900ACS
  • Architecture: ARMv7 Processor rev 1 (v7l)
  • Firmware Version: OpenWrt SNAPSHOT r13342-e35e40ad82 / LuCI Master git-20.144.63033-62ed4e6
  • Kernel Version: 5.4.42
  • Wi-fi Drivers: Not sure how to tell what version is installed, but have the following packages installed:
    • mwlwifi-firmware-88w8864
    • mwlwifi-firmware-88w8897
    • mwlwifi-firmware-88w8964

Thanks!

sure 'bout that; your radio is 88w8864. Might be worth checking

cat /sys/kernel/debug/ieee80211/phy0/mwlwifi/tx_amsdu

There is any form that i disable dnscrypt-proxy2

Here it is. Disabled wmm provide serious performance drop.
Also, something wrong with auth - may be it's a consequence, maybe some strange setting by default. Try switch to PSK2 personal and AES only (play with this combination).

You can even uninstall it trough OPKG (but check DNSMasq settings).
I use different DNS package for secure DNS.

Thanks - Yes, those 3 packages are what is installed. Must had been included as I domt remeber installing any. Ran that command and got the single below return...

cat /sys/kernel/debug/ieee80211/phy0/mwlwifi/tx_amsdu
tx amsdu: enable

What's that tell you? Thanks

That bug seems to be fixed with the newer kernels.

Might try disabling to see if that helps.

/etc/rc.local
echo "0" >> /sys/kernel/debug/ieee80211/phy0/mwlwifi/tx_amsdu && echo "0" >> /sys/kernel/debug/ieee80211/phy1/mwlwifi/tx_amsdu && logger "AMSDU Disabled"

Is there anything else that I need to build davidc's firmware, besides using git to download the openwrt source and the config.seed file?

Are there any custom config files in /buildroot/files, libraries, or any other settings/modifications/additions/patches that you have to add, that are not covered in the config.seed file?

And what package you use

@jeff1 , just an FYI to ease the above RE: patching to get kernel shrunk.

target/linux/mvebu/cortexa9/config-5.10
# CONFIG_ATA is not set
# CONFIG_EXT4_FS is not set
# CONFIG_SATA_PMP is not set
# CONFIG_SCSI is not set
git diff target/linux/mvebu/image/cortexa9.mk
diff --git a/target/linux/mvebu/image/cortexa9.mk b/target/linux/mvebu/image/cortexa9.mk
index ea20a25a29..bbde437a8d 100644
--- a/target/linux/mvebu/image/cortexa9.mk
+++ b/target/linux/mvebu/image/cortexa9.mk
@@ -74,7 +74,7 @@ TARGET_DEVICES += kobol_helios4
 define Device/linksys
   $(Device/NAND-128K)
   DEVICE_VENDOR := Linksys
-  DEVICE_PACKAGES := kmod-mwlwifi wpad-basic-wolfssl
+  DEVICE_PACKAGES := kmod-ata-ahci kmod-ata-core kmod-fs-ext4 kmod-scsi-core kmod-scsi-generic kmod-mwlwifi wpad-basic-wolfssl
   IMAGES += factory.img
   IMAGE/factory.img := append-kernel | pad-to $$$$(KERNEL_SIZE) | \
        append-ubi | pad-to $$$$(PAGESIZE)

yields a size for my config of the image for the two of interest:

2987903 Jan  5 13:53  linksys_wrt1900ac-v1-kernel.bin
2983231 Jan  5 13:53  linksys_wrt32x-kernel.bin

which of course is all images, but no matter. Should be able to get another ~70K with the crypto changes from PR3205.

@bzowk , fwiw I find mwlwifi combined with that SDIO FW to be suspect, at least I have never seen that before.

1 Like

SmartDNS. https://github.com/pymumu/smartdns
Light, fast, DoT and DoH compatible.
David have binary in repo, but you need to install LUCI separately.
Best LUCI version is luci-app-smartdns - 1.2020.30

1 Like