[Banana BPI-R4] Wifi7 status

I dont... I used to do it on my orangpi5plus 16GB RAM, Ubuntu 24.04.1 LTS :slight_smile:

You've to use x86 VM for compiling openwrt

Why not?

2 Likes

Really? Im doing that since the begining :slight_smile:

Never knew self-hosting was possible this is a great link thanks. Seems like a PR to fix those couple minor items to make OpenWrt ready for self-hosting would be good. Maybe there are bigger reasons to not change but just a thought, e.g.:

  • "OpenWrt doesn't put execute permissions on the scripts for the automake , autoconf , and libtool packages. This prevents a lot of build systems (including OpenWrt's own) from working correctly. To fix..."
  • "OpenWrt needs one small utility (rev), and three bandaid libs to cover for GNU extensions to GLIBC. That makes OpenWrt about 99.9% self-hosting ready."

Ok please return to the main topic...

so I added support to jumbo frames - https://github.com/rmandrad/openwrt/commit/806306fd7b4a211f60c4121f183e5619fe717502

pls test

5 Likes

Any sd card images already reasy to use?

you can try https://github.com/rmandrad/openwrt-images

2 Likes

I already have a dhcp server on the network. So usually, i disable openwrt's own dhcp server and just bridge the wireless interfaces to br-lan, manually on the /etc/config/network file so clients can connect. But now it's not working. Actually the main ip stops working. Any ideas?

My config:


config interface 'loopback'
        option device 'lo'
        option proto 'static'
        option ipaddr '127.0.0.1'
        option netmask '255.0.0.0'

config globals 'globals'

config device
        option name 'br-lan'
        option type 'bridge'
        list ports 'eth0'
        list ports 'eth1'
        list ports 'eth2'
        list ports 'lan1'
        list ports 'lan2'
        list ports 'lan3'
        list ports 'wan'
        list ports 'phy0.0-ap0'
        list ports 'phy0.1-ap0'
        list ports 'phy0.2-ap0'

config interface 'lan'
        option device 'br-lan'
        option proto 'static'
        option ipaddr '192.168.0.111'
        option netmask '255.255.255.0'
        option ip6assign '60'
        option gateway '192.168.0.1'
        list dns '192.168.0.1'

Even using a virgin install and configuring a simple wifi interface, my phone cannot connect. Times out. Tried from a laptop and showed a bad password error. I made sure i inserted the right one.

I tried 2.4 and 5 Ghz bands on radio0 and radio1 respectively. hostapd was running.

Not sure if this matters, but on logread, the log entries for dhcp requests were showing up a bit too late.

EDIT: I was using wpa3-sae for auth.

try sae-mixed for radio 0 & 1 .. you may also try to forget on your phone the password and re-enter the pw

mixed is something a lot of devices have issues with...

That commit from mediatek feed with title Update Filogic 880/860 MLO pre-release seems to be very interesting. It also include new firmware for mt7996.

6 Likes

were you ever able to compile their branch ?

first impressions are good (radio0,1,2)

image

however radio2 throughput still sucks whereas radio1

I was able to build.

e.g.

#!/bin/bash

CURRENT_DIR=$(pwd)
DEFCONFIG=$CURRENT_DIR/openwrt-mediatek/mtk-openwrt-feeds/autobuild/unified/filogic/master/defconfig
OTHER_CONFIG=$CURRENT_DIR/openwrt-mediatek/mtk-openwrt-feeds/autobuild/autobuild_5.4_mac80211_release/mt7988_wifi7_mac80211_mlo/.config
TEMP_CONFIG=$CURRENT_DIR/openwrt-mediatek/myconfig
MAIN_CONFIG=$CURRENT_DIR/openwrt-mediatek/.config

git clone https://git.openwrt.org/openwrt/openwrt.git openwrt-mediatek || true
cd openwrt-mediatek
git clone https://git01.mediatek.com/openwrt/feeds/mtk-openwrt-feeds || true

echo '# CONFIG_IXGBEVF_IPSEC is not set' >> target/linux/generic/config-6.6
echo '# CONFIG_IXGBE_IPSEC is not set' >> target/linux/generic/config-6.6
echo '# CONFIG_RTL8261N_PHY is not set' >> target/linux/generic/config-6.6

# Run prepare instead of build
bash ./mtk-openwrt-feeds/autobuild/unified/autobuild.sh filogic-mac80211-mt7988_rfb-mt7996 prepare log_file=make

# To build via mtk feed:
# bash ./mtk-openwrt-feeds/autobuild/unified/autobuild.sh filogic-mac80211-mt7988_rfb-mt7996 log_file=make


# It will fail, so let's re-use packages set in Mediatek feed + my packages
# and make world!

curl -SL https://raw.githubusercontent.com/danpawlik/openwrt-builder/master/configs/mediatek/mt7988a/bpi-r4 > "$MAIN_CONFIG"
curl -SL https://raw.githubusercontent.com/danpawlik/openwrt-builder/master/configs/common/main-router >> "$MAIN_CONFIG"
curl -SL https://raw.githubusercontent.com/danpawlik/openwrt-builder/master/configs/common/snapshot-short >> "$MAIN_CONFIG"
sed -i '/CONFIG_PACKAGE_wpad-mbedtls=y/d' "$MAIN_CONFIG"
curl -SL https://raw.githubusercontent.com/danpawlik/openwrt-builder/master/configs/common/openssl >> "$MAIN_CONFIG"

cat << EOF >> "$MAIN_CONFIG"
CONFIG_PACKAGE_mt7988-wo-firmware=y
EOF

make V=sc defconfig || true
grep "=m" .config | grep -v 'CONFIG_PACKAGE_libustream-mbedtls=m' | while read -r line; do module=$(echo "$line" | cut -f1 -d'='); sed -i "s/^$line$/# $module is not set/" .config; done
sed -i 's/CONFIG_PACKAGE_kmod-crypto-eip=y/# CONFIG_PACKAGE_kmod-crypto-eip is not set/g' $MAIN_CONFIG
make -j$(nproc) defconfig clean download world

BTW, your ISP should got some punishment. 2Gbps/100Mbps?!

3 Likes

Sorry if this has already been mentioned, but how can I use 320MHz @6GHz in Germany? Maybe adjust the hostapd file?

Thu Nov 28 15:33:20 2024 daemon.notice hostapd: phy0.2-ap0: interface state UNINITIALIZED->COUNTRY_UPDATE
Thu Nov 28 15:33:20 2024 daemon.err hostapd: nl80211: kernel reports: (extension) channel is disabled
Thu Nov 28 15:33:20 2024 daemon.err hostapd: Could not set channel for kernel driver
Thu Nov 28 15:33:20 2024 daemon.err hostapd: Interface initialization failed
Thu Nov 28 15:33:20 2024 daemon.notice hostapd: phy0.2-ap0: interface state COUNTRY_UPDATE->DISABLED
Thu Nov 28 15:33:20 2024 daemon.notice hostapd: phy0.2-ap0: AP-DISABLED
Thu Nov 28 15:33:20 2024 daemon.err hostapd: phy0.2-ap0: Unable to setup interface.
Thu Nov 28 15:33:20 2024 daemon.notice hostapd: nl80211: deinit ifname=phy0.2-ap0 disabled_11b_rates=0
Thu Nov 28 15:33:20 2024 kern.info kernel: [ 1979.779044] mt7996e 0000:01:00.0 phy0.2-ap0: left allmulticast mode
Thu Nov 28 15:33:20 2024 kern.info kernel: [ 1979.785327] mt7996e 0000:01:00.0 phy0.2-ap0: left promiscuous mode
Thu Nov 28 15:33:20 2024 kern.info kernel: [ 1979.791599] br-lan: port 6(phy0.2-ap0) entered disabled state
Thu Nov 28 15:33:20 2024 daemon.err hostapd: rmdir[ctrl_interface=/var/run/hostapd]: Permission denied
Thu Nov 28 15:33:20 2024 daemon.notice hostapd: phy0.2-ap0: CTRL-EVENT-TERMINATING
Thu Nov 28 15:33:20 2024 daemon.err hostapd: hostapd_free_hapd_data: Interface phy0.2-ap0 wasn't started
Thu Nov 28 15:33:20 2024 daemon.notice hostapd: hostapd.add_iface failed for phy phy0.2 ifname=phy0.2-ap0
Thu Nov 28 15:33:21 2024 kern.info kernel: [ 1979.936981] br-lan: port 6(phy0.2-ap0) entered blocking state
Thu Nov 28 15:33:21 2024 kern.info kernel: [ 1979.942732] br-lan: port 6(phy0.2-ap0) entered disabled state

this seems to be related with DE not supporting 320MHz ... does it work if you set it to 160MHz ?

iw reg get 

will tell you what is the support for DE after you set the reg to DE

iw reg set DE
1 Like

yes it works with 160MHz.
But 320MHz should be allowed indoor:

root@OpenWrt:~# iw reg get
global
country DE: DFS-ETSI
(2400 - 2483 @ 40), (N/A, 20), (N/A)
(5150 - 5250 @ 80), (N/A, 23), (N/A), NO-OUTDOOR, AUTO-BW
(5250 - 5350 @ 80), (N/A, 20), (0 ms), NO-OUTDOOR, DFS, AUTO-BW
(5470 - 5725 @ 160), (N/A, 26), (0 ms), DFS
(5725 - 5875 @ 80), (N/A, 13), (N/A)
(5945 - 6425 @ 160), (N/A, 23), (N/A), NO-OUTDOOR
(57000 - 66000 @ 2160), (N/A, 40), (N/A)