TL-WN881ND Linux drivers do not compile
I have the drivers for the TL-WN881ND downloaded and am following the instructions in the manuel. But when I run make I get an error and the .ko file is not created.
I am not very familiar with gcc or makefiles, so I don't know, is there an issue with the makefile or is something else going wrong? Any help is appreciated.
Here is the full output when I run make:
clove@clove-ThinkCentre-M83:~/Downloads/TL-WN881ND_2.0_LinuxDriverSetup/rtl8192EE_linux_v4.3.15.1_19180_BTCOEX20150615-0041.20160824_OK$ make
"******************************************"
"NO KSRC,we will use default KSRC"
"******************************************"
make ARCH=x86_64 CROSS_COMPILE= -C /lib/modules/5.3.0-46-generic/build M=/home/clove/Downloads/TL-WN881ND_2.0_LinuxDriverSetup/rtl8192EE_linux_v4.3.15.1_19180_BTCOEX20150615-0041.20160824_OK modules
make[1]: Entering directory '/usr/src/linux-headers-5.3.0-46-generic'
"******************************************"
"NO KSRC,we will use default KSRC"
"******************************************"
CC [M] /home/clove/Downloads/TL-WN881ND_2.0_LinuxDriverSetup/rtl8192EE_linux_v4.3.15.1_19180_BTCOEX20150615-0041.20160824_OK/core/rtw_cmd.o
In file included from /home/clove/Downloads/TL-WN881ND_2.0_LinuxDriverSetup/rtl8192EE_linux_v4.3.15.1_19180_BTCOEX20150615-0041.20160824_OK/include/osdep_service.h:41:0,
from /home/clove/Downloads/TL-WN881ND_2.0_LinuxDriverSetup/rtl8192EE_linux_v4.3.15.1_19180_BTCOEX20150615-0041.20160824_OK/include/drv_types.h:32,
from /home/clove/Downloads/TL-WN881ND_2.0_LinuxDriverSetup/rtl8192EE_linux_v4.3.15.1_19180_BTCOEX20150615-0041.20160824_OK/core/rtw_cmd.c:22:
/home/clove/Downloads/TL-WN881ND_2.0_LinuxDriverSetup/rtl8192EE_linux_v4.3.15.1_19180_BTCOEX20150615-0041.20160824_OK/include/osdep_service_linux.h: In function ‘_init_timer’:
/home/clove/Downloads/TL-WN881ND_2.0_LinuxDriverSetup/rtl8192EE_linux_v4.3.15.1_19180_BTCOEX20150615-0041.20160824_OK/include/osdep_service_linux.h:267:8: error: ‘_timer {aka struct timer_list}’ has no member named ‘data’
ptimer->data = (unsigned long)cntx;
^~
/home/clove/Downloads/TL-WN881ND_2.0_LinuxDriverSetup/rtl8192EE_linux_v4.3.15.1_19180_BTCOEX20150615-0041.20160824_OK/include/osdep_service_linux.h:268:2: error: implicit declaration of function ‘init_timer’; did you mean ‘_init_timer’? [-Werror=implicit-function-declaration]
init_timer(ptimer);
^~~~~~~~~~
_init_timer
In file included from /home/clove/Downloads/TL-WN881ND_2.0_LinuxDriverSetup/rtl8192EE_linux_v4.3.15.1_19180_BTCOEX20150615-0041.20160824_OK/include/drv_types.h:35:0,
from /home/clove/Downloads/TL-WN881ND_2.0_LinuxDriverSetup/rtl8192EE_linux_v4.3.15.1_19180_BTCOEX20150615-0041.20160824_OK/core/rtw_cmd.c:22:
/home/clove/Downloads/TL-WN881ND_2.0_LinuxDriverSetup/rtl8192EE_linux_v4.3.15.1_19180_BTCOEX20150615-0041.20160824_OK/include/wifi.h: At top level:
/home/clove/Downloads/TL-WN881ND_2.0_LinuxDriverSetup/rtl8192EE_linux_v4.3.15.1_19180_BTCOEX20150615-0041.20160824_OK/include/wifi.h:994:0: warning: "IEEE80211_MAX_AMPDU_BUF" redefined
#define IEEE80211_MAX_AMPDU_BUF 0x40
In file included from ./include/net/cfg80211.h:21:0,
from /home/clove/Downloads/TL-WN881ND_2.0_LinuxDriverSetup/rtl8192EE_linux_v4.3.15.1_19180_BTCOEX20150615-0041.20160824_OK/include/osdep_service_linux.h:81,
from /home/clove/Downloads/TL-WN881ND_2.0_LinuxDriverSetup/rtl8192EE_linux_v4.3.15.1_19180_BTCOEX20150615-0041.20160824_OK/include/osdep_service.h:41,
from /home/clove/Downloads/TL-WN881ND_2.0_LinuxDriverSetup/rtl8192EE_linux_v4.3.15.1_19180_BTCOEX20150615-0041.20160824_OK/include/drv_types.h:32,
from /home/clove/Downloads/TL-WN881ND_2.0_LinuxDriverSetup/rtl8192EE_linux_v4.3.15.1_19180_BTCOEX20150615-0041.20160824_OK/core/rtw_cmd.c:22:
./include/linux/ieee80211.h:1441:0: note: this is the location of the previous definition
#define IEEE80211_MAX_AMPDU_BUF 0x100
In file included from /home/clove/Downloads/TL-WN881ND_2.0_LinuxDriverSetup/rtl8192EE_linux_v4.3.15.1_19180_BTCOEX20150615-0041.20160824_OK/include/drv_types.h:95:0,
from /home/clove/Downloads/TL-WN881ND_2.0_LinuxDriverSetup/rtl8192EE_linux_v4.3.15.1_19180_BTCOEX20150615-0041.20160824_OK/core/rtw_cmd.c:22:
/home/clove/Downloads/TL-WN881ND_2.0_LinuxDriverSetup/rtl8192EE_linux_v4.3.15.1_19180_BTCOEX20150615-0041.20160824_OK/include/hal_com.h:413:13: error: ‘file_path’ redeclared as different kind of symbol
extern char file_path[PATH_LENGTH_MAX];
^~~~~~~~~
In file included from ./include/linux/compat.h:17:0,
from ./include/linux/ethtool.h:17,
from ./include/linux/netdevice.h:37,
from /home/clove/Downloads/TL-WN881ND_2.0_LinuxDriverSetup/rtl8192EE_linux_v4.3.15.1_19180_BTCOEX20150615-0041.20160824_OK/include/osdep_service_linux.h:35,
from /home/clove/Downloads/TL-WN881ND_2.0_LinuxDriverSetup/rtl8192EE_linux_v4.3.15.1_19180_BTCOEX20150615-0041.20160824_OK/include/osdep_service.h:41,
from /home/clove/Downloads/TL-WN881ND_2.0_LinuxDriverSetup/rtl8192EE_linux_v4.3.15.1_19180_BTCOEX20150615-0041.20160824_OK/include/drv_types.h:32,
from /home/clove/Downloads/TL-WN881ND_2.0_LinuxDriverSetup/rtl8192EE_linux_v4.3.15.1_19180_BTCOEX20150615-0041.20160824_OK/core/rtw_cmd.c:22:
./include/linux/fs.h:2966:14: note: previous declaration of ‘file_path’ was here
extern char *file_path(struct file *, char *, int);
^~~~~~~~~
cc1: some warnings being treated as errors
scripts/Makefile.build:288: recipe for target '/home/clove/Downloads/TL-WN881ND_2.0_LinuxDriverSetup/rtl8192EE_linux_v4.3.15.1_19180_BTCOEX20150615-0041.20160824_OK/core/rtw_cmd.o' failed
make[2]: *** [/home/clove/Downloads/TL-WN881ND_2.0_LinuxDriverSetup/rtl8192EE_linux_v4.3.15.1_19180_BTCOEX20150615-0041.20160824_OK/core/rtw_cmd.o] Error 1
Makefile:1655: recipe for target '_module_/home/clove/Downloads/TL-WN881ND_2.0_LinuxDriverSetup/rtl8192EE_linux_v4.3.15.1_19180_BTCOEX20150615-0041.20160824_OK' failed
make[1]: *** [_module_/home/clove/Downloads/TL-WN881ND_2.0_LinuxDriverSetup/rtl8192EE_linux_v4.3.15.1_19180_BTCOEX20150615-0041.20160824_OK] Error 2
make[1]: Leaving directory '/usr/src/linux-headers-5.3.0-46-generic'
Makefile:1696: recipe for target 'modules' failed
make: *** [modules] Error 2