I have seen this discussed in several other topics and on other websites too, but the information is all over the place. Apparently there was a pretty big change just before I purchased my BPI-R4.
I have tried OpenWRT, Ubuntu 24.04 and Debian Bookworm and in all cases the wifi performance is not great, the range is awful and the 6GHz radio is not active.
Im not sure which radio is which when listing the interfaces in Ubuntu, but regardless of OS I always end up with a 2.4GHz network, a 5GHz network and the 6GHz radio disabled.
I have tried changing the country code from US to JP and still nothing. I saw that suggested a couple times.
I have the metal enclosure and I have replaced all the thermal pads on the entire unit, I also only have one device connected wirelessly so it’s not really getting warm.
So I’m not sure what directions to follow, or what to try in order to get the WiFi performing where it should be.
for that you most probably will need to wait for frank.
so far users are building openwrt image to fix issues but still get some artefacts and seems quite “fragile” when doing some modification on build process.
i will try to get something as ok as possible to start and will wait couple of month for real stable openwrt image
ignore the noise, this is coz i have the wrong antenna cables, the new one will ship in a few weeks and i am too lazy to install the old ones. only thing i noticed is that it takes some time (2-3 minutes) until all radios are up. and another thing: when restarting one radio, all will restart.
I’m no wifi expert,mostly here i also try out patches done from others in sdk or openwrt. Currently i try to upstream the devicetree we have some time to mainline linux which is also some work. Some parts depend on driver changes not yet mainline and i’m discussing with some of the openwrt people. So it will take some time for me to get back to wifi.
Hopefully this won’t sound too dumb, but what do you mean by master? This is the Image I’m working with right now. Should I be using a different one?
Also would you mind sharing your WiFi settings? I can never seem to get all three radios up at the same time. And all three max out at 7dB when they should be able to go up to 22dB (if I recall). I tried messing with some settings and just made it worse and I don’t see a “reset to default” button or anything.
Stupid question, but do your WiFi cards LEDs light up? Only the 2.4GHz light is on, even when 5GHz is working.
To give an idea of my setup hardware wise:
The antennas and cables, I’m using the ones that came with the kit for now. I bought the whole kit from Amazon. It came with the metal enclosure, wifi7 card, antennas, cables, heatsink with the fan, I basically have everything except a cell modem. I even got sim trays which was a nice touch.
Before I assembled it I replaced every thermal pad on the unit with Arctic-TP3 pads, I added them to the WiFi chips to contact the case, including stacking some of the scrap pieces under the card for support so it would press firmly on the thermal pads without bending the PCB (nothing crazy, very lite pressure)
I added a heatsink to the SFP+ ports, and I put two NVME heat sinks on the bottom of the enclosure directly under the WiFi card.
I heard this thing can get toasty so I wasn’t risking it.
I’m definitely going to be following along and continuing to test the Linux builds. My original goal was to get Ubuntu 24.04 running stable. I’ve been talking with the guys working on SPR but I just can’t get it stable on the R4, mostly due to the WiFi.
So I figured for now I’ll get OpenWRT working since it’s flashed onto the NAND and eMMC, and then I’ll keep an sdcard with the latest Linux builds until I can get it running smoothly.
Ok, I just did a back to back comparison between the two different OpenWRT builds. With three different devices, and two different “WAN” connections.
It was not an extensive test, but hopefully it’s enough to give some insight.
Official OpenWRT[24.10.1 (r28597-0425664679)]
Speeds struggle to break 400Mbps regardless of the client device or network configuration.
6GHz Radio is disabled
Range is awful (network isn’t even visible in other parts of my house)
Max radio power is only 7 dBm.
MTK OpenWRT[mtk-bpi-r4-MP4_1-20241216]
Speeds were…odd. (See Below)
iPhone 15Pro (No 6GHz): Struggled to break 500Mb/s Down, but was nearing 800Mb/s Up.
iPhone 16 (With 6GHz): Speeds were closer to 800Mb/s Down and around 800-900Mb/s Up.
M4 MacBook Air (With 6GHz): Speeds were nearing 1Gb/s Down and around 1Gb/s Up.
6GHz Radio seemed fine.
The tests were ran with two different “WAN” configurations.
Using Internet Sharing from my Mac as the WAN. Hardwired tests struggle to break 600Mb/s so I wasn’t expecting much with that setup. But it prevents me from taking down the internet in the whole house just to run tests.
Temporarily disconnected my server so I could run a 10Gb SFP cable from my main switch to the R4 (Those are the speeds listed above).
My actual internet is 2.5Gb/s Fiber, but due to my current firewall not liking my Broadcom network card I generally only pull around 1.3Gb/s (Just as a reference).
So I’m not sure what exactly the issue is or what route to take. The MTK build seemed to work better, but the WiFi was also not very well integrated into LuCI. I mean there was a settings page, but the rest of OpenWRT seemed oblivious that I even had WiFi, and I couldn’t find a list of connected devices anywhere.
i highly recommend you to go with master, not 24.10.1. I dont know where/how you get/create your image, so i can’t help here. I do a git checkout on openwrt and build it myself.
To set up wifi, best is to a rm /etc/config/wireless and then wifi config - this creates a “fresh” config. then you can config everything in luci. Unfortunately i can not give away my image as it uses a very different stack (dhcp/dns) and it contains sensitive information, i build it with everything pre-configured (wifi etc.). i could give you my .config, but this is likely to not work out of the box because some config changes are required (e.g. for odhcpd)
Would that be one of the images from here or do I need to compile the image myself? Because I have tried the snapshot builds as recently as last Tuesday [25/05/29] and it was no different than 24.10.1, at least not enough that I could tell.
I do a git checkout on openwrt and build it myself.
That would be a whole new experience for me, but if thats the only way to get it working reliably then I’ll have to learn.
But before going through all of that, I did notice that the time of the latest commit to the master branch (on GitHub) aligns very closely with the time of the latest snapshot, which would be (as of posting) 659a6cf355471eb98aba6b3c30849ebd01a2467108ec1a7f372b5e2024201b1a. So is that essentially a prebuilt image of the same thing, or am I mixing up terminology?
Out of curiosity, other than the meh integration into LuCI, is there anything major that could be an issue with the MTK based images? Because they do seem to work fairly well, but I am concerned about issues with additional packages, updates etc…I still haven’t fully grasped the full scope of differences. From what I think I understand OpenWRT org images use an open source driver for the WiFi, but the MTK images use a closed source driver?
when you use the snapshot builds, thats also fine. if you have problems, best would be to create a bug report in openwrt and reference it here too. regarding the radios: do a logread, then stop the radio, wait a few seconds and start it, wait for a few seconds. this output is relevant to help in any way.
the difference between mtk’s openwrt version and the official one is, that some fixes go faster into openwrt. e.g. luci uses iwd to show what algorithms are used on the radios. if there is something not ok with iwd, it wont be in mtk but in openwrt master when it is fixed.
Ah ok cool, then I’ll switch back to the Snapshot when I get home tonight.
Where would I find the logs specific to the WiFi radios? I still have the unit connected via serial to my Mac. I see WiFi related messages in the output but it doesn’t appear to be super detailed info.
One big question though is how do I get the radios transmit power above 7 dBm? Only in the official OpenWRT builds do I have that issue. I have read some “tricks” and stuff like changing the region from US to GB or JP but nothing changed.
I only have a 1,500sqft single story, wooden frame house, I should not be loosing signal to the point the network disappears from my phone completely only 20ft away in the other room. With the MTK versions I was still seeing the network with full signal from my neighbors house! So I know it’s not a hardware issue.
I apologize, I’m not trying to bombard you with a million questions, but it’s hard to follow what’s relevant and what isn’t when there’s so much going on in both the BPI and OpenWRT forums.
this is a development board, so it is very likely that a lot of stuff is not perfectly fine yet.
best is probably to do the following:
reboot your r4
stop the radios (e.g. in luci)
start the radios
wait a minute
logread > logread.txt
then pastebin logread.txt somewhere
regarding power: that is very likely fixed in openwrt snapshot. i know there was some bug that limited that to 6 or 7db. mine is running with countrycode CH at 23dbm
Amazingly, somehow the latest snapshot is actually worse than the previous ones. But I did as you suggested and captured the logs and opened a GitHub issues.
thats really wierd, there is a lot going on… did you see those:
daemon.err hostapd: Pre-RSNA security methods are not allowed in 6 GHz
Sat May 3 06:04:12 2025 daemon.err hostapd: 1 errors found in configuration file '<inline>'
Sat May 3 06:04:12 2025 daemon.err hostapd: Failed to set up interface with data: driver=nl80211 logger_syslog=127
that could at least explain why your 6ghz is not working. do you also have odhcpd installed? i thought the default openwrt image does not use that.
there are really a lot of errors and warnings in your log. this looks also a bit fishy to me:
06:04:01 2025 daemon.err hostapd: Failed to create interface phy0.1-ap0: -23 (Too many open files in system)
can you check how high your max filehandle is?
i knew i added some patches manually
oli@DESKTOP-RA0V02P:~/openwrt$ ls package/kernel/mt76/patches/
002-use-tx_power-from-default-fw-if-EEPROM-contains-0s.patch
0152-cp-mtk-mt76-mt7996-config-rxfilter-to-drop-other-unicas.patch