How to compile older version of mwlwifi for current releases?

Hi everyone,
I am having weird wifi issues with recent versions of the mwlwifi driver in my WRT1900ac (mamba) and I would like to learn the process to compile the source code of a previous version for the current one like @eduperez used to do here: eduperez/mwlwifi_LEDE
Version 19.07 used to work better for me, but all the imagebuilders are broken (they can't find a dependecy to install luci). Anyway, 19.07 is not supported anymore and the latest version of @eduperez repository is for 21.02.0. With the current stable at 21.02.3 and version 22.03.0 around the corner, I would like to know how to build the package myself, but I'm new to this.
Do I need to have hardware matching the cpu type of my router to build this? I read @eduperez had to set up a virtual machine to do this at some point.,, Can the source be compiled in a linux virtualbox (x64)? Do I need to match the kernel's major release number, the major+minor revision number, or the major+minor+patch number?
Unrelated to this topic, but related to my problem. If I need to go back to 19.07.x, is there any way to fix the image builder?
Thank you!

You need to use the buildroot to compile a kernel module, and for that you need to build a full image more or less. So you're basically building your own image. The buildroot can run on pretty much any 64 bit Linux, Mac OS, or even Windows WSL2. For ease of use a stable Linux distribution is recommended though, e.g. latest Debian stable or Ubuntu. Bleeding edge distros like Arch can often have 'too new' software that make the buildroot break.You don't want that, sounds like you have enough learning ahead of you as is already. The buildroot takes care of the cross-compiling environment you need for your specific hardware; it's fully automated. No need to worry about that.

I'm not sure how much the mwlwifi codebase changed (if it changed at all, it's functionally dead AFAIK) since 21.02. Most I've seen are tests with different firmware blobs. Last commit was April 2020, so way before 21.02 got released or even branched.

1 Like

It has not changed at all, except two commits for compatibility with newer Linux kernel versions. Plus one commit for the chip firmware for wrt3200acm.
Otherwise there has not been any change compared to the eduperez site's offering of 31d93860

Eduperez has not been compiling any new versions, as the same/current code is now already in all supported OpenWrt versions.

Mwlwifi is dead.

1 Like

Thanks for your answer. I'm really trying to understand why things are in the current state (besides the obvious regarding the driver's development being dead). If someone could help me understand this, it might help me when the time comes to buy other routers.
To give you some context, I just put myself in a crazy position here because the image builders for version 19.07 now have a dependency problem (that they didn't use to have) when I try to install Luci. Since my router configuration is quite customized and I don't have a lot of ram to install all of Luci's components after installing the image, I now have a problem that I was not anticipating, because I always thought I could use the 19.07 image builder(s) to get back to what I needed if things didn't work out.
Anyway, one thing I don't understand is how there is such a huge performance changes between openwrt versions if the driver's codebase didn't change.
I tried @eduperez package 10.3.8.0-20181210 commit 31d9386 for OpenWrt 21.02.0 and I noticed 2 things in my connection:

  • Wifi latency is noticeably worse for some devices (even when they are next to the router). Pings go from 1.0 - 3.0 ms to 400 - 600 ms
  • Connection download (iperf3) improves from 200 Mbit/s to 500 Mbit/s (the change blew my mind)

As you can imagine, I was willing to 'pay the price' with a higher latency to achieve that download speed, but after installing the packages and restarting the wifi or restarting the router, the driver cannot detect the wifi card anymore and lists it as a regular b/g card and no wifi after that... How is this even possible? Will compiling the old version of the driver that used to work relatively well in earlier versions of 19.07 be a total waste of time?
OpenWRT 22.03 (current rc6) made things much worse for me: my cellphones can establish a VHT 80 download link at 866 Mbit/s for a few minutes, but after a small period of inactivity (power saving?) the connection drops to a single 20 Mhz channel and it can never switch back to VHT 80. The iperf3 download speed gets stuck at 4Mbit/s! After a longer time connections in the 5Ghz band drop randomly and clients cannot connect anymore.
How is all this happening with exactly the same hardware with different versions of OpenWRT if the driver hasn't change?
What I described here is totally reproducible with 2 different routers and 2 different phones, so it's not a 'hardware fault'. Also, I live in the countryside, so no interference here. I tried many channels, including non-DTF ones (like 149) and the problem remains.
I know the driver development is 'dead' and that we won't get any new features nor fixes, but is it to much to expect that at least the we could keep the (somewhat questionable) functionality/stability we had in previous?
Thanks to everyone for taking time to explain things to me. Maybe this can help others too...

AMSDU bug? If you have not dealt with it:

/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"
###

there is more at play here than just the mwlwifi driver and firmware

2 Likes

Hi, thanks for taking time to write. Yes, I already had the fix in place and it was actually the first thing I checked.

Your issues look a lot like missing calibration data, check your dmesg to make sure the cal data is located and loaded successfully.

If not - take copies of the mtd partitions and view in a hex editor to see if the cal data has been wiped

1 Like

Thank you for the suggestion. Unfortunately, I don't know what you're referring to. Could you please give me more information on what to look? If I run the dmesg command filtered with 'cal' this is what I get:

root@wrt1900ac:~# dmesg | grep cal
[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] rcu: Hierarchical RCU implementation.
[    0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 10 jiffies.
[    0.000000] random: get_random_bytes called from 0xc0a00db8 with crng_init=0
[    0.000242] Calibrating delay loop (skipped), value calculated using timer frequency.. 50.00 BogoMIPS (lpj=250000)
[    0.002046] rcu: Hierarchical SRCU implementation.
[    4.893334] ehci-fsl: Freescale EHCI Host controller driver
[   12.778376] urandom_read: 5 callbacks suppressed

Is this where I need to look at the problem?
I just tried rebooting the router to get a clean log, but I can't post the whole thing because of the text limits here.
Thank you

Look at the lines where the wifi controller gets loaded, it should show binary data being loaded from an mtd - this is the calibration. If there’s a failure instead that will be a problem.

Without proper cal data the controller won’t work correctly

Thanks again for trying to help me. I found the option to backup the mtd contents in Luci, and I created a Dropbox folder with the contents in case it helps. I also attached the full kernel log after a fresh boot: Dropbox Share
I don't know if the following is the relevant portion of the log you're referring to, but just in case here it is:

[   10.307881] kmodloader: loading kernel modules from //etc/modules-boot.d/*
[   10.315752] kmodloader: done loading kernel modules from //etc/modules-boot.d/*
[   10.836378] UBIFS (ubi0:1): Mounting in unauthenticated mode
[   10.842157] UBIFS (ubi0:1): background thread "ubifs_bgt0_1" started, PID 999
[   10.884966] UBIFS (ubi0:1): recovery needed
[   11.002121] UBIFS (ubi0:1): recovery completed
[   11.006657] UBIFS (ubi0:1): UBIFS: mounted UBI device 0, volume 1, name "rootfs_data"
[   11.014536] UBIFS (ubi0:1): LEB size: 126976 bytes (124 KiB), min./max. I/O unit sizes: 2048 bytes/2048 bytes
[   11.024489] UBIFS (ubi0:1): FS size: 5459968 bytes (5 MiB, 43 LEBs), journal size 1015809 bytes (0 MiB, 6 LEBs)
[   11.034613] UBIFS (ubi0:1): reserved for root: 257887 bytes (251 KiB)
[   11.041073] UBIFS (ubi0:1): media format: w5/r0 (latest is w5/r0), UUID A338117F-331A-450A-A828-B997C2B8CF94, small LPT model
[   11.053933] block: attempting to load /tmp/ubifs_cfg/upper/etc/config/fstab
[   11.067556] block: extroot: not configured
[   11.071785] UBIFS (ubi0:1): un-mount UBI device 0
[   11.076550] UBIFS (ubi0:1): background thread "ubifs_bgt0_1" stops
[   11.085559] UBIFS (ubi0:1): Mounting in unauthenticated mode
[   11.112289] UBIFS (ubi0:1): background thread "ubifs_bgt0_1" started, PID 1002
[   11.177949] UBIFS (ubi0:1): UBIFS: mounted UBI device 0, volume 1, name "rootfs_data"
[   11.185822] UBIFS (ubi0:1): LEB size: 126976 bytes (124 KiB), min./max. I/O unit sizes: 2048 bytes/2048 bytes
[   11.195775] UBIFS (ubi0:1): FS size: 5459968 bytes (5 MiB, 43 LEBs), journal size 1015809 bytes (0 MiB, 6 LEBs)
[   11.205897] UBIFS (ubi0:1): reserved for root: 257887 bytes (251 KiB)
[   11.212357] UBIFS (ubi0:1): media format: w5/r0 (latest is w5/r0), UUID A338117F-331A-450A-A828-B997C2B8CF94, small LPT model
[   11.611931] block: attempting to load /tmp/ubifs_cfg/upper/etc/config/fstab
[   11.624234] block: extroot: not configured
[   11.630214] mount_root: switching to ubifs overlay
[   11.711184] ubi1: attaching mtd8
[   11.913190] ubi1: scanning is finished
[   11.925355] ubi1: attached mtd8 (name "syscfg", size 38 MiB)
[   11.931033] ubi1: PEB size: 131072 bytes (128 KiB), LEB size: 126976 bytes
[   11.937941] ubi1: min./max. I/O unit sizes: 2048/2048, sub-page size 2048
[   11.944762] ubi1: VID header offset: 2048 (aligned 2048), data offset: 4096
[   11.951742] ubi1: good PEBs: 296, bad PEBs: 8, corrupted PEBs: 0
[   11.957782] ubi1: user volume: 1, internal volumes: 1, max. volumes count: 128
[   11.965035] ubi1: max/mean erase counter: 940/912, WL threshold: 4096, image sequence number: 1467819745
[   11.974555] ubi1: available PEBs: 0, total reserved PEBs: 296, PEBs reserved for bad PEB handling: 2
[   11.983724] ubi1: background thread "ubi_bgt1d" started, PID 1010
[   12.087185] UBIFS (ubi1:0): Mounting in unauthenticated mode
[   12.092952] UBIFS (ubi1:0): background thread "ubifs_bgt1_0" started, PID 1016
[   12.196275] UBIFS (ubi1:0): UBIFS: mounted UBI device 1, volume 0, name "syscfg"
[   12.203695] UBIFS (ubi1:0): LEB size: 126976 bytes (124 KiB), min./max. I/O unit sizes: 2048 bytes/2048 bytes
[   12.213662] UBIFS (ubi1:0): FS size: 35680256 bytes (34 MiB, 281 LEBs), journal size 1777664 bytes (1 MiB, 14 LEBs)
[   12.224139] UBIFS (ubi1:0): reserved for root: 1685265 bytes (1645 KiB)
[   12.230773] UBIFS (ubi1:0): media format: w4/r0 (latest is w5/r0), UUID 2AAEBA7B-9619-4181-A502-CDE6039AFBB3, small LPT model
[   12.244858] urandom-seed: Seeding with /etc/urandom.seed
[   12.309935] procd: - early -
[   12.312870] procd: - watchdog -
[   12.878665] procd: - watchdog -
[   12.884146] procd: - ubus -
[   12.907410] urandom_read: 5 callbacks suppressed
[   12.907415] random: ubusd: uninitialized urandom read (4 bytes read)
[   12.938732] random: ubusd: uninitialized urandom read (4 bytes read)
[   12.952139] procd: - init -
[   13.441116] kmodloader: loading kernel modules from /etc/modules.d/*
[   13.546958] urngd: v1.0.2 started.
[   13.618345] crng init done
[   13.637492] zram: Added device: zram0
[   13.643940] FS-Cache: Loaded
[   13.657209] device-mapper: ioctl: 4.41.0-ioctl (2019-09-16) initialised: dm-devel@redhat.com
[   13.691555] Key type dns_resolver registered
[   13.700982] Key type cifs.idmap registered
[   13.763515] RPC: Registered named UNIX socket transport module.
[   13.769482] RPC: Registered udp transport module.
[   13.774215] RPC: Registered tcp transport module.
[   13.778931] RPC: Registered tcp NFSv4.1 backchannel transport module.
[   13.816981] ntfs: driver 2.1.32 [Flags: R/O MODULE].
[   13.864166] Installing knfsd (copyright (C) 1996 okir@monad.swb.de).
[   13.887645] NFS: Registering the id_resolver key type
[   13.892728] Key type id_resolver registered
[   13.896954] Key type id_legacy registered
[   13.928190] Loading modules backported from Linux version v5.10.110-0-g3238bffaf992
[   13.935907] Backport generated by backports.git v5.10.110-1-0-g1fbde860
[   13.972861] <<Marvell Mac80211 Wireless PCIE Network Driver version 10.3.8.0-20181210>>
[   13.980926] pci 0000:00:02.0: enabling device (0140 -> 0142)
[   13.986629] mwlwifi 0000:02:00.0: enabling device (0140 -> 0142)
[   13.992784] ieee80211 phy0: priv->pcmd_buf = 5a07cdd9  priv->pphys_cmd_buf = 60750a24
[   14.053881] ieee80211 phy0: fw download start
[   14.257204] ieee80211 phy0: FwSize = 118776 downloaded Size = 118776 curr_iteration 65510
[   15.119858] ieee80211 phy0: fw download complete
[   15.119891] ieee80211 phy0: device node: pcie@2,0
[   15.125438] ieee80211 phy0: pcmd = 5a07cdd9
[   15.142904] ieee80211 phy0: firmware version: 0x702091a
[   15.166224] ieee80211 phy0: firmware region code: 0
[   15.202052] ieee80211 phy0: regdomain: FCC
[   15.202060] ieee80211 phy0: Channel: 1: 0x0 0x0 0xf
[   15.202072] ieee80211 phy0: 17 11 11 11 10 10 10 10 f f f f 0 0 0 0 
[   15.202078] ieee80211 phy0: Channel: 2: 0x0 0x0 0xf
[   15.202089] ieee80211 phy0: 17 16 16 16 16 16 16 14 10 10 10 10 0 0 0 0 
[   15.202095] ieee80211 phy0: Channel: 3: 0x0 0x0 0xf
[   15.202106] ieee80211 phy0: 17 16 16 16 16 16 16 14 10 10 10 10 0 0 0 0 
[   15.202112] ieee80211 phy0: Channel: 4: 0x0 0x0 0xf
[   15.202123] ieee80211 phy0: 17 16 16 16 16 16 16 14 10 10 10 10 0 0 0 0 
[   15.202129] ieee80211 phy0: Channel: 5: 0x0 0x0 0xf
[   15.202140] ieee80211 phy0: 17 16 16 16 16 16 16 14 10 10 10 10 0 0 0 0 
[   15.202146] ieee80211 phy0: Channel: 6: 0x0 0x0 0xf
[   15.202157] ieee80211 phy0: 17 16 16 16 16 16 16 14 10 10 10 10 0 0 0 0 
[   15.202163] ieee80211 phy0: Channel: 7: 0x0 0x0 0xf
[   15.202174] ieee80211 phy0: 17 16 16 16 16 16 16 14 10 10 10 10 0 0 0 0 
[   15.202180] ieee80211 phy0: Channel: 8: 0x0 0x0 0xf
[   15.202191] ieee80211 phy0: 17 16 16 16 16 16 16 14 10 10 10 10 0 0 0 0 
[   15.202196] ieee80211 phy0: Channel: 9: 0x0 0x0 0xf
[   15.202208] ieee80211 phy0: 17 16 16 16 16 16 16 14 10 10 10 10 0 0 0 0 
[   15.202213] ieee80211 phy0: Channel: 10: 0x0 0x0 0xf
[   15.202225] ieee80211 phy0: 17 16 16 16 16 16 16 14 10 10 10 10 0 0 0 0 
[   15.202231] ieee80211 phy0: Channel: 11: 0x0 0x0 0xf
[   15.202242] ieee80211 phy0: 17 11 11 11 11 11 11 11 10 10 10 10 0 0 0 0 
[   15.203237] ieee80211 phy0: 2G enabled, 5G disabled
[   15.208162] ieee80211 phy0: 4 TX antennas, 4 RX antennas
[   15.213780] pci 0000:00:03.0: enabling device (0140 -> 0142)
[   15.219497] mwlwifi 0000:03:00.0: enabling device (0140 -> 0142)
[   15.225685] ieee80211 phy1: priv->pcmd_buf = 4bb72dd5  priv->pphys_cmd_buf = f4c3a8dd
[   15.233910] ieee80211 phy1: fw download start
[   15.351052] ieee80211 phy1: FwSize = 118776 downloaded Size = 118776 curr_iteration 65500
[   16.223851] ieee80211 phy1: fw download complete
[   16.223888] ieee80211 phy1: device node: pcie@3,0
[   16.229430] ieee80211 phy1: pcmd = 4bb72dd5
[   16.247527] ieee80211 phy1: firmware version: 0x702091a
[   16.269907] ieee80211 phy1: firmware region code: 0
[   16.308055] ieee80211 phy1: regdomain: FCC
[   16.308063] ieee80211 phy1: Channel: 36: 0x0 0x0 0xf
[   16.308075] ieee80211 phy1: 8 8 8 8 8 8 8 8 9 9 9 9 9 9 9 9 
[   16.308080] ieee80211 phy1: Channel: 40: 0x0 0x0 0xf
[   16.308091] ieee80211 phy1: 8 8 8 8 9 9 9 9 9 9 9 9 9 9 9 9 
[   16.308097] ieee80211 phy1: Channel: 44: 0x0 0x0 0xf
[   16.308108] ieee80211 phy1: 8 8 8 8 9 9 9 9 9 9 9 9 9 9 9 9 
[   16.308114] ieee80211 phy1: Channel: 48: 0x0 0x0 0xf
[   16.308124] ieee80211 phy1: 8 8 8 8 9 9 9 9 9 9 9 9 9 9 9 9 
[   16.308130] ieee80211 phy1: Channel: 52: 0x0 0x0 0xf
[   16.308142] ieee80211 phy1: f f f f f f f f 12 12 12 12 12 12 12 12 
[   16.308147] ieee80211 phy1: Channel: 56: 0x0 0x0 0xf
[   16.308158] ieee80211 phy1: f f f f f f f f 12 12 12 12 12 12 12 12 
[   16.308164] ieee80211 phy1: Channel: 60: 0x0 0x0 0xf
[   16.308175] ieee80211 phy1: f f f f f f f f 12 12 12 12 12 12 12 12 
[   16.308181] ieee80211 phy1: Channel: 64: 0x0 0x0 0xf
[   16.308192] ieee80211 phy1: f f f f f f f f 12 12 12 12 12 12 12 12 
[   16.308198] ieee80211 phy1: Channel: 100: 0x0 0x0 0xf
[   16.308209] ieee80211 phy1: 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 
[   16.308215] ieee80211 phy1: Channel: 104: 0x0 0x0 0xf
[   16.308227] ieee80211 phy1: 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 
[   16.308233] ieee80211 phy1: Channel: 108: 0x0 0x0 0xf
[   16.308244] ieee80211 phy1: 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 
[   16.308250] ieee80211 phy1: Channel: 112: 0x0 0x0 0xf
[   16.308262] ieee80211 phy1: 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 
[   16.308268] ieee80211 phy1: Channel: 116: 0x0 0x0 0xf
[   16.308280] ieee80211 phy1: 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 
[   16.308285] ieee80211 phy1: Channel: 120: 0x0 0x0 0xf
[   16.308298] ieee80211 phy1: 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 
[   16.308304] ieee80211 phy1: Channel: 124: 0x0 0x0 0xf
[   16.308315] ieee80211 phy1: 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 
[   16.308321] ieee80211 phy1: Channel: 128: 0x0 0x0 0xf
[   16.308333] ieee80211 phy1: 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 
[   16.308339] ieee80211 phy1: Channel: 132: 0x0 0x0 0xf
[   16.308351] ieee80211 phy1: 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 
[   16.308356] ieee80211 phy1: Channel: 136: 0x0 0x0 0xf
[   16.308368] ieee80211 phy1: 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 
[   16.308374] ieee80211 phy1: Channel: 140: 0x0 0x0 0xf
[   16.308385] ieee80211 phy1: 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 
[   16.308391] ieee80211 phy1: Channel: 149: 0x0 0x0 0xf
[   16.308403] ieee80211 phy1: 16 16 16 16 14 14 14 14 15 15 15 15 14 14 14 14 
[   16.308409] ieee80211 phy1: Channel: 153: 0x0 0x0 0xf
[   16.308420] ieee80211 phy1: 15 15 15 15 15 15 15 15 15 15 15 15 14 14 14 14 
[   16.308426] ieee80211 phy1: Channel: 157: 0x0 0x0 0xf
[   16.308437] ieee80211 phy1: 15 15 15 15 15 15 15 15 15 15 15 15 14 14 14 14 
[   16.308444] ieee80211 phy1: Channel: 161: 0x0 0x0 0xf
[   16.308455] ieee80211 phy1: 15 15 15 15 15 15 15 15 15 15 15 15 14 14 14 14 
[   16.308462] ieee80211 phy1: Channel: 165: 0x0 0x0 0xf
[   16.308473] ieee80211 phy1: 16 16 16 16 16 16 16 16 15 15 15 15 14 14 14 14 
[   16.309625] ieee80211 phy1: 2G disabled, 5G enabled
[   16.314546] ieee80211 phy1: 4 TX antennas, 4 RX antennas
[   16.339670] GACT probability on
[   16.343257] Mirror/redirect action on
[   16.349977] u32 classifier
[   16.352694]     input device check on
[   16.356395]     Actions configured
[   16.378477] fuse: init (API version 7.31)
[   16.398899] xt_time: kernel timezone is -0000
[   16.562324] wireguard: WireGuard 1.0.0 loaded. See www.wireguard.com for information.
[   16.570212] wireguard: Copyright (C) 2015-2019 Jason A. Donenfeld <Jason@zx2c4.com>. All Rights Reserved.
[   16.880913] kmodloader: 1 module could not be probed
[   16.918507] kmodloader: - ghash-arm-ce - 0
[   18.177680] zram0: detected capacity change from 0 to 126877696

The only weird thing I understand from that portion of the log are the lines that read:
[ 16.880913] kmodloader: 1 module could not be probed
[ 16.918507] kmodloader: - ghash-arm-ce - 0
But I think they're not related to my problem.
Thanks again!

I unfortunately cannot help you on the log.

Just some background info:
the actual WRT WiFi driver is not opensourced. The actual WiFi driver is a so called Fullmac proprietary binary loaded onto the chip. It has not been updated for years and will not get updates anymore (except if hell freezes over).
The repository you are referring to, is more like a loader and wrapper for that binary driver. So even if new open source magic would happen, only the loader and wrapper would get new patches by the community. Also this loader/wrapper is based on incomplete input that has less features that that used in the proprietary Linksys WRT firmware.

The WiFi chip company still exists, but has abandoned the chip binary driver support and does not even like open source, futhermore Linksys as a device company no longer exists, Linksys nowadays is only a product sales label for selling routers (alongside Belkin).

The proprietary driver is severly locked down. LuCi on the other hand does offer more options than what the loader and driver actually support and you can accidently set lots of WiFi options that dont like each other and will prevent the WRT WiFi from working properly. Avoid using too demanding WiFi settings.

On top of that, OpenWRT 21.02.xx in particular was mostly a bad release for WiFi on that WRT series. Though there are WRT series users that were able to use v21 WiFi, a lot of others had severe WiFi issues with all 21-releases. If you are a retro device fan and would like to continue, then at least try OpenWRT 22rc6 and do not migrate existing settings when flashing.

My recommendation would be: if you want hasslefree WiFi and a fully patched system, get a new device. Thr WRT Series for WiFi usage is a dead end.

2 Likes
  • Your boot log is fine, wifi loading correctly, you would have had to have done a MTD write to destroy things.
  • ghash-arm-ce has been around for awhile, not an issue
  • maybe paste your /etc/config/wireless
  • should not take much to go to a mwlwifi version(which??) of choice. I just do not think this is going to help in any way, as stated above, there are many things at play here (mac80211, *ssl, ...). Once you can build an image you just need to patch up makefile, only thing that comes to mind is dealing with the kernel changes that have occurred, but I suspect more issues will probably occur.
  • option, turn radios off and hang an AP
  • a perhaps less obvious option, the radios in that device are replaceable (mpcie), change it out for whatever, but you will have to build a custom image swapping mwlwifi for whatever.
1 Like

really, so the radios can be replaced with other card?

for me building a custom image is not a problem, but do you know what is the best wifi card that will be compatible with this router?
Thanks!

Presumably any OpenWrt supported device, no firsthand experience here; would not be my first choice, but if you like to tinker it is not a big expense to try.

Do yourself a favour, get a modern, fully supported device and don't try to replace wlan cards on an embedded device. Doing so would entail quite some code changes to DTS, setup code, calibration data handling, etc. - it's not fun, and if you have to ask, you won't succeed. Decent wlan cards suitable for this task also cost more than a complete wireless router.

3 Likes

my idea is to replace that with some wifi6 mtk card, and use that with mtk drivers