admin管理员组

文章数量:1530518

前言

本文主要介绍如何在 Linux 系统里安装 RTL8812AU 无线 USB 网卡驱动,适用于 Debian、Ubuntu 18/19/20、Centos7/8,其中 Linux 的内核版本必须为大于等于 3.10。检测系统是否正确识别 RTL8812AU 无线网卡1

2# lsusb | grep RTL8812AU

Bus 003 Device 008: ID 0bda:8812 Realtek Semiconductor Corp. RTL8812AU 802.11a/b/g/n/ac 2T2R DB WLAN AdapterUbuntu 18/19/20 手动安装 RTL8812AU 无线网卡驱动1

2# 系统环境

Linux Ubuntu-20 5.4.0-42-generic #46-Ubuntu SMP Fri Jul 10 00:24:02 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19# 安装工具软件

# apt-get install-y git make

# 克隆源码

# git clone https://github/gnab/rtl8812au.git

# 进入源码目录

# cd rtl8812au

# 编译驱动

# make

# 安装驱动

# cp 8812au.ko /lib/modules/$(uname-r)/kernel/drivers/net/wireless

# 更新模块依赖

# depmod

# 提示:执行完以上步骤后,正常情况下就可以在系统的设置面板里看到 RTL8812AU 无线 USB 网卡搜索到的 WiFi 列表;如果网卡驱动安装后不生效,可以尝试重启系统。Ubuntu 18/19/20 通过 DKMS 安装 RTL8812AU 无线网卡驱动

当手动安装 RTL8812AU 无线网卡驱动后,如果 Linux 系统的内核版本升级了,那么 RTL8812AU 驱动就会失效,导致需要重新安装驱动才能正常使用无线网卡。为了解决 Linux 系统内核版本升级带来的问题,可以 通过 DKMS 自动重建并安装网卡驱动到新的内核中。值得注意的是,若通过 DKMS 安装网卡驱动,则无需再使用上面的方法手动安装网卡驱动了。1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20# 安装工具软件

# apt-get install-y git make build-essential dkms

# 克隆源码

# git clone https://github/gnab/rtl8812au.git

# 进入源码目录

# cd rtl8812au

# 将网卡驱动安装到DKMS(若命令执行出错,请看本文后面给出的解决办法)

# make dkms_install

# 查看DKMS是否正确安装网卡驱动

# dkms status

8812au, 4.2.3, 5.4.0-42-generic, x86_64: installed

# 配置系统引导时自动加载网卡驱动

# echo 8812au | sudo tee-a /etc/modules

# 提示:执行完以上步骤后,正常情况下就可以在系统的设置面板里看到 RTL8812AU 无线 USB 网卡搜索到的 WiFi 列表;如果网卡驱动安装后不生效,可以尝试重启系统。

若执行 make dkms_install 命令出现错误 Makefile:1085: *** unterminated call to function 'shell': missing ')'. Stop,此时可以更改 Makefile 的文件内容后,再次执行 make dkms_install 等命令。1

2

3

4

5

6

7

8

9

10

11

12# 进入源码目录

# cd rtl8812au

# 查看网卡驱动的版本号

# cat include/rtw_version.h

define DRIVERVERSION "v4.2.3"

# 编辑Makefile文件,手动指定网卡驱动的具体版本号

# vim Makefile

DRIVER_VERSION = 4.2.3

# 提示:即找到Makefile文件中的 DRIVER_VERSION = $(shell grep "#define DRIVERVERSION" include/rtw_version.h | awk '{print $$3}' | tr -d v\"),并将其修改为 DRIVER_VERSION = 4.2.3

若需要从 DKMS 中卸载网卡驱动,可以执行以下命令:1

2

3

4

5# 进入源码目录

# cd rtl8812au

# 通过DKMS卸载网卡驱动

# make dkms_removeCentos 7/8 YUM 安装 RTL8812AU 无线网卡驱动

由于亲测在 Centos7 系统环境下,通过上述的方法(手动 + DKMS)安装 RTL8812AU 无线网卡的驱动后,无法使无线网卡正常工作,因此可以通过 YUM 包来安装对应的网卡驱动。1

2# 系统环境

Linux Centos-7 3.10.0-1160.6.1.el7.x86_64 #1 SMP Tue Nov 17 13:59:11 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux1

2

3

4

5

6

7# 安装网卡驱动

# yum install kmod-rtl8812au

# 查看网卡驱动是否安装成功(正常情况下,需要将无线USB网卡插到电脑上才会显示具体的驱动信息)

# lsmod| grep "XX"

88XXau 2189305 0

cfg80211 710816 1 88XXau

可以使用以下常用的命令来判断 RTL8812AU 无线网卡是否正常工作,当然也可以在系统的设置面板里查看无线网卡的工作状态:1

2

3

4

5

6

7

8

9

10

11# ifconfig

wlp0s20u5: flags=4163 mtu 1500

inet 192.168.0.117 netmask 255.255.255.0 broadcast 192.168.0.255

inet6 fe80::bbf5:446d:e3ec:90fd prefixlen 64 scopeid 0x20

inet6 2606:a000:810c:9300:9c04:74bc:9909:73d prefixlen 64 scopeid 0x0

inet6 2606:a000:810c:9300::6 prefixlen 128 scopeid 0x0

ether c4:41:1e:5d:7f:98 txqueuelen 1000 (Ethernet)

RX packets 1480 bytes 999935 (976.4 KiB)

RX errors 0 dropped 0 overruns 0 frame 0

TX packets 1724 bytes 484480 (473.1 KiB)

TX errors 0 dropped 0 overruns 0 carrier 0 collisions 01

2

3

4

5

6

7

8

9

10# iwconfig

wlp0s20u5 IEEE 802.11AC ESSID:"SBG6900AC" Nickname:"WIFI@REALTEK"

Mode:Managed Frequency:5.745 GHz Access Point: 5C:E3:0E:96:D7:A0

Bit Rate:174 Mb/s Sensitivity:0/0

Retry:off RTS thr:off Fragment thr:off

Encryption key:------- Security mode:open

Power Management:off

Link Quality=83/100 Signal level=36/100 Noise level=0/100

Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0

Tx excessive retries:0 Invalid misc:0 Missed beacon:01

2

3# nmcli con

NAME UUID TYPE DEVICE

SBG6900AC fd0097f7-2c89-4a2b-bb8e-a23e5d197ac2 wifi wlp0s20u51

2

3

4

5# nmcli dev wifi

IN-USE SSID MODE CHAN RATE SIGNAL BARS SECURITY

TP-LINK_3BC402 Infra 6 270 Mbit/s 47 ▂▄__ --

Tenda_F73CF8 Infra 11 130 Mbit/s 37 ▂▄__ WPA1 WPA2

Tenda_58D840 Infra 10 130 Mbit/s 14 ▂___ WPA1 WPA2参考资料

本文标签: 网卡网卡驱动RTL8812BULinuxusb