Pre-compiled updated mwlwifi drivers for stable releases

Which device?

I have the WRT3200ACM
I use the current snapshot 5.4.80? The driver with the snapshot does not obtain an IP So I downgraded back to 4.19 - that one works for me

After some research I found the following to compile the latest mwlwifi:

  1. Modify package/kernel/mwlwifi/Makefile:
PKG_VERSION:=10.3.0.17-20160601
PKG_SOURCE_VERSION:=4bb95ba1aeccce506a95499b49b9b844ecfae8a1

PKG_VERSION is used to give a version to the package, and you are mostly free to put here whatever makes sense to you.

PKG_SOURCE_VERSION is the commit identifier at kaloz's repo that you want to biuld (https://github.com/kaloz/mwlwifi/commits/master).

So I changed it to:

PKG_SOURCE_VERSION:=111118dc2ea3b592a5f7dff18c82d57a651970e7

Rename package/kernel/mwlwifi/patches to package/kernel/mwlwifi/patches.tmp.

Run the following commands:

make package/kernel/mwlwifi/clean

and compile the whole firmware again

make -j $((1+nproc))

So far so good it seems to work

Great job on the driver

Well after 1 day of uptime it did the same thing again and did not assign an IP address anymore. Right now I down graded again. (I still have the second partition setup with the old 4.19 firmware) I might wait for the next update of the driver/firmware for mwlwifi.

The end result of the above is that you built the same mwlwifi code as what is currently built by master, just by using the latest commit from the upstream repo in favour of the current patch in master. The upstream repo has been dead for quite some time so I would not expect any improvements for mwlwifi to come any time soon. As this is the first report I have seen of the issue you describe, I suspect that you are probably pointing at the wrong culprit.

1 Like

I was wondering that, but was not sure about it as it showed the same firmware when I entered this command

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

version 10.3.8.0-20181210

@anomeome Do you have any direction you can point me? to find the culprit

Should I change the option encryption 'psk2' ?

Here is my wireless config and network config

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

config wifi-iface 'default_radio0'
	option device 'radio0'
	option network 'lan'
	option mode 'ap'
	option macaddr 'xxxxxxxxx'
	option ssid 'Marocco'
	option encryption 'psk2'
	option key 'xxxx'

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 'US'

config wifi-iface 'default_radio1'
	option device 'radio1'
	option network 'lan'
	option mode 'ap'
	option macaddr 'xxxxxxxx'
	option ssid 'mooshi'
	option encryption 'psk'
	option key 'xxxxxxx'

config wifi-device 'radio2'
	option type 'mac80211'
	option channel '34'
	option hwmode '11a'
	option path 'platform/soc/soc:internal-regs/f10d8000.sdhci/mmc_host/mmc0/mmc0:0001/mmc0:0001:1'
	option htmode 'VHT80'
	option disabled '1'

config wifi-iface 'default_radio2'
	option device 'radio2'
	option network 'lan'
	option mode 'ap'
	option ssid 'OpenWrt'
	option encryption 'none'
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 'fd6f:2a46:5e1c::/48'

config interface 'lan'
	option type 'bridge'
	option ifname 'lan1 lan2 lan3 lan4'
	option proto 'static'
	option ipaddr '192.168.2.1'
	option netmask '255.255.255.0'
	option ip6assign '60'
	option gateway '192.168.2.4'
	list dns '192.168.2.4'

config interface 'wan'
	option ifname 'wan'
	option proto 'dhcp'

config device 'wan_wan_dev'
	option name 'wan'
	option macaddr 'xx.xx.xx.xx.xx.xx'

config interface 'wan6'
	option ifname 'wan'
	option proto 'dhcpv6'

Funny you should ask. I was wondering about the bridge / DSA setup and was just taking a look at this.. Could maybe try adding a patch to your build, see some patches used from this build.

I applied one of this patch [
0002-DNM-DSA_Bridge_FDB_Sync_Workaround.patch

With no changes, but I found something else -- which might be my problem -I just don't have a solution yet.

I do have two routers configured with the same SSID and I can still under 4.19 Kernel walk from one area to the other and they handover the signal --> I would not even know about the handshake.

What I noticed today is. That the kernel 5.4.80 works when I start my computer close to the WRT3200 with 5.4.80 kernel and it changes over to the other one (EA8500) perfect. But when I walk back to the WRT3200 I don't get an IP only when I reboot my computer (by the way an apple MacBook air) I will get an IP.
So I turned DHCP on the WRT3200ACM for different IP's than my main router I do get an IP when I walk from one to the other router, but can't connect to the internet or main router anymore until I reboot. This might not have anything todo with mwlwifi but the DSA setup and the new 5.4.80 kernel. I have the setup identical to the 4.19 setup except the switch setup is not there (as it should not).

What does rebooting change when I go to the other area (I also have the same effect on my phone)

Should I just wait for a new kernel to be released for the WRT3200ACM?

Thanks for all the help so far.

If I just move from the EA8500 to the WRT3200 i can not get an ip but after around 5 minutes I will get one and everything works
So one of your link describes exactly the problem.

For that the node's clients roaming from one of its Lan ports to a Wlan port are not able to receive traffic from the Lan ports until the switch's ATU ageing register (default ~ 300 seconds) clears the roamed client's MAC, as it remains unaware that the client has moved to another port (Wlan) and therefore drops traffic for that client's MAC.

That patch needs to be applied to all DSA routers/access-points on your network.
It is dependent on the ip-bridge full package. Not included by default.
Also make sure that it is enabled/running.
First time adding, it might not be enabled.

Also if you have IPv6 you should make sure your ULA prefix is set the same on all, but most importantly set a unique offset for all of them via ip6ifaceid in lan config.

Thanks for the details

I did not have the ip-bridge package installed.
So I recompiled the firmware with it and I made sure it is running.

So far no change in the behavior of the router still the 5 min no connection.
This is the only router on my network that has the DSA instead of switch setup

Tonight I will check the IPv6, I don't have it disabled but I don't use it.

for the record -I have the sme problem on my wrt1900acv1 with DSA and the dsa_bridge_fdb patch (from No-nonsense Linksys WRT builds)

Packages for 19.07.5 with thagabe's modification available at:

[I have also renamed the packages for the older release, without changing the contents]

2 Likes

I upgraded to 19.07.5 and the tried to upgrade the mwlwifi WIFI files and get the following:

root@FireBaseRouter:~# opkg install --force-downgrade /tmp/kmod-mwlwifi_4.14.209+thagabe-93c3d8d1-19075_arm_cortex-a9_vfpv3-d16.ipk
Upgrading kmod-mwlwifi on root from 4.14.209+2019-03-02-31d93860-1 to 4.14.209+thagabe-93c3d8d1-19075...
Collected errors:
 * satisfy_dependencies_for: Cannot satisfy the following dependencies for kmod-mwlwifi:
 *      kernel (= 4.14.209-1-fe7f5134e891244a2d03219b1fc96517)
 * opkg_install_cmd: Cannot install package kmod-mwlwifi.

I think I have the correct file from your site: Releases · eduperez/mwlwifi_LEDE (github.com)

Any ideas on what I am doing wrong? It worked last time with the 19.07.4 files.

Edit: Sorry - On a WRT3200ACM

My packages are not compatible with your kernel, and they should... let me have a look at this.

Hi,

I got the same issue using the 19.07.5 release kernel with wrt1900acsv2

it seems something is messed up with the versions offered for download.

EG for WRT1900acs the kmod-mwlwifi_4.14.209+thagabe-93c3d8d1-19074_arm_cortex-a9_vfpv3-d16.ipk, although listed as the file, but this filename does not actually exist in the assets for download list.

Thanks for all your work on this!

Any progress on this issue yet? For sure no rush, just want to get it sorted out.

BTW I stayed with 19.07.5 with the stock mwlwifi files for the WRT3200ACM and it seems to be working OK. What are the improvements/bug fixes with the drivers you setup for the the specific image versions?

My current files:

I've just upgrade to latest version of OpenWRT (19.07.5) and having Wifi drops all the time. Had it on previous releases too, I basically could only use the 5GHz Wifi connection as the 2GHz connection drops or is very very slow. This morning I had to reboot as both 5GHz and 2GHz were gone. Using a 1900AC v1

Yeah, I think the firmware is not working well with mwlwifi. I've cancelled the PR. Right now I'm only testing upping AMSDU value.

I have uploaded new packages, that fix the dependency issues. But you might consider @thagabe's comment about his patches.

@eduperez - Thanks for the work you've put in, and the the comment about @thagabe's post is well taken.

@thagabe - Is it worth it to use your older fixes that @eduperez has setup or should I just wait until you've had a chance to figure out the best settings? I am on a WRT3200ACM using Stable 19.07.5.

Are you sure the new packages are ok?
I see their size is only some bytes