mirror of
https://github.com/coolsnowwolf/lede.git
synced 2025-06-16 02:25:29 +08:00
156 lines
5.0 KiB
Makefile
156 lines
5.0 KiB
Makefile
#
|
|
# Copyright (C) 2020 OpenWrt.org
|
|
#
|
|
# This is free software, licensed under the GNU General Public License v2.
|
|
# See /LICENSE for more information.
|
|
#
|
|
|
|
include $(TOPDIR)/rules.mk
|
|
|
|
PKG_NAME:=quantenna
|
|
PKG_VERSION:=37.3.2.44
|
|
PKG_RELEASE:=1
|
|
|
|
PKG_MAINTAINER:=Bjørn Mork <bjorn@mork.no>
|
|
|
|
# available versions, ref https://kb.netgear.com/2649/NETGEAR-Open-Source-Code-for-Programmers-GPL
|
|
# qtn sdk v36.6.0.23: 1.0.0.46,
|
|
# qtn sdk v36.6.0.28: 1.0.0.52,
|
|
# qtn sdk v36.6.0.30: 1.0.0.68, 1.0.0.70,
|
|
# qtn sdk v36.7.3.23: 1.0.0.76, 1.0.0.82,
|
|
# qtn sdk v37.3.1.25: 1.0.0.94, 1.0.0.108, 1.0.0.110 , 1.0.0.112, 1.0.0.116, 1.0.0.122,
|
|
# qtn sdk v37.3.2.44: 1.0.0.124
|
|
|
|
NETGEAR_R7500V1_SRC-37.3.2.44=R7500-and_qtn_gpl_src_v1.0.0.124.tar.bz2.zip
|
|
|
|
NETGEAR_R7500V1_HASH-37.3.2.44=6592e3286c66a8b0ba689e6cff2d10cac5aea3ddef8ca8746d7771319e47112e
|
|
|
|
PKG_SOURCE:=$(NETGEAR_R7500V1_SRC-$(strip $(PKG_VERSION)))
|
|
PKG_SOURCE_URL:=https://www.downloads.netgear.com/files/GPL
|
|
PKG_HASH:=$(NETGEAR_R7500V1_HASH-$(strip $(PKG_VERSION)))
|
|
|
|
QCSAPI_ARCHIVE-37.3.2.44=quantenna_gpl_v$(PKG_VERSION).tar.bz2
|
|
|
|
UNPACK_CMD-37.3.2.44=unzip -q -p $(DL_DIR)/$(PKG_SOURCE) | bzcat | $(HOST_TAR) -C $(PKG_BUILD_DIR) $(TAR_OPTIONS)
|
|
UNPACK_CMD=$(UNPACK_CMD-$(strip $(PKG_VERSION)))
|
|
|
|
PKG_BUILD_DEPENDS:=libtirpc
|
|
|
|
include $(INCLUDE_DIR)/kernel.mk
|
|
include $(INCLUDE_DIR)/package.mk
|
|
|
|
define Build/Prepare
|
|
$(PKG_UNPACK)
|
|
bzcat $(PKG_BUILD_DIR)/$(QCSAPI_ARCHIVE-$(strip $(PKG_VERSION))) | \
|
|
$(HOST_TAR) -C $(PKG_BUILD_DIR) $(TAR_OPTIONS) --strip-components=1 \
|
|
--wildcards */libqcsapi_client_src.zip --wildcards *drivers/pcie2*
|
|
bzcat $(PKG_BUILD_DIR)/R7500-*.tar.bz2 | \
|
|
$(HOST_TAR) -C $(PKG_BUILD_DIR) $(TAR_OPTIONS) --strip-components=4 \
|
|
--wildcards */package/qt-wireless/binary/{topaz-linux.lzma.img,u-boot.bin}
|
|
unzip -q -d $(PKG_BUILD_DIR) $(PKG_BUILD_DIR)/libqcsapi_client_src.zip
|
|
# tunning to make the same patch apply to versions with or without -fstrict-aliasing
|
|
sed -i -e 's/ -fstrict-aliasing//' $(PKG_BUILD_DIR)/Makefile
|
|
$(Build/Patch)
|
|
endef
|
|
|
|
define Package/qtn-utils
|
|
SECTION:=firmware
|
|
CATEGORY:=Firmware
|
|
TITLE:=Quantenna QV840 (QTS1000) Utilities
|
|
DEPENDS:=+libtirpc +tc +kmod-sched-act-vlan
|
|
endef
|
|
|
|
define Package/qtn-utils/description
|
|
Management tools for Quantenna QV840 (QTS1000) WiFi modules
|
|
endef
|
|
|
|
TARGET_CFLAGS += $(FPIC) -I$(STAGING_DIR)/usr/include/tirpc
|
|
TARGET_LDFLAGS += -ltirpc
|
|
|
|
define Build/Compile
|
|
$(MAKE_VARS) $(MAKE) -C $(PKG_BUILD_DIR) $(MAKE_FLAGS) qcsapi_sockrpc
|
|
ifdef CONFIG_PACKAGE_kmod-qtn-pcie2
|
|
$(call Build/Compile/qtn-pcie2)
|
|
endif
|
|
endef
|
|
|
|
define Package/qtn-utils/install
|
|
$(INSTALL_DIR) $(1)/usr/sbin
|
|
$(INSTALL_DIR) $(1)/usr/lib
|
|
$(INSTALL_DIR) $(1)/etc/init.d
|
|
$(CP) $(PKG_BUILD_DIR)/libqcsapi_client.so* $(1)/usr/lib/
|
|
$(INSTALL_BIN) $(PKG_BUILD_DIR)/qcsapi_sockrpc $(1)/usr/sbin/
|
|
ln -s /tmp/qcsapi_target_ip.conf $(1)/etc
|
|
$(INSTALL_BIN) ./files/qtn-utils.init $(1)/etc/init.d/qtn-utils
|
|
endef
|
|
|
|
define Package/qtn-firmware
|
|
SECTION:=firmware
|
|
CATEGORY:=Firmware
|
|
TITLE:=Quantenna QV840 (QTS1000) firmware
|
|
DEPENDS:=+dnsmasq
|
|
endef
|
|
|
|
define Package/qtn-firmware/description
|
|
Firmware for Quantenna QV840 (QTS1000) WiFi modules
|
|
endef
|
|
|
|
define Package/qtn-firmware/install
|
|
$(INSTALL_DIR) $(1)/lib/firmware/qtn
|
|
$(INSTALL_DIR) $(1)/etc/uci-defaults
|
|
$(INSTALL_DATA) \
|
|
$(PKG_BUILD_DIR)/u-boot.bin \
|
|
$(PKG_BUILD_DIR)/topaz-linux.lzma.img \
|
|
$(1)/lib/firmware/qtn
|
|
ln -s u-boot.bin $(1)/lib/firmware/qtn/uboot_qsr1000.img
|
|
ln -s topaz-linux.lzma.img $(1)/lib/firmware/qtn/fmac_qsr1000.img
|
|
cd $(1)/lib/firmware && ln -s qtn/u-boot.bin . && ln -s qtn/topaz-linux.lzma.img .
|
|
$(INSTALL_BIN) ./files/qtn-firmware.defaults $(1)/etc/uci-defaults
|
|
endef
|
|
|
|
define Package/qtn-proto
|
|
SECTION:=firmware
|
|
CATEGORY:=Firmware
|
|
TITLE:=Quantenna QV840 (QTS1000) netifd support
|
|
DEPENDS:=+qtn-utils
|
|
endef
|
|
|
|
define Package/qtn-proto/install
|
|
echo "######################################### QTN-PROTO INSTALL #####################################"
|
|
$(INSTALL_DIR) $(1)/lib/wifi
|
|
$(INSTALL_DIR) $(1)/lib/netifd
|
|
$(INSTALL_DIR) $(1)/lib/netifd/wireless
|
|
$(INSTALL_BIN) ./files/lib/wifi/quantenna.sh $(1)/lib/wifi
|
|
$(INSTALL_BIN) ./files/lib/netifd/quantenna.sh $(1)/lib/netifd
|
|
$(INSTALL_BIN) ./files/lib/netifd/wireless/quantenna.sh $(1)/lib/netifd/wireless
|
|
endef
|
|
|
|
define KernelPackage/qtn-pcie2
|
|
SECTION:=kernel
|
|
SUBMENU:=Wireless Drivers
|
|
TITLE:=Quantenna QV840 (QTS1000) pcie2 driver
|
|
DEPENDS:=+qtn-utils
|
|
FILES:=$(PKG_BUILD_DIR)/drivers/pcie2/host/arm/qdpc-host.ko
|
|
AUTOLOAD:=$(call AutoProbe,qdpc-host)
|
|
endef
|
|
|
|
define KernelPackage/qtn-pcie2/description
|
|
Quantenna QV840 (QTS1000) WiFi modules PCIE2 driver
|
|
endef
|
|
|
|
define Build/Compile/qtn-pcie2
|
|
echo "######################################### PCIE2 DRIVER BUILD #####################################"
|
|
cd $(PKG_BUILD_DIR)/drivers/pcie2/host/arm
|
|
+$(MAKE) $(CT_MAKEDEFS) $(PKG_JOBS) -C "$(LINUX_DIR)" \
|
|
$(KERNEL_MAKE_FLAGS) \
|
|
M="$(PKG_BUILD_DIR)/drivers/pcie2/host/arm" \
|
|
NOSTDINC_FLAGS="$(NOSTDINC_FLAGS)" \
|
|
modules
|
|
endef
|
|
|
|
$(eval $(call BuildPackage,qtn-utils))
|
|
$(eval $(call BuildPackage,qtn-firmware))
|
|
$(eval $(call BuildPackage,qtn-proto))
|
|
$(eval $(call KernelPackage,qtn-pcie2))
|
|
|