上一篇
在Linux中安装无线网卡驱动需先通过
lspci或
lsusb确认设备型号,检查内核是否原生支持,若需额外驱动则从官网下载并编译或通过包管理器安装
在Linux系统中安装无线网卡驱动需要根据硬件型号、内核版本及发行版特性进行适配,以下是详细步骤及常见问题解决方案:
识别无线网卡信息
-
查看硬件ID
- 执行
lspci | grep -i wireless(PCI设备)或lsusb(USB设备)查看设备信息。 - 输出示例:
03:00.0 Network controller: Realtek Semiconductor Co., Ltd. RTL8821CE 802.11ac (Wi-Fi 5) - 记录厂商(如Realtek)和型号(如RTL8821CE)。
- 执行
-
获取驱动程序名称

- 通过
lspci -k或lsusb -v查看内核驱动支持状态。 - 若提示
Kernel driver in use: rtlwifi,表示内核已内置驱动;若显示(inactive),需手动加载模块。
- 通过
安装驱动前的准备
-
更新系统与依赖
- 更新软件包列表:
sudo apt-get update # Debian/Ubuntu sudo yum update # CentOS/Fedora sudo pacman -Syu # Arch
- 安装编译工具(若需编译驱动):
sudo apt-get install build-essential linux-headers-$(uname -r) # Ubuntu/Debian sudo yum groupinstall "Development Tools" # CentOS sudo pacman -S base-devel # Arch
- 更新软件包列表:
-
检查内核版本
- 执行
uname -r确认当前内核版本,确保与驱动兼容。
- 执行
驱动安装方式
| 驱动类型 | 操作步骤 |
|---|---|
| 内核自带驱动 | 执行 modprobe <驱动模块名>(如 modprobe rtl8822be)设置开机自启:将模块名加入 /etc/modules 文件 |
| 厂商提供驱动 | 访问官网下载驱动(如TP-Link、Tenda等) 解压后进入目录,执行 make 和 sudo make install |
| 第三方开源驱动 | 通过Github获取驱动(如 rtl8821cu 驱动)编译安装: |
git clone https://github.com/aircrack-ng/rtl8821cu.git cd rtl8821cu make sudo make install
加载与配置驱动
-
手动加载模块

- 执行
sudo modprobe <模块名>(如modprobe rtl8822be),若报错则检查内核版本或依赖。
- 执行
-
配置NetworkManager
- 编辑
/etc/NetworkManager/conf.d/wifi.conf,添加:[connection] wifi.powersave = 2 - 重启服务:
sudo systemctl restart NetworkManager
- 编辑
-
测试连接
- 使用
nmcli dev wifi扫描热点,或通过sudo iwconfig wlan0 essid "SSID" key "password"手动连接。
- 使用
常见问题与解决
驱动加载后无法上网
- 原因:可能是固件缺失或权限不足。
- 解决:
- 下载厂商提供的固件(如
.bin文件)并放置到/lib/firmware。 - 检查
dmesg日志,确认驱动是否被禁用(如签名验证问题)。
- 下载厂商提供的固件(如
USB无线网卡频繁断连
- 原因:电源管理或散热问题。
- 解决:
- 禁用USB省电:执行
sudo tee /etc/laptop-mode/laptop-mode.conf <<<"CONTROL_USB_AUTOSUSPEND=0"(仅限笔记本)。 - 避免长时间插拔,防止过热。
- 禁用USB省电:执行
FAQs
Q1:如何确认驱动是否成功加载?
A1:执行 lsmod | grep <模块名> 检查模块是否存在,或使用 dmesg | grep <模块名> 查看加载日志,若未生效,尝试 sudo modprobe -r <模块名> 卸载后重新加载。

Q2:在哪里下载Linux对应的无线网卡驱动?
A2:优先访问硬件厂商官网(如TP-Link支持页面、Tenda下载中心),其次可查找GitHub开源项目(如 aircrack-ng/rtl8821cu),部分驱动集成在Linux发行版的仓库中,可直接通过包管理器安装(如 sudo apt-get install rtl8822be-dkms)
