From 3318ab61410204157f794e0b65111ca2a8f3a0b6b72a2f7cc417192a90726d02 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ismail=20D=C3=B6nmez?= Date: Thu, 19 Oct 2017 12:07:15 +0000 Subject: [PATCH] Accepting request 534905 from home:alarrosa:packages New package rtl8812au with the driver for Realtek 8812au wifi cards OBS-URL: https://build.opensuse.org/request/show/534905 OBS-URL: https://build.opensuse.org/package/show/hardware/rtl8812au?expand=0&rev=1 --- .gitattributes | 23 ++++++ .gitignore | 1 + 0001-add-support-for-kernel-4.11.patch | 26 +++++++ 0002-add-support-for-kernel-4.12.patch | 71 ++++++++++++++++++ 0003-Fix-build-with-kernel-4.11.9.patch | 27 +++++++ 0004-Fix-for-Linux-kernel-4.12.5.patch | 34 +++++++++ _service | 14 ++++ rtl8812au-4.3.20.tar.xz | 3 + rtl8812au-preamble | 30 ++++++++ rtl8812au.changes | 20 ++++++ rtl8812au.spec | 96 +++++++++++++++++++++++++ 11 files changed, 345 insertions(+) create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 0001-add-support-for-kernel-4.11.patch create mode 100644 0002-add-support-for-kernel-4.12.patch create mode 100644 0003-Fix-build-with-kernel-4.11.9.patch create mode 100644 0004-Fix-for-Linux-kernel-4.12.5.patch create mode 100644 _service create mode 100644 rtl8812au-4.3.20.tar.xz create mode 100644 rtl8812au-preamble create mode 100644 rtl8812au.changes create mode 100644 rtl8812au.spec diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57affb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.osc diff --git a/0001-add-support-for-kernel-4.11.patch b/0001-add-support-for-kernel-4.11.patch new file mode 100644 index 0000000..bd6fe43 --- /dev/null +++ b/0001-add-support-for-kernel-4.11.patch @@ -0,0 +1,26 @@ +From 060b103f388f3cb485cad96355e2335fec03bba9 Mon Sep 17 00:00:00 2001 +From: Mauro Rossi +Date: Sat, 13 May 2017 23:47:35 +0200 +Subject: [PATCH] rtl8812au: add support for kernel 4.11 + +kernel 4.11 requires to include +in include/osdep_service_linux.h +--- + include/osdep_service_linux.h | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/include/osdep_service_linux.h b/include/osdep_service_linux.h +index 9aaf191..e875e63 100755 +--- a/include/osdep_service_linux.h ++++ b/include/osdep_service_linux.h +@@ -117,6 +117,10 @@ + #include + #endif //CONFIG_BT_COEXIST_SOCKET_TRX + ++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 11, 0)) ++ #include ++#endif ++ + #ifdef CONFIG_USB_HCI + typedef struct urb * PURB; + #if (LINUX_VERSION_CODE>=KERNEL_VERSION(2,6,22)) diff --git a/0002-add-support-for-kernel-4.12.patch b/0002-add-support-for-kernel-4.12.patch new file mode 100644 index 0000000..5230dd5 --- /dev/null +++ b/0002-add-support-for-kernel-4.12.patch @@ -0,0 +1,71 @@ +From 1d3af1e8e931f6fee3ceb26cee4c8b214bb8384c Mon Sep 17 00:00:00 2001 +From: Mauro Rossi +Date: Sat, 13 May 2017 22:30:17 +0200 +Subject: [PATCH] rtl8812au: add support for kernel 4.12 + +/home/utente/nougat-x86_kernel_49/kernel/os_dep/linux/ioctl_cfg80211.c:803:3: +error: too many arguments to function 'cfg80211_roamed' + cfg80211_roamed(padapter->pnetdev + ^ + +/home/utente/nougat-x86_kernel_49/kernel/os_dep/linux/ioctl_cfg80211.c:6580:18: +error: 'WIPHY_FLAG_SUPPORTS_SCHED_SCAN' undeclared (first use in this function) + wiphy->flags |= WIPHY_FLAG_SUPPORTS_SCHED_SCAN; + ^ +--- + os_dep/linux/ioctl_cfg80211.c | 21 +++++++++++++++++++++ + 1 file changed, 21 insertions(+) + +diff --git a/os_dep/linux/ioctl_cfg80211.c b/os_dep/linux/ioctl_cfg80211.c +index e040059..1cca0dd 100755 +--- a/os_dep/linux/ioctl_cfg80211.c ++++ b/os_dep/linux/ioctl_cfg80211.c +@@ -794,12 +794,28 @@ void rtw_cfg80211_indicate_connect(_adapter *padapter) + struct ieee80211_channel *notify_channel; + u32 freq; + u16 channel = cur_network->network.Configuration.DSConfig; ++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,12,0)) ++ struct cfg80211_roam_info roam_info = {}; ++#endif + + freq = rtw_ch2freq(channel); + notify_channel = ieee80211_get_channel(wiphy, freq); + #endif + + DBG_871X(FUNC_ADPT_FMT" call cfg80211_roamed\n", FUNC_ADPT_ARG(padapter)); ++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,12,0)) ++ roam_info.channel = notify_channel; ++ roam_info.bssid = cur_network->network.MacAddress; ++ roam_info.req_ie = ++ pmlmepriv->assoc_req+sizeof(struct rtw_ieee80211_hdr_3addr)+2; ++ roam_info.req_ie_len = ++ pmlmepriv->assoc_req_len-sizeof(struct rtw_ieee80211_hdr_3addr)-2; ++ roam_info.resp_ie = ++ pmlmepriv->assoc_rsp+sizeof(struct rtw_ieee80211_hdr_3addr)+6; ++ roam_info.resp_ie_len = ++ pmlmepriv->assoc_rsp_len-sizeof(struct rtw_ieee80211_hdr_3addr)-6; ++ cfg80211_roamed(padapter->pnetdev, &roam_info, GFP_ATOMIC); ++#else + cfg80211_roamed(padapter->pnetdev + #if LINUX_VERSION_CODE > KERNEL_VERSION(2, 6, 39) || defined(COMPAT_KERNEL_RELEASE) + , notify_channel +@@ -810,6 +826,7 @@ void rtw_cfg80211_indicate_connect(_adapter *padapter) + , pmlmepriv->assoc_rsp+sizeof(struct rtw_ieee80211_hdr_3addr)+6 + , pmlmepriv->assoc_rsp_len-sizeof(struct rtw_ieee80211_hdr_3addr)-6 + , GFP_ATOMIC); ++#endif + } + else + { +@@ -6577,7 +6594,11 @@ static void rtw_cfg80211_preinit_wiphy(_adapter *adapter, struct wiphy *wiphy) + #endif + + #if defined(CONFIG_PM) && (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 0, 0)) ++#if (LINUX_VERSION_CODE < KERNEL_VERSION(4,12,0)) + wiphy->flags |= WIPHY_FLAG_SUPPORTS_SCHED_SCAN; ++#else // kernel >= 4.12 ++ wiphy->max_sched_scan_reqs = 1; ++#endif + #ifdef CONFIG_PNO_SUPPORT + wiphy->max_sched_scan_ssids = MAX_PNO_LIST_COUNT; + #endif diff --git a/0003-Fix-build-with-kernel-4.11.9.patch b/0003-Fix-build-with-kernel-4.11.9.patch new file mode 100644 index 0000000..66d0c7a --- /dev/null +++ b/0003-Fix-build-with-kernel-4.11.9.patch @@ -0,0 +1,27 @@ +From 128289124927edb14e780ddaa9d91a16d44a805c Mon Sep 17 00:00:00 2001 +From: Yoyosan +Date: Fri, 14 Jul 2017 08:35:14 +0300 +Subject: [PATCH] Fix build with kernel 4.11.9. + +--- + os_dep/linux/ioctl_cfg80211.c | 6 ++++++ + 1 file changed, 6 insertions(+) + +diff --git a/os_dep/linux/ioctl_cfg80211.c b/os_dep/linux/ioctl_cfg80211.c +index e040059..684447e 100755 +--- a/os_dep/linux/ioctl_cfg80211.c ++++ b/os_dep/linux/ioctl_cfg80211.c +@@ -3961,7 +3961,13 @@ static int rtw_cfg80211_add_monitor_if(_adapter *padapter, char *name, + mon_ndev->type = ARPHRD_IEEE80211_RADIOTAP; + strncpy(mon_ndev->name, name, IFNAMSIZ); + mon_ndev->name[IFNAMSIZ - 1] = 0; ++ ++#if (LINUX_VERSION_CODE>=KERNEL_VERSION(4,11,9)) ++ mon_ndev->needs_free_netdev = false; ++ mon_ndev->priv_destructor = rtw_ndev_destructor; ++#else + mon_ndev->destructor = rtw_ndev_destructor; ++#endif + + #if (LINUX_VERSION_CODE>=KERNEL_VERSION(2,6,29)) + mon_ndev->netdev_ops = &rtw_cfg80211_monitor_if_ops; diff --git a/0004-Fix-for-Linux-kernel-4.12.5.patch b/0004-Fix-for-Linux-kernel-4.12.5.patch new file mode 100644 index 0000000..49c4561 --- /dev/null +++ b/0004-Fix-for-Linux-kernel-4.12.5.patch @@ -0,0 +1,34 @@ +From 6cd2e46745638287302bf439e523d7ffd74d5987 Mon Sep 17 00:00:00 2001 +From: Manuel Colmenero +Date: Wed, 16 Aug 2017 20:49:58 +0200 +Subject: [PATCH] Fix for Linux kernel 4.12.5 + +Prevents error "initialization from incompatible pointer type". + +See: https://patchwork.kernel.org/patch/9684967/ +--- + os_dep/linux/ioctl_cfg80211.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/os_dep/linux/ioctl_cfg80211.c b/os_dep/linux/ioctl_cfg80211.c +index 6246f14..e24dc3e 100755 +--- a/os_dep/linux/ioctl_cfg80211.c ++++ b/os_dep/linux/ioctl_cfg80211.c +@@ -1895,7 +1895,7 @@ enum nl80211_iftype { + */ + static int cfg80211_rtw_change_iface(struct wiphy *wiphy, + struct net_device *ndev, +- enum nl80211_iftype type, u32 *flags, ++ enum nl80211_iftype type, + struct vif_params *params) + { + enum nl80211_iftype old_type; +@@ -4051,7 +4051,7 @@ static int + #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 1, 0)) + unsigned char name_assign_type, + #endif +- enum nl80211_iftype type, u32 *flags, struct vif_params *params) ++ enum nl80211_iftype type, struct vif_params *params) + { + int ret = 0; + struct net_device* ndev = NULL; diff --git a/_service b/_service new file mode 100644 index 0000000..70b1ac1 --- /dev/null +++ b/_service @@ -0,0 +1,14 @@ + + + https://github.com/diederikdehaas/rtl8812AU + git + 4.3.20 + driver-4.3.20 + rtl8812au + + + *.tar + xz + + + diff --git a/rtl8812au-4.3.20.tar.xz b/rtl8812au-4.3.20.tar.xz new file mode 100644 index 0000000..cd663c1 --- /dev/null +++ b/rtl8812au-4.3.20.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a4d2f7d9a1535bf0dea411f5a5d468319e62f70cbc31537bf448a6f6e53f8fe8 +size 1301656 diff --git a/rtl8812au-preamble b/rtl8812au-preamble new file mode 100644 index 0000000..de33c8d --- /dev/null +++ b/rtl8812au-preamble @@ -0,0 +1,30 @@ +Requires: kernel-%1 +Enhances: kernel-%1 +Supplements: modalias(usb:v7392pA822d*dc*dsc*dp*ic*isc*ip*in*) +Supplements: modalias(usb:v2357p0103d*dc*dsc*dp*ic*isc*ip*in*) +Supplements: modalias(usb:v2357p0101d*dc*dsc*dp*ic*isc*ip*in*) +Supplements: modalias(usb:v20F4p805Bd*dc*dsc*dp*ic*isc*ip*in*) +Supplements: modalias(usb:v2019pAB30d*dc*dsc*dp*ic*isc*ip*in*) +Supplements: modalias(usb:v2001p3316d*dc*dsc*dp*ic*isc*ip*in*) +Supplements: modalias(usb:v2001p3315d*dc*dsc*dp*ic*isc*ip*in*) +Supplements: modalias(usb:v2001p3313d*dc*dsc*dp*ic*isc*ip*in*) +Supplements: modalias(usb:v2001p330Ed*dc*dsc*dp*ic*isc*ip*in*) +Supplements: modalias(usb:v1740p0100d*dc*dsc*dp*ic*isc*ip*in*) +Supplements: modalias(usb:v148Fp9097d*dc*dsc*dp*ic*isc*ip*in*) +Supplements: modalias(usb:v13B1p003Fd*dc*dsc*dp*ic*isc*ip*in*) +Supplements: modalias(usb:v1058p0632d*dc*dsc*dp*ic*isc*ip*in*) +Supplements: modalias(usb:v0E66p0022d*dc*dsc*dp*ic*isc*ip*in*) +Supplements: modalias(usb:v0DF6p0074d*dc*dsc*dp*ic*isc*ip*in*) +Supplements: modalias(usb:v0B05p17D2d*dc*dsc*dp*ic*isc*ip*in*) +Supplements: modalias(usb:v07B8p8812d*dc*dsc*dp*ic*isc*ip*in*) +Supplements: modalias(usb:v0789p016Ed*dc*dsc*dp*ic*isc*ip*in*) +Supplements: modalias(usb:v0586p3426d*dc*dsc*dp*ic*isc*ip*in*) +Supplements: modalias(usb:v050Dp1109d*dc*dsc*dp*ic*isc*ip*in*) +Supplements: modalias(usb:v050Dp1106d*dc*dsc*dp*ic*isc*ip*in*) +Supplements: modalias(usb:v04BBp0952d*dc*dsc*dp*ic*isc*ip*in*) +Supplements: modalias(usb:v0409p0408d*dc*dsc*dp*ic*isc*ip*in*) +Supplements: modalias(usb:v0BDAp881Cd*dc*dsc*dp*ic*isc*ip*in*) +Supplements: modalias(usb:v0BDAp881Bd*dc*dsc*dp*ic*isc*ip*in*) +Supplements: modalias(usb:v0BDAp881Ad*dc*dsc*dp*ic*isc*ip*in*) +Supplements: modalias(usb:v0BDAp8812d*dc*dsc*dp*ic*isc*ip*in*) +Supplements: packageand(kernel-%1:%name) diff --git a/rtl8812au.changes b/rtl8812au.changes new file mode 100644 index 0000000..51522b9 --- /dev/null +++ b/rtl8812au.changes @@ -0,0 +1,20 @@ +------------------------------------------------------------------- +Mon Oct 2 14:34:29 UTC 2017 - alarrosa@suse.com + +- Add 0001-add-support-for-kernel-4.11.patch + 0002-add-support-for-kernel-4.12.patch + 0003-Fix-build-with-kernel-4.11.9.patch + 0004-Fix-for-Linux-kernel-4.12.5.patch + from https://github.com/maurossi/rtl8812au/ to fix + builds with the kernel versions in TW + +------------------------------------------------------------------- +Fri Sep 29 16:46:58 UTC 2017 - alarrosa@suse.com + +- Build fixes and add Supplements modalias + +------------------------------------------------------------------- +Fri Nov 25 14:02:17 UTC 2016 - alarrosa@suse.com + +- Initial build + diff --git a/rtl8812au.spec b/rtl8812au.spec new file mode 100644 index 0000000..7fbe321 --- /dev/null +++ b/rtl8812au.spec @@ -0,0 +1,96 @@ +# +# spec file for package rtl8812au +# +# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany. +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via http://bugs.opensuse.org/ +# + + +Name: rtl8812au +Version: 4.3.20 +Release: 0 +Summary: Kernel driver for Realtek 802.11ac 8812au wifi cards +License: GPL-2.0 +Group: System/Kernel +Url: https://github.com/diederikdehaas/rtl8812AU +Source0: %{name}-%{version}.tar.xz +Source1: %{name}-preamble +Patch0: 0001-add-support-for-kernel-4.11.patch +Patch1: 0002-add-support-for-kernel-4.12.patch +Patch2: 0003-Fix-build-with-kernel-4.11.9.patch +Patch3: 0004-Fix-for-Linux-kernel-4.12.5.patch +BuildRequires: %{kernel_module_package_buildreqs} +BuildRequires: fdupes +BuildRequires: kernel-devel +BuildRequires: kernel-source +BuildRequires: module-init-tools +BuildRequires: binutils +BuildRoot: %{_tmppath}/%{name}-%{version}-build +#BuildArch: noarch +%kernel_module_package -p %{name}-preamble + +%description +Kernel driver for Realtek 802.11ac 8812au wifi cards + +The sources were obtained from https://github.com/diederikdehaas/rtl8812AU, which adapted the official driver +released by Realtek to build on recent kernels. + +%package KMP +Summary: Kernel driver for Realtek 802.11ac rtl8812au wifi cards +Group: System/Kernel + +%description KMP +Kernel driver for Realtek 802.11ac 8812au wifi cards + +The sources were obtained from https://github.com/diederikdehaas/rtl8812AU, which adapted the official driver +released by TP-Link for the Archer T4U AC1200 V1 to build on recent kernels. + +%prep +%setup -q +%patch0 -p1 +%patch1 -p1 +%patch2 -p1 +%patch3 -p1 + +set -- * +mkdir source +mv "$@" source/ +mkdir obj + +%build +for flavor in %{flavors_to_build} ; do +# rm -rf obj/$flavor + cp -a source obj/$flavor + pushd obj/$flavor + sed -i -e "s,^KSRC := /lib/modules/\$(KVER)/build$,KSRC := /usr/src/linux-obj/%_target_cpu/$flavor," Makefile + make + popd +done + +%install +export INSTALL_MOD_PATH=%{buildroot} +export INSTALL_MOD_DIR=%{kernel_module_package_moddir} +kernel_version=`uname -r | sed -e "s/\(-[0-9\.]*\)-.*/\1/"` +echo ${kernel_version} +for flavor in %{flavors_to_build} ; do + pushd obj/$flavor + install -d %{buildroot}/lib/modules/${kernel_version}-$flavor/${INSTALL_MOD_DIR}/ + install -p -m 644 8812au.ko %{buildroot}/lib/modules/${kernel_version}-$flavor/${INSTALL_MOD_DIR}/ + popd +done + +%files +%defattr(-,root,root) +%doc source/LICENSE source/README.md + +%changelog