Pre-compiled updated mwlwifi drivers for stable releases

@eduperez Great stuff as always keeping up with the latest commits, much appreciated.

/lib/firmware/mwlwifi$ cat /sys/kernel/debug/ieee80211/phy0/mwlwifi/info

driver name: mwlwifi
chip type: 88W8964
hw version: 7
driver version: 10.3.4.0-20170810
firmware version: 0x09030102
power table loaded from dts: no
firmware region code: 0x0
mac address: 60:38:e0:b4:12:62
2g: disable
5g: enable
antenna: 4 4
irq number: 105
ap macid support: 0000ffff
sta macid support: 00010000
macid used: 00000001
radio: enable
iobase0: e0e00000
iobase1: e1080000
tx limit: 1024
rx limit: 16384

I've got your latest firmware package combined with the latest official 88W8964 firmware (9.3.1.2) for the WRT3200ACM/WRT32X and this is by far the best that I have experienced on my WRT3200ACM as far as performance and reliability go.

My current uptime is only slightly over 3 hours, however, I am not experiencing those dozens of lines that occur in the system log ever couple of hours or so as more mobile devices connect and disconnect. Smooth experience thus far.

The latest official 88W8964 firmware (9.3.1.2) for the WRT3200ACM/WRT32X devices is available in the latest firmware release for WRT3200ACM and that same firmware is available in the GPL sources for the WRT32X. I believe that is what yuhhaurlin is testing in recent days, albeit under a different version name/scheme.

Anyway, keep up the great work. Thank you for your time and efforts.

@WildByDesign I too have been thinking about mixing the drivers from the official repo, with an updated firmware, and releasing a package of that. On one hand I want to follow yuhhaurlin's repo strictly, on the other hand I think that testing the newer firmware can be interesting; I will probably keep two packages in parallel.

Do you have a link to the new firmware, by the way?

Thanks for the feedback!

I'm not too sure on how literal

Please help to test 466368f with firmware version 0x0903bee1.

that statement is to be taken from issue where there is a link to the BLOB

You're welcome. And I also agree that following yuhhaurlin's repo strictly does have some importance. Maybe it would be a good idea to have your regular package following his repo strictly, and have a secondary package which is labelled accordingly that contains the newer firmware since the newer firmware has newer bug fixes. So two packages to choose from would be ideal.

For what it's worth, I was using 7-Zip on Windows to manipulate the .ipk packages to essentially swap the firmware out and that has been a successful method previously for my own use.

Here is the latest source package:

http://downloads.linksys.com/downloads/gpl/WRT32X_gpl_v1.0.170828.208.tar.gz

Firmware (9.3.1.2) is located at:

WRT32X_gpl_v1.0.170828.208.tar\core\linksys\feed\marvell\wlan-v9_8964\files\shipped\W8964.bin

You have to rename firmware to: 88W8964.bin

The 9.3.1.2 firmware is the same (confirmed hashes) as shipped with the latest WRT3200ACM firmware release:
http://downloads.linksys.com/downloads/releasenotes/WRT3200ACM_Customer_Release_Notes_1.0.6.184351.txt

@WildByDesign

There is now an "official" package for 9.3.0.8 and an "updated" package for 9.3.1.2 available at
https://github.com/eduperez/mwlwifi_LEDE/releases/tag/466368f

Thanks for the pointer!

That's interesting... I am not sure how to interpret "0x903bee1" ("9.3.190.225"?), but I guess it should be more advanced than 9.3.0.8 or 9.3.1.2. Do you think it would be interesting to make packages for it?

Possibly of interest, but might cause some confusion? My inclination with those test BLOBs is just to wget / scp them to my router, rename the original, and create a ln -s blob.bin to switch between the >1 BLOBs I have in the firmware directory.

I just wanted to make you aware of that statement regarding the commit. I was not sure if it should be interpreted as the two needed to go hand in hand, or it was just an attempt to get people to test the commit.

I believe that the only significant difference with “0x903bee1” is that yuhhaurlin has enabled debugging within that specific "temporary" firmware version to help diagnose the issue further. So it is more of a temporary debugging firmware specific to the issue mentioned. If I had to guess, I would say that it's 9.3.0.8 with debugging added since he was speaking quite a bit about 9.3.0.8 in recent weeks.

New packages published:

Still not tested by myself, handle with care.

@eduperez Installed your latest package, rebooted for a fresh start, and so far so good here. Thank you for your continued efforts.

Thanks for reporting!

I tend to build and publish the packages as soon as there is a change in the official repo, so everybody can have a go with them. However, I can only install and test them when I can allow some time to reboot the router and risk not having an internet connection for some time. Usually, a couple of days after publishing a package, they should be considered stable.

Now, there was a new change a few hours ago:

I've got this latest driver "10.3.4.0-20171129" up and running now as well and running smooth thus far. I have had zero issues with the past few builds of the driver which is great seeing such stability now with WRT3200ACM on LEDE stable branch combined with your up-to-date kernel driver and firmware.

I don't know much with regard to the change “info” to “debug”. Does this mean that the driver output should have more detailed logging in system log to help track down issues better?

Not exactly: if you go to the "kernel log" page in LuCi, you will see a lot of "ieee80211 phy_: staid _ deleted" messages. Now those messages are tagged as "debug" (instead of "info"), and will show only if you enable debugging in the mwlwifi module. In other words, that change just silences a harmless message.

New release available:

So, this release is supposed to enable WDS support, but bear in mind what the maintainer commented: "WDS AP is still under development. If you want, you can test it. However, this is pre-release.". Also, since the official repo has moved to firmware 9.3.2.1, I will no longer create packages for the older firmwares (unless someone needs them).

New release available:

But it comes with a warning: "This is pre-release. I will still do more tests. If you like, you can help to test it. I plan to release code to QA for test late this week or early next week. If you find any problems, please let me know.". My router is in use right now, I will not be able to test it until tonight.

New release available:

how can use this driver on a firmware greater than 4.4? (running 4.9.67)

root@OpenWrt:/tmp# opkg install kmod-mwlwifi_4.4.92.10.3.4.0-20171129-1fcef06-9322_arm_cortex-a9_vfpv3.ipk
Installing kmod-mwlwifi (4.4.92+10.3.4.0-20171129-1fcef06-9322) to root...
Collected errors:
 * satisfy_dependencies_for: Cannot satisfy the following dependencies for kmod-mwlwifi:
 *      kernel (= 4.4.92-1-9f18c9c8eae6a4bfe17f419b398e25cd) *
 * opkg_install_cmd: Cannot install package kmod-mwlwifi.

You can't... these packages are compiled for the latest stable version, and are incompatible with any other version. If you compiled that firmware yourself, you just need to update the Makefile and point to the latest commit.

Odd thing here... when I use the Wget command IE wget https://github.com/eduperez/mwlwifi_LEDE/releases/download/1fcef06/kmod-mwlwifi_4.4.92.10.3.4.0-20171129-1fcef06-9322_arm_cortex-a9_vfpv3.ipk it's renameing the file to something odd like a737795c-b59d-11e7-8b8d-cc173b40b026?X-Amz-Algorithm=AWS4-HMAC-SHA256
Any idea why it would do this? IF I rename the file to it's proper name I get an error of
root@LEDE:/tmp# opkg install kmod-mwlwifi_4.4.92.10.3.4.0-20171129-1fcef06-9322_
arm_cortex-a9_vfpv3.ipk
Not downgrading package kmod-mwlwifi on root from 4.4.92+10.3.4.0.git-2017-06-06-1 to 4.4.92+10.3.4.0-20171129-1fcef06-9322. or something similar. I'm sure I'm missing something stupid here but can you tell me what it is?

Never Mind I figured it out with --force-reinstall.. just didn't read up far enough

1 Like