TP-Link TL-WN823N V3 无线适配器不工作。Ubuntu 安装在 VirtualBox 中

TP-Link TL-WN823N V3 无线适配器不工作。Ubuntu 安装在 VirtualBox 中

我买了这个设备

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

相关内容