They are 3 major problem. When I installed AsiaRF AW7916 on BPI-R4 LITE.
-
Official BPI-R4 Lite provided OpenWRT image name “2PCIE 1 Lane EACH” this one does not have a kmod-mt76 driver. At least I did not manage to download it. Problem A: You have the right mPCIE configuration but no driver kmod-mt76*
-
Official OpenWRT snapshot or 25.12.4. this one do not have the “2PCIE 1 Lane EACH” fix. So even you have mod-mt76 driver, your AW7916 won’t run.
-
My WIFI6 or WIFI6E won’t start. But WIFI 5 work perfectly.
What I do to fix it. Basically I did not fix a thing. Gemini and Deepseek did.
- Download the 25.12.4 into wsl2 ubuntu (I use wsl2 on windows 11), then prepare for code editing.
— This fix the mPCIE lane issue. I use the CN11 slot ONLY — a. cd ~/openwrt b. nano target/linux/mediatek/dts/mt7987a-bananapi-bpi-r4-lite.dts c. add the code below at the absolute bottom
&pcie1 { status = “okay”; };
&pio { pcie_sel: aw35710qnr_sel { gpio-hog; gpios = <11 GPIO_ACTIVE_HIGH>; output-low; }; };
— This fix the WIFI6 / WIFI6E refuse to even start —
a. cd ~/openwrt
b. nano build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_filogic/mt76-*/mt7915/eeprom.c
c. Scroll down to the mt7915_eeprom_parse_band_config function. You are looking for the case MT_EE_V2_BAND_SEL_5GHZ_6GHZ: block.
case MT_EE_V2_BAND_SEL_5GHZ_6GHZ: if (enable_6ghz) { phy->mt76->cap.has_6ghz = true; u8p_replace_bits(&eeprom[MT_EE_WIFI_CONF + band], MT_EE_V2_BAND_SEL_6GHZ, MT_EE_WIFI_CONF0_BAND_SEL); } else { phy->mt76->cap.has_5ghz = true; u8p_replace_bits(&eeprom[MT_EE_WIFI_CONF + band], MT_EE_V2_BAND_SEL_5GHZ, MT_EE_WIFI_CONF0_BAND_SEL); } /* force to buffer mode */ dev->flash_mode = true;
return;
Replace the above code with the one below. The code below force the AW7916 to only use WIFI6 but IT WILL PERMANENTLY DISABLE YOUR WIFI5.
case MT_EE_V2_BAND_SEL_5GHZ_6GHZ: /* FORCE 6GHZ HARDWARE OVERRIDE */ phy->mt76->cap.has_6ghz = true; u8p_replace_bits(&eeprom[MT_EE_WIFI_CONF + band], MT_EE_V2_BAND_SEL_6GHZ, MT_EE_WIFI_CONF0_BAND_SEL); dev->flash_mode = true; return;
Then compile the code. You will get the files like the one in OpenWRT Selector.
Then if you cannot install luci. Add the repo using the code below.
cat << ‘EOF’ > /etc/apk/repositories https://downloads.openwrt.org/releases/25.12.4/packages/aarch64_cortex-a53/luci/packages.adb https://downloads.openwrt.org/releases/25.12.4/packages/aarch64_cortex-a53/packages/packages.adb https://downloads.openwrt.org/releases/25.12.4/packages/aarch64_cortex-a53/routing/packages.adb EOF
Then YOU MUST HAVE A COUNTRY CODE THAT allow Wifi6E. Like I am in MY I cannot use the country code US. I did use the country code US for testing. Then WIFI6/6E won’t broadcast at all.
And I do all this with a SDcard booting. Now I need to find way to flash the files into eMMC. If you know how our manage to know a good guide please share with me. TQ.