我买了这个设备
TL-WN823N 版本 3.0
我使用的 ubunto 版本:
分销商 ID:Ubuntu
描述:Ubuntu 20.04.1 LTS
发行:20.04
我从这里下载了一个驱动程序
TL-WN823N(欧规)_V3_160315_Linux
https://www.tp-link.com/en/support/download/tl-wn823n/#Driver
然后我执行了命令但出现了错误,我需要做什么,请帮忙,谢谢
> "******************************************" "NO SKRC,we will use
> default KSRC" "******************************************" make
> ARCH=x86_64 CROSS_COMPILE= -C /lib/modules/5.11.0-38-generic/build
> M=/home/liron/Desktop/yyy/TL-WN823N_EU_V3_160315_Linux/Driver modules
> make[1]: Entering directory '/usr/src/linux-headers-5.11.0-38-generic'
> "******************************************" "NO SKRC,we will use
> default KSRC" "******************************************" CC [M]
> /home/liron/Desktop/yyy/TL-WN823N_EU_V3_160315_Linux/Driver/core/rtw_cmd.o
> In file included from
> /home/liron/Desktop/yyy/TL-WN823N_EU_V3_160315_Linux/Driver/include/osdep_service.h:41,
> from /home/liron/Desktop/yyy/TL-WN823N_EU_V3_160315_Linux/Driver/include/drv_types.h:32,
> from /home/liron/Desktop/yyy/TL-WN823N_EU_V3_160315_Linux/Driver/core/rtw_cmd.c:22:
> /home/liron/Desktop/yyy/TL-WN823N_EU_V3_160315_Linux/Driver/include/osdep_service_linux.h:
> In function ‘_init_timer’:
> /home/liron/Desktop/yyy/TL-WN823N_EU_V3_160315_Linux/Driver/include/osdep_service_linux.h:267:8: error: ‘_timer’ {aka ‘struct timer_list’} has no member named ‘data’
> 267 | ptimer->data = (unsigned long)cntx;
> | ^~ /home/liron/Desktop/yyy/TL-WN823N_EU_V3_160315_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] 268 |
> init_timer(ptimer);
> | ^~~~~~~~~~
> | _init_timer In file included from /home/liron/Desktop/yyy/TL-WN823N_EU_V3_160315_Linux/Driver/include/drv_types.h:35,
> from /home/liron/Desktop/yyy/TL-WN823N_EU_V3_160315_Linux/Driver/core/rtw_cmd.c:22:
> /home/liron/Desktop/yyy/TL-WN823N_EU_V3_160315_Linux/Driver/include/wifi.h:
> At top level:
> /home/liron/Desktop/yyy/TL-WN823N_EU_V3_160315_Linux/Driver/include/wifi.h:994:
> warning: "IEEE80211_MAX_AMPDU_BUF" redefined 994 | #define
> IEEE80211_MAX_AMPDU_BUF 0x40
> | In file included from ./include/net/cfg80211.h:22,
> from /home/liron/Desktop/yyy/TL-WN823N_EU_V3_160315_Linux/Driver/include/osdep_service_linux.h:81,
> from /home/liron/Desktop/yyy/TL-WN823N_EU_V3_160315_Linux/Driver/include/osdep_service.h:41,
> from /home/liron/Desktop/yyy/TL-WN823N_EU_V3_160315_Linux/Driver/include/drv_types.h:32,
> from /home/liron/Desktop/yyy/TL-WN823N_EU_V3_160315_Linux/Driver/core/rtw_cmd.c:22:
> ./include/linux/ieee80211.h:1657: note: this is the location of the
> previous definition 1657 | #define IEEE80211_MAX_AMPDU_BUF 0x100
> | In file included from /home/liron/Desktop/yyy/TL-WN823N_EU_V3_160315_Linux/Driver/include/drv_types.h:95,
> from /home/liron/Desktop/yyy/TL-WN823N_EU_V3_160315_Linux/Driver/core/rtw_cmd.c:22:
> /home/liron/Desktop/yyy/TL-WN823N_EU_V3_160315_Linux/Driver/include/hal_com.h:413:13:
> error: ‘file_path’ redeclared as different kind of symbol 413 |
> extern char file_path[PATH_LENGTH_MAX];
> | ^~~~~~~~~ In file included from ./include/linux/huge_mm.h:8,
> from ./include/linux/mm.h:703,
> from ./include/linux/bvec.h:14,
> from ./include/linux/skbuff.h:17,
> from ./include/net/net_namespace.h:39,
> from ./include/linux/netdevice.h:37,
> from /home/liron/Desktop/yyy/TL-WN823N_EU_V3_160315_Linux/Driver/include/osdep_service_linux.h:35,
> from /home/liron/Desktop/yyy/TL-WN823N_EU_V3_160315_Linux/Driver/include/osdep_service.h:41,
> from /home/liron/Desktop/yyy/TL-WN823N_EU_V3_160315_Linux/Driver/include/drv_types.h:32,
> from /home/liron/Desktop/yyy/TL-WN823N_EU_V3_160315_Linux/Driver/core/rtw_cmd.c:22:
> ./include/linux/fs.h:2870:14: note: previous declaration of
> ‘file_path’ was here 2870 | extern char *file_path(struct file *,
> char *, int);
> | ^~~~~~~~~ In file included from /home/liron/Desktop/yyy/TL-WN823N_EU_V3_160315_Linux/Driver/include/drv_types.h:65,
> from /home/liron/Desktop/yyy/TL-WN823N_EU_V3_160315_Linux/Driver/core/rtw_cmd.c:22:
> /home/liron/Desktop/yyy/TL-WN823N_EU_V3_160315_Linux/Driver/core/rtw_cmd.c:
> In function ‘btinfo_evt_dump’:
> /home/liron/Desktop/yyy/TL-WN823N_EU_V3_160315_Linux/Driver/include/rtw_debug.h:187:19:
> error: void value not ignored as it ought to be 187 | #define
> _seqdump seq_printf
> | ^~~~~~~~~~ /home/liron/Desktop/yyy/TL-WN823N_EU_V3_160315_Linux/Driver/include/rtw_debug.h:242:7:
> note: in expansion of macro ‘_seqdump’ 242 | if(_seqdump(sel,
> fmt, ##arg)) /*rtw_warn_on(1)*/; \
> | ^~~~~~~~ /home/liron/Desktop/yyy/TL-WN823N_EU_V3_160315_Linux/Driver/core/rtw_cmd.c:3293:2:
> note: in expansion of macro ‘DBG_871X_SEL_NL’ 3293 |
> DBG_871X_SEL_NL(sel, "cid:0x%02x, len:%u\n", info->cid, info->len);
> | ^~~~~~~~~~~~~~~ /home/liron/Desktop/yyy/TL-WN823N_EU_V3_160315_Linux/Driver/include/rtw_debug.h:187:19:
> error: void value not ignored as it ought to be 187 | #define
> _seqdump seq_printf
> | ^~~~~~~~~~ /home/liron/Desktop/yyy/TL-WN823N_EU_V3_160315_Linux/Driver/include/rtw_debug.h:242:7:
> note: in expansion of macro ‘_seqdump’ 242 | if(_seqdump(sel,
> fmt, ##arg)) /*rtw_warn_on(1)*/; \
> | ^~~~~~~~ /home/liron/Desktop/yyy/TL-WN823N_EU_V3_160315_Linux/Driver/core/rtw_cmd.c:3296:3:
> note: in expansion of macro ‘DBG_871X_SEL_NL’ 3296 |
> DBG_871X_SEL_NL(sel, "byte2:%s%s%s%s%s%s%s%s\n"
> | ^~~~~~~~~~~~~~~ /home/liron/Desktop/yyy/TL-WN823N_EU_V3_160315_Linux/Driver/include/rtw_debug.h:187:19:
> error: void value not ignored as it ought to be 187 | #define
> _seqdump seq_printf
> | ^~~~~~~~~~ /home/liron/Desktop/yyy/TL-WN823N_EU_V3_160315_Linux/Driver/include/rtw_debug.h:242:7:
> note: in expansion of macro ‘_seqdump’ 242 | if(_seqdump(sel,
> fmt, ##arg)) /*rtw_warn_on(1)*/; \
> | ^~~~~~~~ /home/liron/Desktop/yyy/TL-WN823N_EU_V3_160315_Linux/Driver/core/rtw_cmd.c:3308:3:
> note: in expansion of macro ‘DBG_871X_SEL_NL’ 3308 |
> DBG_871X_SEL_NL(sel, "retry_cnt:%u\n", info->retry_cnt);
> | ^~~~~~~~~~~~~~~ /home/liron/Desktop/yyy/TL-WN823N_EU_V3_160315_Linux/Driver/include/rtw_debug.h:187:19:
> error: void value not ignored as it ought to be 187 | #define
> _seqdump seq_printf
> | ^~~~~~~~~~ /home/liron/Desktop/yyy/TL-WN823N_EU_V3_160315_Linux/Driver/include/rtw_debug.h:242:7:
> note: in expansion of macro ‘_seqdump’ 242 | if(_seqdump(sel,
> fmt, ##arg)) /*rtw_warn_on(1)*/; \
> | ^~~~~~~~ /home/liron/Desktop/yyy/TL-WN823N_EU_V3_160315_Linux/Driver/core/rtw_cmd.c:3311:3:
> note: in expansion of macro ‘DBG_871X_SEL_NL’ 3311 |
> DBG_871X_SEL_NL(sel, "rssi:%u\n", info->rssi);
> | ^~~~~~~~~~~~~~~ /home/liron/Desktop/yyy/TL-WN823N_EU_V3_160315_Linux/Driver/include/rtw_debug.h:187:19:
> error: void value not ignored as it ought to be 187 | #define
> _seqdump seq_printf
> | ^~~~~~~~~~ /home/liron/Desktop/yyy/TL-WN823N_EU_V3_160315_Linux/Driver/include/rtw_debug.h:242:7:
> note: in expansion of macro ‘_seqdump’ 242 | if(_seqdump(sel,
> fmt, ##arg)) /*rtw_warn_on(1)*/; \
> | ^~~~~~~~ /home/liron/Desktop/yyy/TL-WN823N_EU_V3_160315_Linux/Driver/core/rtw_cmd.c:3314:3:
> note: in expansion of macro ‘DBG_871X_SEL_NL’ 3314 |
> DBG_871X_SEL_NL(sel, "byte5:%s%s\n"
> | ^~~~~~~~~~~~~~~ cc1: some warnings being treated as errors make[2]: *** [scripts/Makefile.build:288:
> /home/liron/Desktop/yyy/TL-WN823N_EU_V3_160315_Linux/Driver/core/rtw_cmd.o]
> Error 1 make[1]: *** [Makefile:1849:
> /home/liron/Desktop/yyy/TL-WN823N_EU_V3_160315_Linux/Driver] Error 2
> make[1]: Leaving directory '/usr/src/linux-headers-5.11.0-38-generic'
> make: *** [Makefile:1696: modules] Error 2
答案1
如果您在 VirtualBox 中运行 Ubuntu,则无需安装任何 Linux 驱动程序。
使用主机连接到互联网。如果主机是 Windows,请安装 Windows 驱动程序。
虚拟机将能够使用在主机上创建的连接。
答案2
内核使能
确保你的内核启用CONFIG_RTL8XXXU_未经测试,链接在这里。这意味着内核有它默认(驱动程序),否则从 GitHub 安装驱动程序。
- 安装此驱动程序的步骤必须从 GitHub 进行编译:
sudo apt-get install git linux-headers-generic build-essential dkms #prerequisites
git clone https://github.com/pvaret/rtl8192cu-fixes.git #clone github
sudo dkms add ./rtl8192cu-fixes #setup dkms
sudo dkms install 8192cu/1.11 #build and install module(driver)
sudo depmod -a #refresh module(driver)
sudo cp ./rtl8192cu-fixes/blacklist-native-rtl8192.conf /etc/modprobe.d/ #blacklist failing driver
REBOOT #VERY IMPORANT
git,linux-headers-generic, build-essential,dkms
构建此驱动程序需要哪些软件包once you have git
您可以从终端下载软件包(驱动程序尚未准备好安装)dkms
是一个为每个内核添加模块(驱动程序)的框架,一个“管理器”dkms add ./rtl8192cu-fixes
是告诉 dkms 添加此模块,下一个命令是使用以下命令构建并安装该驱动程序陣容。然后你刷新该模块,也就是启动该模块,Ubuntu 中的一切都知道如何运行它。- 是
blacklist
可选的,用于告诉 Ubuntu 不要使用这些驱动程序,您可以使用 在目录(文件夹)中检查它们ll /etc/modprobe.d/
。通常文件以 blacklist 开头单词然后是硬件的名称并具有扩展名配置文件,- 黑名单-本机-rtl18192.conf
Linux 标头
检查你是否已经安装了它们
apt list linux-headers-$(uname -r)
它应该返回如下内容:
linux-headers-5.15.0-27-generic/jammy-security,now 5.15.0-27.28 amd64 [installed,automatic]
安装 Linux 头文件
sudo apt install linux-headers-$(uname -r)
uname
用于显示系统的发布信息,尝试uname -a
r
参数仅用于显示内核版本- 一切都是包裹因此
$()
命令在同一行执行
- 重启系统
搜索其他图片
apt search linux-image