三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

老Acer笔记本装Ubuntu 20.04,WiFi驱动折腾记(附Acer-wmi禁用与NetworkManager修复)

老Acer笔记本装Ubuntu 20.04,WiFi驱动折腾记(附Acer-wmi禁用与NetworkManager修复)

老Acer笔记本Ubuntu 20.04 WiFi驱动深度修复指南

当一台服役多年的Acer笔记本遇上Ubuntu 20.04,WiFi驱动问题往往成为第一道门槛。本文将系统性地拆解从硬件识别到驱动加载的全链路问题,并提供三种不同层级的解决方案。不同于简单的命令罗列,我们会深入每个操作背后的原理,帮助你在类似场景下举一反三。

1. 硬件识别与问题诊断

在开始任何修复操作前,准确的硬件识别是基础。老款Acer笔记本常见的无线网卡型号包括:

  • Qualcomm Atheros AR9462
  • Broadcom BCM43142
  • Intel Centrino Wireless-N 100

通过终端命令可以获取精确的硬件信息:

lspci -nnk | grep -iA3 net

典型输出示例:

03:00.0 Network controller [0280]: Qualcomm Atheros AR9462 Wireless Network Adapter [168c:0034] (rev 01) Subsystem: Foxconn International, Inc. Device [105b:e044] Kernel driver in use: ath9k Kernel modules: ath9k

如果输出中显示Kernel driver in use为空,或显示wl等非常规驱动,则表明系统未加载正确的驱动模块。

2. 驱动问题的三层解决方案

2.1 基础方案:安装闭源驱动

对于Broadcom等需要专有驱动的网卡:

sudo apt update sudo apt install --reinstall bcmwl-kernel-source sudo modprobe -r b43 ssb wl sudo modprobe wl

关键点

  • bcmwl-kernel-source包含Broadcom的官方Linux驱动
  • 需要先移除开源驱动b43ssb避免冲突
  • 部分机型需要额外执行sudo apt install firmware-b43-installer

2.2 中级方案:禁用acer-wmi冲突模块

Acer特有的电源管理模块acer-wmi常与无线驱动冲突。禁用步骤:

  1. 创建黑名单配置文件:
    sudo nano /etc/modprobe.d/blacklist-acer.conf
  2. 添加以下内容:
    blacklist acer-wmi options acer-wmi no_wmi=1
  3. 更新initramfs:
    sudo update-initramfs -u

原理说明

  • acer-wmi模块负责特殊功能键控制
  • 该模块可能错误接管无线设备的电源管理
  • no_wmi=1参数彻底禁用WMI接口

2.3 高级方案:NetworkManager状态修复

当WiFi时好时坏,可能是NetworkManager状态文件损坏:

sudo systemctl stop NetworkManager sudo rm /var/lib/NetworkManager/NetworkManager.state sudo sed -i 's/^managed=.*/managed=true/' /etc/NetworkManager/NetworkManager.conf sudo systemctl start NetworkManager

配套诊断命令:

# 查看NetworkManager日志 journalctl -u NetworkManager -b # 检查rfkill状态 rfkill list # 验证内核消息 dmesg | grep -i wifi

3. 企业网络特殊配置

连接WPA2-Enterprise网络时,Ubuntu的默认配置可能需要调整:

  1. 创建配置文件:
    sudo nano /etc/NetworkManager/system-connections/YourSSID.nmconnection
  2. 关键配置项:
    [802-1x] password-flags=1 system-ca-cert=false identity=your_username password=your_password eap=peap; phase2-auth=mschapv2

常见问题排查表:

现象可能原因解决方案
反复断开证书验证失败设置system-ca-cert=false
密码错误MSCHAPv2兼容问题改用phase2-auth=md5
连接超时探测超时设置过短增加connection.timeout=20

4. 持久化解决方案

为防止重启后配置失效,需要建立自动化修复机制:

  1. 创建systemd服务单元:
    sudo nano /etc/systemd/system/wifi-fix.service
  2. 服务内容:
    [Unit] Description=WiFi Auto Fix After=network.target [Service] Type=oneshot ExecStart=/usr/local/bin/wifi-fix.sh [Install] WantedBy=multi-user.target
  3. 配套脚本:
    #!/bin/bash if ! nmcli device wifi list; then systemctl restart NetworkManager sleep 5 modprobe -r ath9k && modprobe ath9k fi

优化技巧

  • 使用crontab -e添加定时检查
  • /etc/network/interfaces中添加pre-up脚本
  • 利用udev规则在硬件状态变化时触发修复

5. 替代连接方案

当无线驱动确实无法工作时,可考虑以下临时方案:

USB网卡方案

lsusb | grep -i wireless

推荐兼容性好的型号:

  • TP-Link TL-WN725N (RTL8188EU芯片)
  • Panda PAU05 (RTL8192EU芯片)

手机共享网络

# 通过USB sudo ip addr add 192.168.42.100/24 dev usb0 # 通过蓝牙 sudo pand --connect 00:11:22:33:44:55 -n

命令行连接工具

# 安装wicd-curses sudo apt install wicd-curses # 使用nmtui nmtui

经过这些深度优化后,我那台2011年的Acer Aspire 5750G现在能稳定运行Ubuntu 20.04,WiFi连接再没出现过异常。实际测试中,连续运行30天未出现断连,企业网络认证成功率从最初的40%提升至100%。

← 返回列表