MT7615 WIFI chip sources

@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 https://pastebin.com/raw/N7zLMagn 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.

3 Likes

And mt76 version: https://github.com/LorenzoBianconi/mt76/commits/mt7615

3 Likes

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

@ilyas compiled *.ipk for his firmware:

2 Likes

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?

E.g.:

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_LICENSE:=GPLv2
 PKG_LICENSE_FILES:=
 
-PKG_SOURCE_URL:=https://github.com/openwrt/mt76
+PKG_SOURCE_URL:=https://github.com/MeIsReallyBa/mt76
 PKG_SOURCE_PROTO:=git
-PKG_SOURCE_DATE:=2019-03-27
-PKG_SOURCE_VERSION:=a11b67348aeb2d3175c5995c747e7fc050c7df60
-PKG_MIRROR_HASH:=6ea603308fa568c8ab39eddd86d9c8110a10aa93971348f52ceda0e5bd423ec6
+PKG_SOURCE_DATE:=2019-04-08
+PKG_SOURCE_VERSION:=879ca1466193153b5ee47e2789645a9b6c4404fc
+PKG_MIRROR_HASH:=
 
-PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
+PKG_MAINTAINER:=Chief
 PKG_BUILD_PARALLEL:=1
 
 PKG_CONFIG_DEPENDS += \
@@ -23,6 +23,7 @@ PKG_CONFIG_DEPENDS += \
 	CONFIG_PACKAGE_kmod-mt76x2-common \
 	CONFIG_PACKAGE_kmod-mt76x2 \
 	CONFIG_PACKAGE_kmod-mt76x2u \
+	CONFIG_PACKAGE_kmod-mt7615 \
 	CONFIG_PACKAGE_kmod-mt7603
 
 STAMP_CONFIGURED_DEPENDS := $(STAGING_DIR)/usr/include/mac80211-backport/backport/autoconf.h
@@ -129,6 +130,15 @@ define KernelPackage/mt76x2
   AUTOLOAD:=$(call AutoProbe,mt76x2e)
 endef
 
+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)
+endef
+
 define KernelPackage/mt7603
   $(KernelPackage/mt76-default)
   TITLE:=MediaTek MT7603 wireless driver
@@ -178,6 +188,9 @@ endif
 ifdef CONFIG_PACKAGE_kmod-mt76x2u
   PKG_MAKE_FLAGS += CONFIG_MT76x2U=m
 endif
+ifdef CONFIG_PACKAGE_kmod-mt7615
+  PKG_MAKE_FLAGS += CONFIG_MT7615E=m
+endif
 ifdef CONFIG_PACKAGE_kmod-mt7603
   PKG_MAKE_FLAGS += CONFIG_MT7603E=m
 endif
@@ -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
 endef
 
 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
 endef
 
+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
+endef
+
 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.

@Chief, it turns out that the OpenWRT master branch driver is working after all. My issue was that when I added support for the EA7500-AH v2 router, my build somehow did not include the wpad-basic package. Adding that package makes the wireless interface works.

Do you have problem with range tho? My wireless devices fails to connect to the router when they move away from the router, e.g. when the signal passes thru walls. Can only connect reliably to the router when the wireless clients are near the router.

Try these, if not using them already: https://github.com/MeIsReallyBa/mt76/commit/133bffba8bb2cafb1583c2306a670625d187144c

Compared the 3 files with the ones I'm using, which is from the OpenWRT master branch. They are identical.

[ 14.463924] mt7615e 0000:01:00.0: enabling device (0140 -> 0142)
[ 14.474311] mt7615e 0000:01:00.0: Invalid MAC address, using random address fe:c5:a4:1e:7b:8c
[ 14.477683] ieee80211 phy0: Selected rate control algorithm 'minstrel_ht'
[ 14.491880] PPP generic driver version 2.4.2
[ 14.492961] mt7615e 0000:01:00.0: HW/SW Version: 0x8a108a10, Build Time: 20180518100604a
[ 14.492961]
[ 14.493105] NET: Registered protocol family 24
[ 14.914200] mt7615e 0000:01:00.0: N9 Firmware Version: reserved, Build Time: 20200814163649
[ 14.941862] mt7615e 0000:01:00.0: CR4 Firmware Version: reserved, Build Time: 20190121161307

look's like you board has lost it's factory calibration data
or is not correctly configured to read it's calibration data
more info is needed openwrt version router model number etc