我有一个 Archer T4U Wi-Fi 适配器,但无法安装驱动程序。有人能帮我吗?
lsusb
给出了这个结果:
Bus 006 Device 003: ID 2357:0115 TP-Link
当我尝试用它编译时make
,出现以下错误:
make ARCH=x86_64 CROSS_COMPILE= -C /lib/modules/5.0.0-27-generic/build M=/home/alvaro/rtl8822bu modules
make[1]: se entra en el directorio '/usr/src/linux-headers-5.0.0-27-generic'
CC [M] /home/alvaro/rtl8822bu/core/rtw_cmd.o
In file included from /home/alvaro/rtl8822bu/include/osdep_service.h:41,
from /home/alvaro/rtl8822bu/include/drv_types.h:32,
from /home/alvaro/rtl8822bu/core/rtw_cmd.c:22:
/home/alvaro/rtl8822bu/include/osdep_service_linux.h: In function ‘_init_timer’:
/home/alvaro/rtl8822bu/include/osdep_service_linux.h:257:8: error: ‘_timer’ {aka ‘struct timer_list’} has no member named ‘data’
ptimer->data = (unsigned long)cntx;
^~
/home/alvaro/rtl8822bu/include/osdep_service_linux.h:258: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/alvaro/rtl8822bu/include/drv_types.h:35,
from /home/alvaro/rtl8822bu/core/rtw_cmd.c:22:
/home/alvaro/rtl8822bu/include/wifi.h: At top level:
/home/alvaro/rtl8822bu/include/wifi.h:1005: warning: "IEEE80211_MAX_AMPDU_BUF" redefined
#define IEEE80211_MAX_AMPDU_BUF 0x40
In file included from /home/alvaro/rtl8822bu/include/osdep_service_linux.h:84,
from /home/alvaro/rtl8822bu/include/osdep_service.h:41,
from /home/alvaro/rtl8822bu/include/drv_types.h:32,
from /home/alvaro/rtl8822bu/core/rtw_cmd.c:22:
./include/linux/ieee80211.h:1444: note: this is the location of the previous definition
#define IEEE80211_MAX_AMPDU_BUF 0x100
cc1: some warnings being treated as errors
make[2]: *** [scripts/Makefile.build:286: /home/alvaro/rtl8822bu/core/rtw_cmd.o] Error 1
make[1]: *** [Makefile:1606: _module_/home/alvaro/rtl8822bu] Error 2
make[1]: se sale del directorio '/usr/src/linux-headers-5.0.0-27-generic'
make: *** [Makefile:1318: modules] Error 2
答案1
据我所知,这款 USB Wifi 卡基于 Realtek RLT8822BU 芯片组。
在支持页面上,我只看到“过时”的驱动程序T4U V3 180511和T4U V3 181018 测试版,它们可能有效,也可能无效。
我会尝试使用https://github.com/brandon-bailey/rtl8822bu并编译它。
sudo apt-get update
sudo apt-get install git
git clone https://github.com/brandon-bailey/rtl8822bu.git
cd rtl8822bu
make
sudo make install
sudo modprobe 8822bu
答案2
也许尝试
https://github.com/cilynx/rtl88x2bu
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
答案3
使用此 repo 与 kernel head v5.3.xxx 配合使用。您需要将其 git clone 到本地文件夹中
https://github.com/EntropicEffect/rtl8822bu
git clone https://github.com/EntropicEffect/rtl8822bu
确保您拥有build-essentials
并dkms
sudo apt-get install build-essential dkms
克隆后,cd
进入该文件夹并运行
cd rtl8822bu
make
sudo make install
sudo modprobe 88x2bu
然后连接到您的 Wi-Fi(希望现在 2.4GHz 和 5GHz 都可以检测到)
接下来,按照以下步骤完善安装,并在 Ubuntu 内核映像更新时自动重建
sudo dkms add .
sudo dkms install -m 88x2bu -v 1.1