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

日记详情

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

保姆级教程:装完Ubuntu20.04没WiFi?手把手教你搞定驱动和内核更新

保姆级教程:装完Ubuntu20.04没WiFi?手把手教你搞定驱动和内核更新

双系统用户必备:Ubuntu 20.04无线网络驱动缺失的终极解决方案

当你满怀期待地安装完Ubuntu 20.04双系统,准备开始Linux之旅时,最令人沮丧的莫过于发现WiFi功能无法使用。这种"数字断网"的状态让你既无法更新系统,也不能安装必要软件。本文将深入剖析这一问题的根源,并提供一套从Windows端准备到Ubuntu端执行的完整解决方案。

1. 问题诊断:为什么新装Ubuntu没有WiFi?

Ubuntu安装后缺少无线网络驱动的情况相当普遍,尤其是较新的笔记本电脑。这种现象背后有几个关键原因:

硬件兼容性时间差:Ubuntu 20.04发布于2020年4月,其内核版本(5.4)可能无法识别2020年后发布的新款无线网卡。这种"时间差"在Linux发行版中很常见。

厂商驱动支持优先级:许多硬件厂商优先开发Windows驱动,Linux驱动往往滞后或需要社区反向工程实现。特别是以下品牌的网卡常遇此问题:

  • Intel AX200/AX201/AX210等WiFi 6系列
  • Realtek 8852AE/8852CE等较新型号
  • Broadcom某些专有芯片

Secure Boot的安全限制:现代UEFI固件的安全启动功能可能会阻止未签名的第三方驱动加载,即使驱动文件已正确安装。

典型症状判断

  • lspci -knn | grep Net -A3命令显示网络控制器,但无Kernel driver in use
  • rfkill list显示无线设备未被硬件屏蔽
  • 网络设置中根本看不到WiFi选项

2. 跨系统作战:从Windows准备驱动文件

由于Ubuntu此时无法联网,我们需要利用双系统优势,从Windows端获取必要文件。以下是详细操作流程:

2.1 确定无线网卡型号

在Windows中:

  1. 右键开始菜单 → 设备管理器
  2. 展开"网络适配器"分支
  3. 记录无线网卡的具体型号(如Intel(R) Wi-Fi 6 AX201 160MHz)

2.2 获取正确的Linux驱动

根据网卡型号选择获取方式:

Intel无线网卡: 访问[Intel Linux无线驱动]官方页面,下载对应版本的驱动包(.tar.gz格式)。较新型号可能需要下载backport-iwlwifi驱动。

Realtek无线网卡: 在GitHub搜索"rtl88xxau"或"rtl88x2bu"等关键词,找到社区维护的驱动仓库。推荐选择star数高、近期有更新的项目。

Broadcom无线网卡: Ubuntu官方仓库提供bcmwl-kernel-source包,但需要预先下载好deb文件。

重要提示:下载驱动时务必确认兼容Ubuntu 20.04和内核版本5.4。错误的驱动版本可能导致系统不稳定。

2.3 创建跨系统共享文件夹

为了将驱动文件传输到Ubuntu,我们有几种可靠方案:

方法一:NTFS共享分区

  1. 在Windows磁盘管理中创建一个NTFS格式分区(如1GB大小)
  2. 将下载的驱动文件复制到此分区
  3. 在Ubuntu中通过"其他位置"访问该NTFS分区

方法二:U盘中转

  1. 格式化为FAT32或exFAT文件系统(Ubuntu原生支持)
  2. 拷贝驱动文件后安全弹出
  3. 在Ubuntu中自动挂载访问

方法三:手机MTP连接

  1. 通过USB将Android手机连接到Windows,传输文件
  2. 同一手机再连接到Ubuntu,通过MTP协议访问文件

3. Ubuntu端的驱动安装实战

获取驱动文件后,切换到Ubuntu系统进行关键操作。以下是针对不同驱动类型的安装指南:

3.1 安装.deb驱动包

对于已打包好的.deb文件(如Broadcom驱动):

cd ~/Downloads # 假设驱动文件在此目录 sudo dpkg -i *.deb sudo apt --fix-broken install # 处理可能的依赖问题

3.2 编译安装源码驱动

对于.tar.gz源码包(常见于Realtek驱动):

# 安装编译工具链 sudo apt update && sudo apt install build-essential dkms linux-headers-$(uname -r) # 解压并编译 tar -xzvf driver.tar.gz cd driver_source/ make sudo make install sudo modprobe -v <driver_module> # 加载新驱动

3.3 内核更新方案

如果驱动需要更高版本内核,可手动安装主线内核:

# 下载5.13+内核deb包 wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.13/amd64/linux-headers-5.13.0-051300-generic_5.13.0-051300.202107112130_amd64.deb # 安装内核 sudo dpkg -i *.deb sudo update-grub

警告:内核升级有风险,建议先备份重要数据。某些专有驱动(如NVIDIA)可能需要重新安装。

4. 疑难排解与进阶配置

即使按照上述步骤操作,仍可能遇到各种"拦路虎"。以下是常见问题解决方案:

4.1 Secure Boot阻止驱动加载

当出现Required key not available错误时,需要处理Secure Boot:

  1. 重启进入BIOS,完全禁用Secure Boot(推荐)
  2. 或为驱动签名(较复杂):
sudo apt install mokutil sudo mokutil --import /path/to/public_key.der

4.2 驱动冲突处理

有时系统会加载错误驱动,需要手动指定:

# 列出所有网络模块 lsmod | grep wifi # 移除冲突驱动 sudo modprobe -r <wrong_driver> # 加载正确驱动 sudo modprobe <correct_driver>

4.3 永久生效设置

为防止重启后驱动失效,需要更新initramfs:

sudo update-initramfs -u

并检查/etc/modules文件是否包含所需模块名。

5. 预防措施与长期维护

为避免今后重装系统时再次遭遇网络困境,建议采取以下预防措施:

创建驱动恢复U盘

  1. 将常用驱动.deb文件、编译工具链和安装脚本存入U盘
  2. 包含一个README文件说明安装步骤
  3. 定期更新驱动版本

维护本地软件源

# 在有网络的环境中下载常用软件 apt-get download $(apt-rdepends <package> | grep -v "^ ")

内核兼容性检查技巧

  • 购买USB无线网卡时选择Linux友好型号(如TP-Link TL-WN725N)
  • 在Ubuntu认证硬件数据库查询兼容性
  • 考虑LTS版本的内核更新(如HWE内核)

掌握这些技能后,你不仅能解决当前的网络问题,还能建立起应对各种Linux硬件兼容性挑战的系统方法。这种问题解决能力正是Linux用户成长的必经之路。

← 返回列表