Make errors with TPLink T4U V3 drivers on Ubuntu 20.04

New linux user here, and i have no idea how drivers work, specially ones that are not included in the kernel. I am on Ubuntu 20.04 and the lsusb gives me

Bus 001 Device 004: ID 2357:0115 TP-Link 802.11ac NIC

So the issue is with the official linux driver provided by the manufacturer: https://www.tp-link.com/us/support/download/archer-t4u/#Driver Following the installation guide: https://static.tp-link.com/2018/201812/20181207/Installation%20Guide%20for%20Linux.pdf i get 2 errors after the make command:

make ARCH=x86_64 CROSS_COMPILE= -C /lib/modules/5.8.0-43-generic/build M=/home/z3/tmpstuff/rtl88x2BU_WiFi_linux_v5.2.4.1_22719.20170613_COEX20170518-4444_AddLED  modules
make[1]: Entering directory '/usr/src/linux-headers-5.8.0-43-generic'
  CC [M]  /home/z3/tmpstuff/rtl88x2BU_WiFi_linux_v5.2.4.1_22719.20170613_COEX20170518-4444_AddLED/core/rtw_cmd.o
In file included from /home/z3/tmpstuff/rtl88x2BU_WiFi_linux_v5.2.4.1_22719.20170613_COEX20170518-4444_AddLED/include/osdep_service.h:42,
                 from /home/z3/tmpstuff/rtl88x2BU_WiFi_linux_v5.2.4.1_22719.20170613_COEX20170518-4444_AddLED/include/drv_types.h:27,
                 from /home/z3/tmpstuff/rtl88x2BU_WiFi_linux_v5.2.4.1_22719.20170613_COEX20170518-4444_AddLED/core/rtw_cmd.c:17:
/home/z3/tmpstuff/rtl88x2BU_WiFi_linux_v5.2.4.1_22719.20170613_COEX20170518-4444_AddLED/include/osdep_service_linux.h: In function ‘_init_timer’:
/home/z3/tmpstuff/rtl88x2BU_WiFi_linux_v5.2.4.1_22719.20170613_COEX20170518-4444_AddLED/include/osdep_service_linux.h:282:8: error: ‘_timer’ {aka ‘struct timer_list’} has no member named ‘data’
  282 |  ptimer->data = (unsigned long)cntx;
      |        ^~
/home/z3/tmpstuff/rtl88x2BU_WiFi_linux_v5.2.4.1_22719.20170613_COEX20170518-4444_AddLED/include/osdep_service_linux.h:283:2: error: implicit declaration of function ‘init_timer’; did you mean ‘_init_timer’? [-Werror=implicit-function-declaration]
  283 |  init_timer(ptimer);
      |  ^~~~~~~~~~
      |  _init_timer
In file included from /home/z3/tmpstuff/rtl88x2BU_WiFi_linux_v5.2.4.1_22719.20170613_COEX20170518-4444_AddLED/include/drv_types.h:30,
                 from /home/z3/tmpstuff/rtl88x2BU_WiFi_linux_v5.2.4.1_22719.20170613_COEX20170518-4444_AddLED/core/rtw_cmd.c:17:
/home/z3/tmpstuff/rtl88x2BU_WiFi_linux_v5.2.4.1_22719.20170613_COEX20170518-4444_AddLED/include/wifi.h: At top level:
/home/z3/tmpstuff/rtl88x2BU_WiFi_linux_v5.2.4.1_22719.20170613_COEX20170518-4444_AddLED/include/wifi.h:1014: warning: "IEEE80211_MAX_AMPDU_BUF" redefined
 1014 | #define IEEE80211_MAX_AMPDU_BUF 0x40
      | 
In file included from /home/z3/tmpstuff/rtl88x2BU_WiFi_linux_v5.2.4.1_22719.20170613_COEX20170518-4444_AddLED/include/osdep_service_linux.h:83,
                 from /home/z3/tmpstuff/rtl88x2BU_WiFi_linux_v5.2.4.1_22719.20170613_COEX20170518-4444_AddLED/include/osdep_service.h:42,
                 from /home/z3/tmpstuff/rtl88x2BU_WiFi_linux_v5.2.4.1_22719.20170613_COEX20170518-4444_AddLED/include/drv_types.h:27,
                 from /home/z3/tmpstuff/rtl88x2BU_WiFi_linux_v5.2.4.1_22719.20170613_COEX20170518-4444_AddLED/core/rtw_cmd.c:17:
./include/linux/ieee80211.h:1600: note: this is the location of the previous definition
 1600 | #define IEEE80211_MAX_AMPDU_BUF  0x100
      | 
In file included from /home/z3/tmpstuff/rtl88x2BU_WiFi_linux_v5.2.4.1_22719.20170613_COEX20170518-4444_AddLED/include/drv_types.h:77,
                 from /home/z3/tmpstuff/rtl88x2BU_WiFi_linux_v5.2.4.1_22719.20170613_COEX20170518-4444_AddLED/core/rtw_cmd.c:17:
/home/z3/tmpstuff/rtl88x2BU_WiFi_linux_v5.2.4.1_22719.20170613_COEX20170518-4444_AddLED/include/rtw_security.h:242:8: error: redefinition of ‘struct sha256_state’
  242 | struct sha256_state {
      |        ^~~~~~~~~~~~
In file included from ./include/linux/filter.h:23,
                 from ./include/net/sock.h:59,
                 from ./include/linux/tcp.h:19,
                 from ./include/linux/ipv6.h:88,
                 from ./include/net/addrconf.h:50,
                 from /home/z3/tmpstuff/rtl88x2BU_WiFi_linux_v5.2.4.1_22719.20170613_COEX20170518-4444_AddLED/include/osdep_service_linux.h:48,
                 from /home/z3/tmpstuff/rtl88x2BU_WiFi_linux_v5.2.4.1_22719.20170613_COEX20170518-4444_AddLED/include/osdep_service.h:42,
                 from /home/z3/tmpstuff/rtl88x2BU_WiFi_linux_v5.2.4.1_22719.20170613_COEX20170518-4444_AddLED/include/drv_types.h:27,
                 from /home/z3/tmpstuff/rtl88x2BU_WiFi_linux_v5.2.4.1_22719.20170613_COEX20170518-4444_AddLED/core/rtw_cmd.c:17:
./include/crypto/sha.h:84:8: note: originally defined here
   84 | struct sha256_state {
      |        ^~~~~~~~~~~~
cc1: some warnings being treated as errors

make[2]: *** [scripts/Makefile.build:290: /home/z3/tmpstuff/rtl88x2BU_WiFi_linux_v5.2.4.1_22719.20170613_COEX20170518-4444_AddLED/core/rtw_cmd.o] Error 1
make[1]: *** [Makefile:1780: /home/z3/tmpstuff/rtl88x2BU_WiFi_linux_v5.2.4.1_22719.20170613_COEX20170518-4444_AddLED] Error 2

is there a way to correct the 2 errors ? since it doesn't create any .ko file as it should

and also if successful copying the resulted file to /lib/modules/[kernel version]/kernel/drivers/net/wireless/ is the way to go ?


Solution 1:

You can install drivers from Cilynx's GitHub repo for RTL88x2BU that has worked well for me.

As detailed in the repo, I've installed the drivers using DKMS installation method:

git clone https://github.com/cilynx/rtl88x2bu.git
cd rtl88x2bu
VER=$(sed -n 's/\PACKAGE_VERSION="\(.*\)"/\1/p' dkms.conf)
sudo rsync -rvhP ./ /usr/src/rtl88x2bu-${VER}
sudo dkms add -m rtl88x2bu -v ${VER}
sudo dkms build -m rtl88x2bu -v ${VER}
sudo dkms install -m rtl88x2bu -v ${VER}
sudo modprobe 88x2bu