我正在尝试编译 wifi 加密狗 (TL-WN821N) 驱动程序,但 make 命令返回了一些错误
root@MrPoopyButtHole:/home/adriano/Downloads/TL-WN821N_V6_Linux/Driver# make
"******************************************"
"NO SKRC,we will use default KSRC"
"******************************************"
make ARCH=x86_64 CROSS_COMPILE= -C /lib/modules/4.15.0-23-generic/build M=/home/adriano/Downloads/TL-WN821N_V6_Linux/Driver modules
make[1]: Entering directory '/usr/src/linux-headers-4.15.0-23-generic'
Makefile:976: "Cannot use CONFIG_STACK_VALIDATION=y, please install libelf-dev, libelf-devel or elfutils-libelf-devel"
"******************************************"
"NO SKRC,we will use default KSRC"
"******************************************"
CC [M] /home/adriano/Downloads/TL-WN821N_V6_Linux/Driver/core/rtw_cmd.o
In file included from /home/adriano/Downloads/TL-WN821N_V6_Linux/Driver/include/osdep_service.h:41:0,
from /home/adriano/Downloads/TL-WN821N_V6_Linux/Driver/include/drv_types.h:32,
from /home/adriano/Downloads/TL-WN821N_V6_Linux/Driver/core/rtw_cmd.c:22:
/home/adriano/Downloads/TL-WN821N_V6_Linux/Driver/include/osdep_service_linux.h: In function ‘_init_timer’:
/home/adriano/Downloads/TL-WN821N_V6_Linux/Driver/include/osdep_service_linux.h:267:8: error: ‘_timer {aka struct timer_list}’ has no member named ‘data’
ptimer->data = (unsigned long)cntx;
^~
/home/adriano/Downloads/TL-WN821N_V6_Linux/Driver/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/adriano/Downloads/TL-WN821N_V6_Linux/Driver/include/drv_types.h:32:0,
from /home/adriano/Downloads/TL-WN821N_V6_Linux/Driver/core/rtw_cmd.c:22:
/home/adriano/Downloads/TL-WN821N_V6_Linux/Driver/include/osdep_service.h: In function ‘thread_enter’:
/home/adriano/Downloads/TL-WN821N_V6_Linux/Driver/include/osdep_service.h:343:2: error: implicit declaration of function ‘allow_signal’; did you mean ‘do_signal’? [-Werror=implicit-function-declaration]
allow_signal(SIGTERM);
^~~~~~~~~~~~
do_signal
/home/adriano/Downloads/TL-WN821N_V6_Linux/Driver/include/osdep_service.h: In function ‘flush_signals_thread’:
/home/adriano/Downloads/TL-WN821N_V6_Linux/Driver/include/osdep_service.h:353:6: error: implicit declaration of function ‘signal_pending’; did you mean ‘timer_pending’? [-Werror=implicit-function-declaration]
if (signal_pending (current))
^~~~~~~~~~~~~~
timer_pending
/home/adriano/Downloads/TL-WN821N_V6_Linux/Driver/include/osdep_service.h:355:3: error: implicit declaration of function ‘flush_signals’; did you mean ‘do_signal’? [-Werror=implicit-function-declaration]
flush_signals(current);
^~~~~~~~~~~~~
do_signal
In file included from /home/adriano/Downloads/TL-WN821N_V6_Linux/Driver/include/drv_types.h:95:0,
from /home/adriano/Downloads/TL-WN821N_V6_Linux/Driver/core/rtw_cmd.c:22:
/home/adriano/Downloads/TL-WN821N_V6_Linux/Driver/include/hal_com.h: At top level:
/home/adriano/Downloads/TL-WN821N_V6_Linux/Driver/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:18:0,
from ./include/linux/ethtool.h:17,
from ./include/linux/netdevice.h:41,
from /home/adriano/Downloads/TL-WN821N_V6_Linux/Driver/include/osdep_service_linux.h:35,
from /home/adriano/Downloads/TL-WN821N_V6_Linux/Driver/include/osdep_service.h:41,
from /home/adriano/Downloads/TL-WN821N_V6_Linux/Driver/include/drv_types.h:32,
from /home/adriano/Downloads/TL-WN821N_V6_Linux/Driver/core/rtw_cmd.c:22:
./include/linux/fs.h:2867:14: note: previous declaration of ‘file_path’ was here
extern char *file_path(struct file *, char *, int);
^~~~~~~~~
In file included from /home/adriano/Downloads/TL-WN821N_V6_Linux/Driver/include/drv_types.h:65:0,
from /home/adriano/Downloads/TL-WN821N_V6_Linux/Driver/core/rtw_cmd.c:22:
/home/adriano/Downloads/TL-WN821N_V6_Linux/Driver/core/rtw_cmd.c: In function ‘btinfo_evt_dump’:
/home/adriano/Downloads/TL-WN821N_V6_Linux/Driver/include/rtw_debug.h:187:19: error: void value not ignored as it ought to be
#define _seqdump seq_printf
^
/home/adriano/Downloads/TL-WN821N_V6_Linux/Driver/include/rtw_debug.h:242:7: note: in expansion of macro ‘_seqdump’
if(_seqdump(sel, fmt, ##arg)) /*rtw_warn_on(1)*/; \
^~~~~~~~
/home/adriano/Downloads/TL-WN821N_V6_Linux/Driver/core/rtw_cmd.c:3293:2: note: in expansion of macro ‘DBG_871X_SEL_NL’
DBG_871X_SEL_NL(sel, "cid:0x%02x, len:%u\n", info->cid, info->len);
^~~~~~~~~~~~~~~
/home/adriano/Downloads/TL-WN821N_V6_Linux/Driver/include/rtw_debug.h:187:19: error: void value not ignored as it ought to be
#define _seqdump seq_printf
^
/home/adriano/Downloads/TL-WN821N_V6_Linux/Driver/include/rtw_debug.h:242:7: note: in expansion of macro ‘_seqdump’
if(_seqdump(sel, fmt, ##arg)) /*rtw_warn_on(1)*/; \
^~~~~~~~
/home/adriano/Downloads/TL-WN821N_V6_Linux/Driver/core/rtw_cmd.c:3296:3: note: in expansion of macro ‘DBG_871X_SEL_NL’
DBG_871X_SEL_NL(sel, "byte2:%s%s%s%s%s%s%s%s\n"
^~~~~~~~~~~~~~~
/home/adriano/Downloads/TL-WN821N_V6_Linux/Driver/include/rtw_debug.h:187:19: error: void value not ignored as it ought to be
#define _seqdump seq_printf
^
/home/adriano/Downloads/TL-WN821N_V6_Linux/Driver/include/rtw_debug.h:242:7: note: in expansion of macro ‘_seqdump’
if(_seqdump(sel, fmt, ##arg)) /*rtw_warn_on(1)*/; \
^~~~~~~~
/home/adriano/Downloads/TL-WN821N_V6_Linux/Driver/core/rtw_cmd.c:3308:3: note: in expansion of macro ‘DBG_871X_SEL_NL’
DBG_871X_SEL_NL(sel, "retry_cnt:%u\n", info->retry_cnt);
^~~~~~~~~~~~~~~
/home/adriano/Downloads/TL-WN821N_V6_Linux/Driver/include/rtw_debug.h:187:19: error: void value not ignored as it ought to be
#define _seqdump seq_printf
^
/home/adriano/Downloads/TL-WN821N_V6_Linux/Driver/include/rtw_debug.h:242:7: note: in expansion of macro ‘_seqdump’
if(_seqdump(sel, fmt, ##arg)) /*rtw_warn_on(1)*/; \
^~~~~~~~
/home/adriano/Downloads/TL-WN821N_V6_Linux/Driver/core/rtw_cmd.c:3311:3: note: in expansion of macro ‘DBG_871X_SEL_NL’
DBG_871X_SEL_NL(sel, "rssi:%u\n", info->rssi);
^~~~~~~~~~~~~~~
/home/adriano/Downloads/TL-WN821N_V6_Linux/Driver/include/rtw_debug.h:187:19: error: void value not ignored as it ought to be
#define _seqdump seq_printf
^
/home/adriano/Downloads/TL-WN821N_V6_Linux/Driver/include/rtw_debug.h:242:7: note: in expansion of macro ‘_seqdump’
if(_seqdump(sel, fmt, ##arg)) /*rtw_warn_on(1)*/; \
^~~~~~~~
/home/adriano/Downloads/TL-WN821N_V6_Linux/Driver/core/rtw_cmd.c:3314:3: note: in expansion of macro ‘DBG_871X_SEL_NL’
DBG_871X_SEL_NL(sel, "byte5:%s%s\n"
^~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
scripts/Makefile.build:332: recipe for target '/home/adriano/Downloads/TL-WN821N_V6_Linux/Driver/core/rtw_cmd.o' failed
make[2]: *** [/home/adriano/Downloads/TL-WN821N_V6_Linux/Driver/core/rtw_cmd.o] Error 1
Makefile:1552: recipe for target '_module_/home/adriano/Downloads/TL-WN821N_V6_Linux/Driver' failed
make[1]: *** [_module_/home/adriano/Downloads/TL-WN821N_V6_Linux/Driver] Error 2
make[1]: Leaving directory '/usr/src/linux-headers-4.15.0-23-generic'
Makefile:1696: recipe for target 'modules' failed
make: *** [modules] Error 2
我可以使用带有当前内核驱动程序 (rtl8xxxu) 的 wifi 加密狗,但由于信号功率低、加密狗 LED 不工作等问题,有时我必须拔下并重新插入加密狗才能连接。由于供应商网站提供了更新版本,我想尝试一下。
编辑:这是 lsusb 返回的内容:
Bus 001 Device 006: ID 090c:6300 Silicon Motion, Inc. - Taiwan (formerly Feiya Technology Corp.)
Bus 001 Device 007: ID 2357:0107
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 002: ID 0000:0538
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 002: ID 2a7a:0c18
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
修改信息 rtl8xxxu |复制代码
alias: usb:v2357p0107d*dc*dsc*dp*icFFiscFFipFFin*
答案1
嗯,TP-Link 驱动程序仍然没有成功。我想我会继续使用内核默认驱动程序。希望有一天这个加密狗可以正常工作...谢谢你的帮助。