[Banana BPI-R4] Wifi7 status

Hey, all is in GitHub workflows - dunno which build you use but I guess this one that does not have updated hostapd. Here you have info what project and what branch. Check what patches are there. Hint - there are two commits ahead comparing to what is in main OpenWRT repo.

nice, those two commits will allow me to manually change my source, but is there a way to add a patch file to the openwrt source to make this easier?

So instead of manually editing those two files, simply drop one or two patch files somewhere that do that? This will make it easier to manage if there are changes to the openwrt source of those files.

again, very thankful for the help, I got my r4 today and want to get the wifi solved to then take care of the gpon sfp module. I've read somewhere it wont work so another thing to take care before I can use the r4.

Please do that.
I just want to remind, that you can just add .patch to the commit link on GitHub and you will get a patch.

many thanks @danpawlik , I made the same changes you did on my custom OpenWRT build and was able to get the wifi running. wasn't able to test 6G band as I don't have any 6G client but the 2.4 and 5 seem to be working well.
I also was able to get my xpon stick to run at 2.5g, basically one needs to patch the kernel to force 2.5g link.

I noticed that Luci doen't have yet support for the 6g band, or at least there are no options shown on the webinterface.

Anyway, I will try to figure out how to make patches instead of manually editing the source files as I did this time. Again, much appreciated.

1 Like

Hello BE14 nerds!

Did anyone already found that Mediatek readme and created a running testbuild based on their instructions? Sounds very promising: https://git01.mediatek.com/plugins/gitiles/openwrt/feeds/mtk-openwrt-feeds/+/d7d5c7502b6c24795309e259d44158e99feccb9a/autobuild/unified/Readme.md

EDITH1:
… and maybe change their first git clone instruction to:

git clone --branch master https://github.com/openwrt/openwrt.git openwrt

:wink:

EDITH2:

  1. first build without changes failed …
  2. looks like LuCi got patched out by mediatek | manually added as feed and still building …

EDITH3:
Unexpected quick win! (updated existing build)


Just followed instructions, but modifed openwrt git-source as mentioned above. Added original openwrt feeds after first run, did make menuconfig and selected luci and some additianal packages.
By now only WiFi 6 but no personal repo required anymore (good step forward).

5 Likes

what sku did you choose for the be14?

use the first one:

  1. Filogic 880 (MT7988+MT7996) MTK Reference Board (RFB)
1 Like

it's failing to build for me, maybe because the kernel was bumped today to .6.6.49.
anyway, the way they apply the patches is horrible. it seems I would not be able to select gcc14 as the compiler or add proper gcc arm optimizations, for instance for some reason I can't understand, the BPI-R4 has cortex a53 as it's gcc flag optimization but the cpu is actually a a73, so obviously this is the first thing I change on my custom build. with this mediatek build process, I don't think that optimization can be done later because it seems to be building it with the a53 flag.

Do you use GitHub Actions or your own build system? Could you please share the YAML file from GitHub Actions or the build script? I've encountered errors during the build through Actions and I'm probably missing something.

nope - did this on my own server
but build is broken now because openwrt bump to new kernel ...
... and MTK has their kernel references somehow hardcoded (educated guess - no time to check)

Also built successfully 6.6.48 image, just checkout yesterdays openwrt, comment out openwrt_feeds_replace_url in mtk-openwrt-feeds/autobuild/unified/rules and it builds fine. EHT320 works, but the speeds are not very good. I am testing with MT7925 and WCN7851 clients.

6G EHT320

root@OpenWrt:~# iperf3 -s
-----------------------------------------------------------
Server listening on 5201 (test #1)
-----------------------------------------------------------
Accepted connection from 192.168.2.214, port 34736
[  5] local 192.168.2.1 port 5201 connected to 192.168.2.214 port 34750
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-1.00   sec  20.9 MBytes   175 Mbits/sec                  
[  5]   1.00-2.00   sec  21.8 MBytes   182 Mbits/sec                  
[  5]   2.00-3.00   sec  23.0 MBytes   193 Mbits/sec                  
[  5]   3.00-4.00   sec  21.9 MBytes   184 Mbits/sec                  
[  5]   4.00-5.00   sec  22.5 MBytes   189 Mbits/sec                  
[  5]   5.00-6.00   sec  22.1 MBytes   186 Mbits/sec                  
[  5]   6.00-7.00   sec  21.6 MBytes   181 Mbits/sec                  
[  5]   7.00-8.00   sec  23.0 MBytes   193 Mbits/sec                  
[  5]   8.00-9.00   sec  21.9 MBytes   184 Mbits/sec                  
[  5]   9.00-10.00  sec  22.5 MBytes   189 Mbits/sec                  
[  5]  10.00-10.02  sec   256 KBytes   136 Mbits/sec                  
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-10.02  sec   221 MBytes   185 Mbits/sec                  receiver

5G HE160

-----------------------------------------------------------
Server listening on 5201 (test #5)
-----------------------------------------------------------
Accepted connection from 192.168.2.179, port 60452
[  5] local 192.168.2.1 port 5201 connected to 192.168.2.179 port 60464
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-1.00   sec  73.8 MBytes   618 Mbits/sec                  
[  5]   1.00-2.00   sec  71.8 MBytes   602 Mbits/sec                  
[  5]   2.00-3.00   sec  72.4 MBytes   607 Mbits/sec                  
[  5]   3.00-4.00   sec  70.8 MBytes   593 Mbits/sec                  
[  5]   4.00-5.00   sec  71.5 MBytes   600 Mbits/sec                  
[  5]   5.00-6.00   sec  79.2 MBytes   665 Mbits/sec                  
[  5]   6.00-7.00   sec  73.2 MBytes   614 Mbits/sec                  
[  5]   7.00-8.00   sec  72.4 MBytes   607 Mbits/sec                  
[  5]   8.00-9.00   sec  72.1 MBytes   605 Mbits/sec                  
[  5]   9.00-10.00  sec  74.5 MBytes   625 Mbits/sec                  
[  5]  10.00-10.01  sec   384 KBytes   622 Mbits/sec                  
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-10.01  sec   732 MBytes   614 Mbits/sec                  receiver
2 Likes

I also successfully built the iamge with openwrt_feeds_replace_url commented out. The only issue is the generated file is image is openwrt-mediatek-filogic-mediatek_mt7988a-rfb-squashfs-sysupgrade-20240907200310.itb.
There is no sd card image generated by default. @vsnrain how do you flash the image to the sd card or spi nand?

I just use dumpimage to extract kernel and rootfs from itb.
I have my custom manually made SD image where uboot boots with extlinux loader, and if I need change kernel/commandline/dtb/initrd I can just place them on boot/ESP partition, and then theres a separate rw partition for rootfs. Very useful for manual debugging.

1 Like

has anyone tried to enable wed ? (mt7996e wed_enable=Y)

i thought the mt7925 is only eht160 capable not eht320

Yes, it is. I try both wcn7851 (eht320) and mt7925 (eht160) as clients. Station is in eht320 mode.

1 Like

it actually works .. I ported the smp-mt76.sh script from the mtk build

btw ... actually if I enable directly on the module /etc/modules.d it crashes...

I think maybe because it contains this:

if [[ "$WED_ENABLE" -eq "1" ]]; then
	dbg2 "WED_ENABLE ON irq/iptable setting"
	#TCP Binding
	iptables -D FORWARD -p tcp -m conntrack --ctstate RELATED,ESTABLISHED -j FLOWOFFLOAD --hw
	iptables -I FORWARD -p tcp -m conntrack --ctstate RELATED,ESTABLISHED -j FLOWOFFLOAD --hw
	ip6tables -D FORWARD -p tcp -m conntrack --ctstate RELATED,ESTABLISHED -j FLOWOFFLOAD --hw
	ip6tables -I FORWARD -p tcp -m conntrack --ctstate RELATED,ESTABLISHED -j FLOWOFFLOAD --hw

Since the latest OpenWRT version use nftables and not iptables, it might crash this logic. Unless you compile with iptables package and modules, which is not the default.

so this build process with the mediatek buildscrips results in a 1.0 image and the current master produces a 1.2 image. when doing a sysupgrade from an image built from master vs an image built from master but with the mediatek scripts it complains about the versioning. I was wondering if anyone got that issue too?

To fix building, you need to include steps, that will add missing parameter: CONFIG_INET_ESP_OFFLOAD. In short, current guide should be like:

(...)
#Choose one SKU to build (1st Build)
cd openwrt

#### add missing symbol 
#### EDIT: it should be "y"
echo 'CONFIG_INET_ESP_OFFLOAD=y' >> target/linux/generic/config-6.6
git config user.name "Someuser"
git config user.email "someuser@somemail.com"
git add target/linux/generic/config-6.6
git commit -m 'add missing symbol'
####

# Then

## 1. Filogic 880 (MT7988+MT7996) MTK Reference Board (RFB)
bash ../mtk-openwrt-feeds/autobuild/unified/autobuild.sh filogic-mac80211-BE19000 log_file=make

EDIT:
I created builds:

All are available on here

6 Likes