我的手上有一块 mini 主机,我用来做 Ubuntu 服务器的,它有一块 WiFi6 的 RTL8852BE 的网卡。但是 Ubuntu 服务器默认在安装时不会安装 WiFi 驱动,需要我们自己安装。
于是我就想着给小主机装一个驱动,这样有的时候就不需要拿到路由器旁边,接一堆线了。
下面是我在网上查阅资料后总结的安装 WiFi 驱动的步骤。
一、查看设备信息
安装驱动前,我们需要先确定 Ubuntu 的内核版本,以及 WiFi 网卡的型号。
1. 查看内核版本
使用以下命令查看你 Ubuntu 的内核版本:
会有类似以下的输出:
一般内核都是小于 5.18 的稳定版本,这在后面安装驱动会用到。
2. 查看网卡型号
我们还要安装对应 WiFi 型号的驱动。
使用以下命令查看你的网络设备:
找到描述是 Wireless interface 的设备,里面就有你网卡的具体信息:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
   | *-network       description: `Wireless interface`       product: Realtek Semiconductor Co., Ltd.       vendor: Realtek Semiconductor Co., Ltd.       physical id: 0       bus info: pci@0000:03:00.0       logical name: wlp3s0       version: 00       serial: a8:43:a4:28:cb:4c       width: 64 bits       clock: 33MHz       capabilities: pm msi pciexpress bus_master cap_list ethernet physical wireless       configuration: broadcast=yes driver=rtl8852be driverversion=v1.15.6.0.2-0-gac110bf5.2021102 firmware=N/A ip=192.168.6.100 latency=0 link=yes multicast=yes wireless=IEEE 802.11AX       resources: irq:144 ioport:3000(size=256) memory:50600000-506fffff
   | 
 
不过我这边只显示网卡是 Realtek 的,并没有具体的型号,于是我就在购买信息上找到了网卡的具体型号是 RTL8852BE。
二、下载、编译、安装驱动
这边的驱动都需要我们下载后手动编译,根据前面的内核版本和网卡信号,你可以前往这位大佬的 GitHub 主页 下载对应的驱动。但是我没有找到我的型号,但是我找到了另个一 Github 仓库,正好是我需要的驱动。
如果你也找不到的话,可能就需要自己上网找找了。
然后下载该驱动:
1 2 3 4
   |  git clone https://github.com/HRex39/rtl8852be.git
  git clone https://github.com/HRex39/rtl8852be.git -b dev
 
  | 
 
下载完后编译安装:
1 2 3
   | cd rtl8852be make -j8 sudo make install
   | 
 
编译结束后就可以使用了:
1 2 3 4
   |  sudo modprobe 8852be
  sudo modprobe -r 8852be
 
  | 
 
这样的话,你使用下面的命令就可以发现你的 WiFi 驱动信息了,可能是 wlan 或者是 wlp3s0 这样的名称:
下面是配置好 WiFi 后的输出:
1 2 3 4 5 6 7 8 9 10 11 12
   | lo        no wireless extensions.
  enp2s0    no wireless extensions.
  wlp3s0    IEEE 802.11AX  ESSID:"OpenWrt"  Nickname:"<WIFI@REALTEK>"           Mode:Managed  Frequency:5.22 GHz  Access Point: D4:35:38:92:9A:E6           Bit Rate:1.201 Gb/s   Sensitivity:0/0           Retry:off   RTS thr:off   Fragment thr:off           Power Management:off           Link Quality=72/100  Signal level=72/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:0
   | 
 
三、配置 WiFi
驱动安装上之后,我们就可以配置 WiFi 了。
打开配置网络的配置文件,一般在 /etc/netplan 位置下:
可能是以下输出
1
   | 00-installer-config.yaml
   | 
 
如果是多个文件,就看一下里面的内容,那一个是正在用的,我这边就一个:
然后在里面添加有关 WiFi 的信息,修改wifi-interface,wifi-ssid,wifi-password 三项就可以了,其他的不需要修改:
1 2 3 4 5 6 7 8 9 10 11 12 13
   | network:   version: 2
    ethernets:     enp2s0:       dhcp4: true
    wifis:     wifi-interface:       dhcp4: true       access-points:         wifi-ssid:           password: wifi-password
   | 
 
可以看到里面有线网口的名称是 enp2s0,这和我们使用 iwconfig 看到的信息是一致的,这也印证了这个配置文件就是系统在使用的配置文件,你的 wifi-interface 也可以对应改成 iwconfig 里面网卡的名称,我这里就是 wlp3s0。
然后使用下面的命令检查配置文件有没有格式错误:
如果没有错误可以按回车确认:
1 2 3 4 5 6
   | Do you want to keep these settings?
  Press ENTER before the timeout to accept the new configuration
  Changes will revert in 106 seconds Configuration accepted.
   | 
 
最后应用就可以了:
成功连接上之后,使用 ifconfig 查看看口有没有分配到 IP 地址,如果有就表明 WiFi 配置成功了。
1 2 3 4 5 6 7 8 9 10
   | wlp3s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500         inet 192.168.6.100  netmask 255.255.255.0  broadcast 192.168.6.255         inet6 fd1d:e932:293a:0:aa43:a4ff:fe28:cb4c  prefixlen 64  scopeid 0x0<global>         inet6 fe80::aa43:a4ff:fe28:cb4c  prefixlen 64  scopeid 0x20<link>         inet6 fd1d:e932:293a::924  prefixlen 128  scopeid 0x0<global>         ether a8:43:a4:28:cb:4c  txqueuelen 1000  (Ethernet)         RX packets 0  bytes 2279554 (2.2 MB)         RX errors 0  dropped 0  overruns 0  frame 0         TX packets 2257  bytes 282259 (282.2 KB)         TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
   |