From b8d43ba477534cf1723c1d50a50abaeca1e2c3fa Mon Sep 17 00:00:00 2001 From: AmadeusGhost <42570690+AmadeusGhost@users.noreply.github.com> Date: Mon, 1 Nov 2021 13:10:49 +0800 Subject: [PATCH] rtl8189es: add new package --- package/kernel/rtl8189es/Makefile | 70 +++++++++++++++++++ package/kernel/rtl8189es/files/50_rtl-wifi | 6 ++ .../patches/001-use-kernel-byteorder.patch | 15 ++++ .../patches/010-remove-repeat-flies.patch | 39 +++++++++++ .../rtl8189es/patches/020-wireless-5.8.patch | 31 ++++++++ 5 files changed, 161 insertions(+) create mode 100644 package/kernel/rtl8189es/Makefile create mode 100644 package/kernel/rtl8189es/files/50_rtl-wifi create mode 100644 package/kernel/rtl8189es/patches/001-use-kernel-byteorder.patch create mode 100644 package/kernel/rtl8189es/patches/010-remove-repeat-flies.patch create mode 100644 package/kernel/rtl8189es/patches/020-wireless-5.8.patch diff --git a/package/kernel/rtl8189es/Makefile b/package/kernel/rtl8189es/Makefile new file mode 100644 index 0000000000..88bc389d0f --- /dev/null +++ b/package/kernel/rtl8189es/Makefile @@ -0,0 +1,70 @@ +# SPDX-License-Identifier: GPL-2.0-only +# +# Copyright (C) 2021 ImmortalWrt.org + +include $(TOPDIR)/rules.mk + +PKG_NAME:=rtl8189es +PKG_RELEASE:=1 + +PKG_SOURCE_URL:=https://github.com/jwrdegoede/rtl8189ES_linux.git +PKG_SOURCE_PROTO:=git +PKG_SOURCE_DATE:=2021-03-03 +PKG_SOURCE_VERSION:=03ac413135a355b55b693154c44b70f86a39732e +PKG_MIRROR_HASH:=5cdd69a0c2383e66ae27b0518b4d6a3e845928767d644e1e2b12095b98ed8fbe + +PKG_MAINTAINER:=Hauke Mehrtens +PKG_BUILD_PARALLEL:=1 + +STAMP_CONFIGURED_DEPENDS := $(STAGING_DIR)/usr/include/mac80211-backport/backport/autoconf.h + +include $(INCLUDE_DIR)/kernel.mk +include $(INCLUDE_DIR)/package.mk + +define KernelPackage/rtl8189es + SUBMENU:=Wireless Drivers + TITLE:=Realtek RTL8189ETV SDIO WiFi + DEPENDS:=+kmod-cfg80211 +kmod-mmc +@DRIVER_11N_SUPPORT + FILES:=$(PKG_BUILD_DIR)/rtl8189es.ko + AUTOLOAD:=$(call AutoProbe,rtl8189es) +endef + +NOSTDINC_FLAGS = \ + -I$(PKG_BUILD_DIR) \ + -I$(PKG_BUILD_DIR)/include \ + -I$(STAGING_DIR)/usr/include/mac80211-backport \ + -I$(STAGING_DIR)/usr/include/mac80211-backport/uapi \ + -I$(STAGING_DIR)/usr/include/mac80211 \ + -I$(STAGING_DIR)/usr/include/mac80211/uapi \ + -include backport/autoconf.h \ + -include backport/backport.h + +EXTRA_KCONFIG:= \ + CONFIG_RTL8189ES=m \ + USER_MODULE_NAME=rtl8189es + +EXTRA_CFLAGS:= \ + -DRTW_SINGLE_WIPHY \ + -DRTW_USE_CFG80211_STA_EVENT \ + -DCONFIG_IOCTL_CFG80211 \ + -DBUILD_OPENWRT + +MAKE_OPTS:= \ + $(KERNEL_MAKE_FLAGS) \ + M="$(PKG_BUILD_DIR)" \ + NOSTDINC_FLAGS="$(NOSTDINC_FLAGS)" \ + USER_EXTRA_CFLAGS="$(EXTRA_CFLAGS)" \ + $(EXTRA_KCONFIG) + +define Build/Compile + +$(MAKE) $(PKG_JOBS) -C "$(LINUX_DIR)" \ + $(MAKE_OPTS) \ + modules +endef + +define KernelPackage/rtl8189es/install + $(INSTALL_DIR) $(1)/etc/uci-defaults + $(INSTALL_DATA) ./files/50_rtl-wifi $(1)/etc/uci-defaults/ +endef + +$(eval $(call KernelPackage,rtl8189es)) diff --git a/package/kernel/rtl8189es/files/50_rtl-wifi b/package/kernel/rtl8189es/files/50_rtl-wifi new file mode 100644 index 0000000000..6214d8d071 --- /dev/null +++ b/package/kernel/rtl8189es/files/50_rtl-wifi @@ -0,0 +1,6 @@ +#!/bin/sh + +sed -i '/iw dev "$wdev" del/d' /lib/netifd/wireless/mac80211.sh +ip link set dev wlan0 up + +exit 0 diff --git a/package/kernel/rtl8189es/patches/001-use-kernel-byteorder.patch b/package/kernel/rtl8189es/patches/001-use-kernel-byteorder.patch new file mode 100644 index 0000000000..9e4d3d1999 --- /dev/null +++ b/package/kernel/rtl8189es/patches/001-use-kernel-byteorder.patch @@ -0,0 +1,15 @@ +Fix compile problem when rtw_byteorder.h and asm/byteorder.h gets +included in addition for example indirectly, do not use realtek own copy +of the byteorder headers. + +--- a/include/drv_types.h ++++ b/include/drv_types.h +@@ -29,7 +29,7 @@ + #include + #include + #include +-#include ++#include + #include + #include + #include diff --git a/package/kernel/rtl8189es/patches/010-remove-repeat-flies.patch b/package/kernel/rtl8189es/patches/010-remove-repeat-flies.patch new file mode 100644 index 0000000000..b017b641f5 --- /dev/null +++ b/package/kernel/rtl8189es/patches/010-remove-repeat-flies.patch @@ -0,0 +1,39 @@ +From 9b2b0ec1bc2d31ddf93ed74d63fdfa6044e329a4 Mon Sep 17 00:00:00 2001 +From: Ben Greear +Date: Fri, 9 Nov 2018 16:21:43 -0800 +Subject: [PATCH] Fix build against openwrt backports tree. + +Like breaks builds elsewhere, can fix it up later. + +Signed-off-by: Ben Greear +--- + include/drv_conf.h | 4 +++- + .../{wireless.h => old_unused_rtl_wireless.h} | 0 + include/{autoconf.h => rtl_autoconf.h} | 0 + 3 files changed, 3 insertions(+), 1 deletions(-) + rename include/linux/{wireless.h => old_unused_rtl_wireless.h} (100%) + rename include/{autoconf.h => rtl_autoconf.h} (100%) + +diff --git a/include/drv_conf.h b/include/drv_conf.h +index 0d20a7e..f0a9f88 100644 +--- a/include/drv_conf.h ++++ b/include/drv_conf.h +@@ -19,7 +19,9 @@ + ******************************************************************************/ + #ifndef __DRV_CONF_H__ + #define __DRV_CONF_H__ +-#include "autoconf.h" ++ ++#include ++#include "rtl_autoconf.h" + #include "hal_ic_cfg.h" + + #if defined (PLATFORM_LINUX) && defined (PLATFORM_WINDOWS) +diff --git a/include/linux/wireless.h b/include/linux/old_unused_rtl_wireless.h +similarity index 100% +rename from include/linux/wireless.h +rename to include/linux/old_unused_rtl_wireless.h +diff --git a/include/autoconf.h b/include/rtl_autoconf.h +similarity index 100% +rename from include/autoconf.h +rename to include/rtl_autoconf.h diff --git a/package/kernel/rtl8189es/patches/020-wireless-5.8.patch b/package/kernel/rtl8189es/patches/020-wireless-5.8.patch new file mode 100644 index 0000000000..ee34307e44 --- /dev/null +++ b/package/kernel/rtl8189es/patches/020-wireless-5.8.patch @@ -0,0 +1,31 @@ +diff --git a/os_dep/linux/ioctl_cfg80211.c b/os_dep/linux/ioctl_cfg80211.c +index b5eb513..901501a 100644 +--- a/os_dep/linux/ioctl_cfg80211.c ++++ b/os_dep/linux/ioctl_cfg80211.c +@@ -5573,7 +5573,7 @@ static void cfg80211_rtw_mgmt_frame_register(struct wiphy *wiphy, + #else + struct net_device *ndev, + #endif +-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 8, 0)) ++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 8, 0)) || defined(BUILD_OPENWRT) + struct mgmt_frame_regs *upd) + #else + u16 frame_type, bool reg) +@@ -5583,7 +5583,7 @@ static void cfg80211_rtw_mgmt_frame_register(struct wiphy *wiphy, + struct net_device *ndev = wdev_to_ndev(wdev); + #endif + _adapter *adapter; +-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 8, 0)) ++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 8, 0)) || defined(BUILD_OPENWRT) + u16 frame_type = BIT(upd->global_stypes << 4); + bool reg = false; + #endif +@@ -6516,7 +6516,7 @@ static struct cfg80211_ops rtw_cfg80211_ops = { + .action = cfg80211_rtw_mgmt_tx, + #endif + +-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 8, 0)) ++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 8, 0)) || defined(BUILD_OPENWRT) + .update_mgmt_frame_registrations = cfg80211_rtw_mgmt_frame_register, + #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 37)) || defined(COMPAT_KERNEL_RELEASE) + .mgmt_frame_register = cfg80211_rtw_mgmt_frame_register,