Recently I found that mt76/7615 project has finished a lot,so I want to try to build this on OpenWRT for phicomm K2P,which runs on linux 4.14.109. The default openwrt mt76 makefile just includes mt7603 mt76x2 etc.So how should I edit the default makefile to compile mt7615 drivers?
https://github.com/LorenzoBianconi/mt76/tree/mt7615 this is the link to mt76/7615 project
solved.This is the file content.
include $(TOPDIR)/rules.mk
PKG_NAME:=mt76
PKG_RELEASE=1
PKG_LICENSE:=GPLv2
PKG_LICENSE_FILES:=
PKG_SOURCE_URL:=https://github.com/MeIsReallyBa/mt76
PKG_SOURCE_PROTO:=git
PKG_SOURCE_DATE:=2019-04-08
PKG_SOURCE_VERSION:=879ca1466193153b5ee47e2789645a9b6c4404fc
PKG_MIRROR_HASH:=
PKG_MAINTAINER:=Felix Fietkau [nbd@nbd.name](mailto:nbd@nbd.name)
PKG_BUILD_PARALLEL:=1
PKG_CONFIG_DEPENDS +=
CONFIG_PACKAGE_kmod-mt76-usb
CONFIG_PACKAGE_kmod-mt76x02-common
CONFIG_PACKAGE_kmod-mt76x0-common
CONFIG_PACKAGE_kmod-mt76x0u
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
include $(INCLUDE_DIR)/kernel.mk
include $(INCLUDE_DIR)/package.mk
define KernelPackage/mt76-default
SUBMENU:=Wireless Drivers
DEPENDS:=
+kmod-mac80211 @!LINUX_3_18
+@DRIVER_11AC_SUPPORT +@DRIVER_11N_SUPPORT +@DRIVER_11W_SUPPORT
endef
define KernelPackage/mt76
SUBMENU:=Wireless Drivers
TITLE:=MediaTek MT76x2/MT7603 wireless driver (metapackage)
DEPENDS:=
+kmod-mt76-core +kmod-mt76x2 +kmod-mt7603
endef
define KernelPackage/mt76-core
$(KernelPackage/mt76-default)
TITLE:=MediaTek MT76xx wireless driver
HIDDEN:=1
FILES:=
$(PKG_BUILD_DIR)/mt76.ko
endef
define KernelPackage/mt76-usb
$(KernelPackage/mt76-default)
TITLE:=MediaTek MT76xx wireless driver USB support
DEPENDS += +kmod-usb-core +kmod-mt76-core
HIDDEN:=1
FILES:=
$(PKG_BUILD_DIR)/mt76-usb.ko
endef
define KernelPackage/mt76x02-usb
$(KernelPackage/mt76-default)
TITLE:=MediaTek MT76x0/MT76x2 USB wireless driver common code
DEPENDS+=+kmod-mt76-usb +kmod-mt76x02-common
HIDDEN:=1
FILES:=$(PKG_BUILD_DIR)/mt76x02-usb.ko
endef
define KernelPackage/mt76x02-common
$(KernelPackage/mt76-default)
TITLE:=MediaTek MT76x0/MT76x2 wireless driver common code
DEPENDS+=+kmod-mt76-core
HIDDEN:=1
FILES:=$(PKG_BUILD_DIR)/mt76x02-lib.ko
endef
define KernelPackage/mt76x0-common
$(KernelPackage/mt76-default)
TITLE:=MediaTek MT76x0 wireless driver common code
DEPENDS+=+kmod-mt76x02-common
HIDDEN:=1
FILES:=$(PKG_BUILD_DIR)/mt76x0/mt76x0-common.ko
endef
define KernelPackage/mt76x0e
$(KernelPackage/mt76-default)
TITLE:=MediaTek MT76x0E wireless driver
DEPENDS+=@PCI_SUPPORT +kmod-mt76x0-common
FILES:=
$(PKG_BUILD_DIR)/mt76x0/mt76x0e.ko
AUTOLOAD:=$(call AutoProbe,mt76x0e)
endef
define KernelPackage/mt76x0u
$(KernelPackage/mt76-default)
TITLE:=MediaTek MT76x0U wireless driver
DEPENDS+=+kmod-mt76x0-common +kmod-mt76x02-usb
FILES:=
$(PKG_BUILD_DIR)/mt76x0/mt76x0u.ko
AUTOLOAD:=$(call AutoProbe,mt76x0u)
endef
define KernelPackage/mt76x2-common
$(KernelPackage/mt76-default)
TITLE:=MediaTek MT76x2 wireless driver common code
DEPENDS+=+kmod-mt76-core +kmod-mt76x02-common
HIDDEN:=1
FILES:=$(PKG_BUILD_DIR)/mt76x2/mt76x2-common.ko
endef
define KernelPackage/mt76x2u
$(KernelPackage/mt76-default)
TITLE:=MediaTek MT76x2U wireless driver
DEPENDS+=+kmod-mt76x2-common +kmod-mt76x02-usb
FILES:=
$(PKG_BUILD_DIR)/mt76x2/mt76x2u.ko
AUTOLOAD:=$(call AutoProbe,mt76x2u)
endef
define KernelPackage/mt76x2
$(KernelPackage/mt76-default)
TITLE:=MediaTek MT76x2 wireless driver
DEPENDS+=@PCI_SUPPORT +kmod-mt76x2-common
FILES:=
$(PKG_BUILD_DIR)/mt76x2/mt76x2e.ko
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
DEPENDS+=@PCI_SUPPORT +kmod-mt76-core
FILES:=
$(PKG_BUILD_DIR)/mt7603/mt7603e.ko
AUTOLOAD:=$(call AutoProbe,mt7603e)
endef
NOSTDINC_FLAGS =
-I$(PKG_BUILD_DIR)
-I$(STAGING_DIR)/usr/include/mac80211-backport/uapi
-I$(STAGING_DIR)/usr/include/mac80211-backport
-I$(STAGING_DIR)/usr/include/mac80211/uapi
-I$(STAGING_DIR)/usr/include/mac80211
-include backport/autoconf.h
-include backport/backport.h
ifdef CONFIG_PACKAGE_MAC80211_MESH
NOSTDINC_FLAGS += -DCONFIG_MAC80211_MESH
endif
ifdef CONFIG_PACKAGE_kmod-mt76-usb
PKG_MAKE_FLAGS += CONFIG_MT76_USB=m
endif
ifdef CONFIG_PACKAGE_kmod-mt76x02-common
PKG_MAKE_FLAGS += CONFIG_MT76x02_LIB=m
endif
ifdef CONFIG_PACKAGE_kmod-mt76x02-usb
PKG_MAKE_FLAGS += CONFIG_MT76x02_USB=m
endif
ifdef CONFIG_PACKAGE_kmod-mt76x0-common
PKG_MAKE_FLAGS += CONFIG_MT76x0_COMMON=m
endif
ifdef CONFIG_PACKAGE_kmod-mt76x0e
PKG_MAKE_FLAGS += CONFIG_MT76x0E=m
endif
ifdef CONFIG_PACKAGE_kmod-mt76x0u
PKG_MAKE_FLAGS += CONFIG_MT76x0U=m
endif
ifdef CONFIG_PACKAGE_kmod-mt76x2-common
PKG_MAKE_FLAGS += CONFIG_MT76x2_COMMON=m
endif
ifdef CONFIG_PACKAGE_kmod-mt76x2
PKG_MAKE_FLAGS += CONFIG_MT76x2E=m
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
define Build/Compile
+$(MAKE) $(PKG_JOBS) -C "$(LINUX_DIR)"
$(KERNEL_MAKE_FLAGS)
$(PKG_MAKE_FLAGS)
SUBDIRS="$(PKG_BUILD_DIR)"
NOSTDINC_FLAGS="$(NOSTDINC_FLAGS)"
modules
endef
define Package/kmod-mt76/install
true
endef
define KernelPackage/mt76x0-common/install
$(INSTALL_DIR) $(1)/lib/firmware/mediatek
cp
$(PKG_BUILD_DIR)/firmware/mt7610e.bin
$(1)/lib/firmware/mediatek
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
endef
define KernelPackage/mt76x0u/install
$(INSTALL_DIR) $(1)/lib/firmware/mediatek
ln -sf mt7610e.bin $(1)/lib/firmware/mediatek/mt7610u.bin
endef
define KernelPackage/mt76x2u/install
$(INSTALL_DIR) $(1)/lib/firmware/mediatek
ln -sf ../mt7662.bin $(1)/lib/firmware/mediatek/mt7662u.bin
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
$(PKG_BUILD_DIR)/firmware/mt7615_n9.bin
$(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),
$(PKG_BUILD_DIR)/firmware/mt7628_e1.bin
$(PKG_BUILD_DIR)/firmware/mt7628_e2.bin
,
$(PKG_BUILD_DIR)/firmware/mt7603_e1.bin
$(PKG_BUILD_DIR)/firmware/mt7603_e2.bin
)
$(1)/lib/firmware
endef
$(eval $(call KernelPackage,mt76-core))
$(eval $(call KernelPackage,mt76-usb))
$(eval $(call KernelPackage,mt76x02-usb))
$(eval $(call KernelPackage,mt76x02-common))
$(eval $(call KernelPackage,mt76x0-common))
$(eval $(call KernelPackage,mt76x0e))
$(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))
z1022
April 9, 2019, 1:19pm
#3
after complied the drivers how to use in current build.
can you teach me ?
Thanks
Mushoz
April 9, 2019, 1:47pm
#4
Good job :)! Is WiFi working on both 5ghz and 2.4ghz? How's performance and stability on both bands? Really curious about that device myself! Might be a nice upgrade over my current mt7602/mt7612 based router.
Sorry,It dint't work properly.I just could connet to it but no ip address.It seems that the driver didn’t read eeprom info
dana44
May 11, 2019, 9:27pm
#6
Is this a reference to https://lwn.net/ml/linux-wireless/cover.1553607739.git.ryder.lee@mediatek.com/ to add support for MediaTek MT7615 wireless chipsets? Which kernel version is that patch for?
slh
May 11, 2019, 10:32pm
#7
It has been merged into mainline v5.2.
1 Like
dana44
May 11, 2019, 11:18pm
#8
I hope this is a dumb question. Does this mean all those 7615 devices are candidates for future openwrt support once it moves to a 5.1+ kernel?
slh
May 11, 2019, 11:40pm
#9
Yes…
…and no, OpenWrt doesn't use the wireless subsystem of the base kernel, but employs backports instead, which are generally newer than the base kernel (e.g. 4.19 based backports instead of the 4.14 LTS kernel used by all OpenWrt targets at the moment).
#
# Copyright (C) 2007-2015 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
include $(INCLUDE_DIR)/kernel.mk
PKG_NAME:=mac80211
PKG_VERSION:=4.19.32-1
PKG_RELEASE:=2
PKG_SOURCE_URL:=@KERNEL/linux/kernel/projects/backports/stable/v4.19.32/
PKG_HASH:=838db1565b54fe4bd1e769c54f30c65c9ea2fb5e99a0cddb7910561794ae317a
PKG_SOURCE:=backports-$(PKG_VERSION).tar.xz
PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/backports-$(PKG_VERSION)
PKG_BUILD_PARALLEL:=1
This file has been truncated. show original
The situation for mt76 in particular is a bit special as well, given that its primary author is an OpenWrt developer who is regularly updating the mt76 (semi-) independently of the backports provided wireless subsystem underneath.
In other words, it's even newer than the v4.19 based backports - but at this moment not (yet) new enough for mt7615 support.
In short, no mt7615 isn't supported in OpenWrt yet, but it's just a matter of time and very likely to happen (significantly) before OpenWrt switches to kernel v5.2. Don't expect the drivers to be top notch quality on day 1 though, it usually takes a while for new drivers to stabilize, for bugs to be found and performance to be tweaked.
Have you solved this problem?