Ubuntu Server 2204配置无线网卡

CListery ARE YOU OK?

本文主要介绍如何在 Ubuntu Server 2204 上配置无线网卡,以及如何安装驱动。

环境描述

  • System: Ubuntu 22.04.3 LTS
  • USB Network Adapter: Realtek Semiconductor Corp. RTL8192EU 802.11b/g/n WLAN Adapter

查看网卡信息

这一步是为了确认网卡型号,以及是否被系统识别。

1
lsusb

这里应该会列出一大堆硬件设备,无需理会其他的,我们只关注 WLAN Adapter 结尾的,如下图所示:
USB设备列表

如果没有找到,那么有三种可能:一是 USB 口的问题,换一下 USB 口;二是网卡损坏了,这个换台 Windows 机器就能判断;三是网卡模式不对,这个可以 切换网卡模式

接下来,我们需要查看各个网卡的名称,等下在配置网络的时候会用到。

1
ip a show

结果如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp4s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 08:60:6e:45:c1:64 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.106/24 brd 192.168.1.255 scope global enp4s0
valid_lft forever preferred_lft forever
inet6 fe80::a60:6eff:fe45:c164/64 scope link
valid_lft forever preferred_lft forever
3: enp5s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel state DOWN group default qlen 1000
link/ether 08:60:6e:45:c1:65 brd ff:ff:ff:ff:ff:ff
4: enp6s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel state DOWN group default qlen 1000
link/ether 08:60:6e:45:c1:66 brd ff:ff:ff:ff:ff:ff
5: enp7s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel state DOWN group default qlen 1000
link/ether 08:60:6e:45:c1:67 brd ff:ff:ff:ff:ff:ff
6: wlx30b49eb80805: <BROADCAST,MULTICAST> mtu 1500 qdisc mq state DOWN group default qlen 1000
link/ether 30:b4:9e:b8:08:05 brd ff:ff:ff:ff:ff:ff

查看驱动信息

1
sudo lshw -C network

找到描述为 description: Wireless interface 的一项,然后看 configuration -> driver 是否显示为 rtl8xxxu,如果是的话,说明系统已经自动加载了驱动,可以跳过下面的步骤,直接进行 网络配置

网络配置

编辑网络配置文件

1
sudo vim /etc/netplan/00-installer-config.yaml

将文件内容修改为如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
network:
version: 2
renderer: networkd # 渲染器
wifis:
# 无线网卡
wlx30b49eb80805: # USB网卡的名称,可通过 ip a 命令查看
dhcp4: yes # 是否为Ipv4动态分配地址
optional: true # 是否可选
access-points:
"wifi-name": # wifi名称
password: "wifi-password" # wifi密码
# 有线网卡,按你的实际情况配置
enp4s0: # 有线网卡的名称,可通过 ip a 命令查看
dhcp4: no
dhcp6: no # 是否为Ipv6动态分配地址
optional: true
addresses: # 静态IP地址
- 192.168.1.106/24 # IP地址/子网掩码
nameservers: # DNS服务器地址
addresses: # DNS服务器地址列表
- 223.5.5.5 # DNS服务器地址
- 223.6.6.6 # DNS服务器地址
- 192.168.1.1 # DNS服务器地址
routes: # 路由
- to: default # 默认路由
via: 192.168.1.1 # 默认路由的网关
enp5s0:
dhcp4: no
dhcp6: no
optional: true
enp6s0:
dhcp4: no
dhcp6: no
optional: true
enp7s0:
dhcp4: no
dhcp6: no
optional: true

重启网络服务

先进行配置检查

1
sudo netplan try

没问题的话直接敲回车确认,然后会自动应用新配置。

查看网络状态

等待一会儿,再次查看网络状态

1
ip a show

如果看到 wlx30b49eb80805 这个网卡的状态为 UP,并且有 inet 的地址,说明配置成功了,那么到这里就结束了。


但是

如果没有 inet 的地址,可以尝试重启网络服务,或者重启系统。
但是如果在重启之后,还是没有 inet 的地址,那么大概率是驱动的问题,可以尝试安装驱动

安装驱动

安装依赖

1
sudo apt-get install git linux-headers-generic build-essential dkms

下载驱动

1
git clone https://github.com/Mange/rtl8192eu-linux-driver

编译并安装

1
2
3
cd rtl8192eu-linux-driver
sudo dkms add .
sudo dkms install rtl8192eu/1.0

将系统自带驱动加入黑名单

1
echo "blacklist rtl8xxxu" | sudo tee /etc/modprobe.d/rtl8xxxu.conf

系统启动时自动加载 rtl8192eu 驱动

1
echo -e "8192eu\n\nloop" | sudo tee /etc/modules

避免新版系统热插拔后失效

1
echo "options 8192eu rtw_power_mgnt=0 rtw_enusbss=0" | sudo tee /etc/modprobe.d/8192eu.conf

更新Grub和initramfs

1
sudo update-grub && sudo update-initramfs -u

重启 systemctl 以重新生成 initramfs

1
systemctl reboot -i

查看驱动是否被正确加载

1
sudo lshw -C network

找到描述为 description: Wireless interface 的一项,然后看 configuration -> driver 是否显示为 8192eu,如果是的话,说明驱动加载成功,直接进行 网络配置

一些其他的问题

无法连接到wifi

需要检查下无线网卡是否启用,可以通过 ip a show 查看,如果没有 UP 的状态,可以通过 sudo ip link set wlx30b49eb80805 up 启用。

切换网卡模式

通过 lsusb -t 查看,如果是 Mass Storage 模式,那么就需要切换模式了,这个可以通过 sudo usb_modeswitch -KW -v 0bda -p 1a2b 来切换,其中 0bda1a2b 是网卡的厂商ID和产品ID,可以通过 lsusb 查看。

重启后失效,可以通过修改 /usr/lib/udev/rules.d/40-usb_modeswitch.rules 文件来解决。

1
2
# Realtek RTL8192EU Wifi AC USB
ATTR{idVendor}=="0bda", ATTR{idProduct}=="1a2b", RUN+="/usr/sbin/usb_modeswitch -KW -v 0bda -p 1a2b"
  • 标题: Ubuntu Server 2204配置无线网卡
  • 作者: CListery
  • 创建于 : 2023-09-15 21:39:17
  • 更新于 : 2024-11-15 15:53:32
  • 链接: http://clistery.github.io/2023/09/15/ubuntu/usb-net/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论