MT7615 WIFI chip sources

Dear All
Here: link to Asus AC85U source with MT7615 chip on board. Is it possible to merge wifi drivers from Asus for MT7615 with LEDE code?

I grabbed that tarball. I'm very excited about Mediatek providing a 4x4 802.11ac solution, but these are drivers for a 3.10 kernel at the latest, so they'll need some work to be brought up to 4.x, no doubt. Besides that, there's the question about code quality and readability.

Mt76 supports MT76x2 chips, I don't know if @nbd plans MT7615 support (or if he would even get help from Mediatek on that front).

It's certainly not as easy as 'just' merging that code.

link broken. Some mirror?

Nevermind, here:

I managed to build patched mt76 version, for only 18.06.2 release. This includes opensource mt7615 driver (basing on mt76) - it only needs patched mt76-core package (original will probably crash kernel).

If you manage to build image for router, you can try to load the module and see if it detects hardware.
This is early development version.


Any progress for this Xiaomi R3P router, im itching to get off Xiaomi's limited ROM?

@lukasz92 could you post your sources somewhere (like github) so we can see what the patches are?


@lukasz92, can you post your sources on git (or anywere) please. It will really help in developing openwrt for r3p.

1 Like

@lukasz92 can you offer any help or advice for the Xiaomi R3P over here please. Ilyas is working his/her butt off trying to iron it all out.

@souk it's "his" (not "her") :wink:
i'm really not so much after advice as source code (and an explanation of what @lukasz92 did... he mentions "opensource mt7615 driver" but there are no opensource mt7615 drivers... he talks about "only needing patched mt76-core package" but the mt76 module is completely unrelated to the closed-source mt7615 modules)... so i'm not sure what this "patch" he's talking about is...

btw, @lukasz92 ... congratulations on managing to compile that... it's a real pile. i'm working on doing the same now... (and yes, you should still post your code/patches)

Not really at this moment, driver is not ready. The current target is to push support (without WiFi) for R3P device to OpenWRT, and then introduce wifi support.

@ilyas this is the patch for OpenWRT 18.06.2 that will allow to build kernel module; I generated it from publicly available source on github.
As I have written, this is an early development version and will probably not work.

As development speed is promising, I hope we will see this driver in the second next release of OpenWRT.

1 Like

@lukasz92 i stand corrected, humbled, and embarassed... i had no idea the mt76/mt7615 development was so far ahead... now your message makes complete sense. i had been assuming you had "patched" the closed-source (SDK) module source (which I was trying to locate)... my apologies. and thanks for the answer and the code.


And mt76 version:


Has anybody already tried it on OpenWrt? Very curious but don't have any MT7615 hardware myself.

@ilyas compiled *.ipk for his firmware:


Has anyone got the MT7615 driver running successfully?

I'm trying to add support for the Linksys EA7500-AH v2 router. The image I built off master is able to boot successful for the EA7500. The mt7615e driver is able to load and I can see both wireless interfaces in Luci, but it doesn't seem to work.

For one, I only see WEP encryption and when I enabled the interface, my wireless clients could not see the SSID.

The EA7500-AH v2 seems to be based on the EA7400 v2 with the following specs:

MT7621A SoC
MT7615N wireless chip
128 MB NAND flash
256 MB RAM

From the components used, it looks like the TP-Link RE650 matches the EA7500-AH v2. Has anyone got wireless radio working with the TP-Link RE650 repeater?

Drivers work fine on my custom build for the R6700 v2. Only thing not working are some leds, as they cannot be simply controlled by gpio.

1 Like

Great! Are you building your own firmware image? Do you mind sharing the DTS file and what else you did to make it work?


diff --git a/package/kernel/mt76/Makefile b/package/kernel/mt76/Makefile
index 43a6cb9edc..ed7383040c 100644
--- a/package/kernel/mt76/Makefile
+++ b/package/kernel/mt76/Makefile
@@ -6,13 +6,13 @@ PKG_RELEASE=1
-PKG_MAINTAINER:=Felix Fietkau <>
@@ -23,6 +23,7 @@ PKG_CONFIG_DEPENDS += \
 	CONFIG_PACKAGE_kmod-mt76x2-common \
 	CONFIG_PACKAGE_kmod-mt76x2 \
 	CONFIG_PACKAGE_kmod-mt76x2u \
+	CONFIG_PACKAGE_kmod-mt7615 \
 STAMP_CONFIGURED_DEPENDS := $(STAGING_DIR)/usr/include/mac80211-backport/backport/autoconf.h
@@ -129,6 +130,15 @@ define KernelPackage/mt76x2
   AUTOLOAD:=$(call AutoProbe,mt76x2e)
+define KernelPackage/mt7615
+  $(KernelPackage/mt76-default)
+  TITLE:=MediaTek MT7615 wireless driver
+  DEPENDS+=@PCI_SUPPORT +kmod-mt76-core
+  FILES:=\
+	$(PKG_BUILD_DIR)/mt7615/mt7615e.ko
+  AUTOLOAD:=$(call AutoProbe,mt7615e)
 define KernelPackage/mt7603
   TITLE:=MediaTek MT7603 wireless driver
@@ -178,6 +188,9 @@ endif
 ifdef CONFIG_PACKAGE_kmod-mt76x2u
+ifdef CONFIG_PACKAGE_kmod-mt7615
 ifdef CONFIG_PACKAGE_kmod-mt7603
@@ -204,10 +217,8 @@ endef
 define KernelPackage/mt76x2-common/install
 	$(INSTALL_DIR) $(1)/lib/firmware
-	cp \
-		$(PKG_BUILD_DIR)/firmware/mt7662_rom_patch.bin \
-		$(PKG_BUILD_DIR)/firmware/mt7662.bin \
-		$(1)/lib/firmware
+	cp $(PKG_BUILD_DIR)/firmware/mt7662_rom_patch.bin $(1)/lib/firmware
+	cp $(PKG_BUILD_DIR)/firmware/mt7662.bin $(1)/lib/firmware
 define KernelPackage/mt76x0u/install
@@ -221,6 +232,13 @@ define KernelPackage/mt76x2u/install
 	ln -sf ../mt7662_rom_patch.bin $(1)/lib/firmware/mediatek/mt7662u_rom_patch.bin
+define KernelPackage/mt7615/install
+	$(INSTALL_DIR) $(1)/lib/firmware
+	cp $(PKG_BUILD_DIR)/firmware/mt7615_rom_patch.bin $(1)/lib/firmware
+	cp $(PKG_BUILD_DIR)/firmware/mt7615_n9.bin $(1)/lib/firmware
+	cp $(PKG_BUILD_DIR)/firmware/mt7615_cr4.bin $(1)/lib/firmware
 define KernelPackage/mt7603/install
 	$(INSTALL_DIR) $(1)/lib/firmware
 	cp $(if $(CONFIG_TARGET_ramips_mt76x8), \
@@ -243,5 +261,6 @@ $(eval $(call KernelPackage,mt76x0u))
 $(eval $(call KernelPackage,mt76x2-common))
 $(eval $(call KernelPackage,mt76x2u))
 $(eval $(call KernelPackage,mt76x2))
+$(eval $(call KernelPackage,mt7615))
 $(eval $(call KernelPackage,mt7603))
 $(eval $(call KernelPackage,mt76))
1 Like

Thanks @Chief! Will try it out and report back.