修复:为什么 Linux 没有检测到我的 Wi-Fi 适配器?

曾经在笔记本电脑上安装 Linux,重启后发现它看不到你的 Wi-Fi 卡? 它很泄气。 试试这些提示。 他们中的一个或多个可能只是让它工作。

Linux 和 Wi-Fi:爱恨交织

从历史上看,Linux 与 Wi-Fi 卡的关系有些紧张。 近年来,情况发生了很大的变化——而且变得更好了——但是当你意识到你没有 Wi-Fi 时,仍然有可能启动你的新 Linux 安装并获得那种下沉的感觉。

安装例程非常擅长识别目标计算机的各种组件并将其自身配置为与该硬件一起使用。 但问题仍然可能发生。

对硬件问题进行故障排除很困难,尤其是当您手头仅有的计算机是损坏的设备时。 显然,并非此处介绍的所有内容都适用于所有情况。 但希望下面的内容可以解决您的问题或为您指明正确的方向。

安装之前

做一些研究。 大多数发行版都有支持的硬件列表。 在他们的论坛上询问其他人是否使用与您打算使用的笔记本电脑相同品牌和型号的笔记本电脑。 他们有什么问题吗?如果有,他们是怎样解决的?

为了更好地了解您将面临的情况,请从您打算分发的最新版本的 Live USB 或 Live CD 启动您的笔记本电脑。 然后,您可以确保它按您期望的那样工作,而无需相信安装。

检查屏幕分辨率和图形、鼠标垫和手势以及 Wi-Fi 连接等内容。 如果它们在实时环境中工作,它们应该在您安装发行版时工作。 如果其中任何一个都不起作用,请尝试使用其他发行版的 Live CD。 你可能会得到不同的结果。 如果是这样,你能找出原因吗? 也许他们使用更新的内核,或者他们将驱动程序与他们的安装捆绑在一起。

使用我们在本文中向您展示的命令,您可以识别笔记本电脑内的 Wi-Fi 硬件。 有了这些知识,您就可以进行一些网络搜索。 如果你幸运的话,你的 Wi-Fi 卡将是一张可以正常工作的卡。 如果没有,您可能需要使用我们在本文中描述的一些技术。

查找您需要中断启动顺序并进入笔记本电脑的 BIOS 的组合键。 你可能不需要它,但如果你这样做了,你会很高兴你提前发现了它。 它通常是以下之一:Esc、F2、F5 或 F10。 在许多笔记本电脑上,您需要同时按住“Fn”按钮。 确保您知道进入笔记本电脑 BIOS 的密钥是什么。

计划好如果 Wi-Fi 没有立即出现,你会怎么做。 您可以使用有线连接将笔记本电脑接入互联网吗? 如果没有,您是否可以访问另一台计算机? 你可以连接到你的手机并用它来访问互联网吗?

寻找简单的陷阱

直接跳入深渊并开始调查复杂的根本原因很容易,但不要忽视简单的事情。

一些笔记本电脑具有禁用 Wi-Fi 的物理外部开关(通常是滑块)。 这些通常经过精心伪装,旨在融入笔记本电脑的机身。 无论您在操作系统中做什么,意外地将其中一个滑到“关闭”位置都会阻止 Wi-Fi 工作。

也可以从 BIOS 禁用 Wi-Fi。 重新启动笔记本电脑并进入 BIOS。 找到网络或 Wi-Fi 部分,并确保已启用 Wi-Fi。

让引导顺序继续。 通过单击 GNOME 状态栏的右端(或桌面环境中网络设置所在的任何位置)登录并打开系统菜单。 如果有标题为“Wi-Fi Off”的菜单项,请单击它。

从展开的菜单选项中,选择“打开”。

扩展了 Wi-Fi 选项的系统菜单

菜单将 close. 重新打开它,然后选择“设置”。

突出显示“设置”选项的系统菜单

在设置应用程序中,从侧边栏中选择 Wi-Fi,并确保顶部栏中的滑块处于“打开”状态,而飞行模式滑块处于“关闭”状态。 然后选择要连接的 Wi-Fi 网络。

设置应用程序 Wi-Fi 窗格

如果您没有看到任何这些选项,则操作系统无法识别您的网卡。

解决问题

现在我们确定我们没有错过任何基本修复,让我们深入了解 Wi-Fi 卡故障排除的细节。

任何类型的网络都可以运行吗?

如果您在笔记本电脑上有以太网连接,并且您可以使用有线连接进行连接,那么您的笔记本电脑上的网络就可以运行了。 只是 Wi-Fi 无法正常工作。 如果您没有以太网端口,您可能仍然对以太网适配器抱有希望。

如果您无法通过有线连接获得连接,则说明计算机的网络功能有问题。 尝试让您的笔记本电脑自行 ping。

ping localhost
ping 127.0.0.1

使笔记本电脑自行ping通

如果这些都不起作用,则您的网络管理器可能丢失或损坏。 尝试重新安装它。 如果它已经安装,这将安装它或替换它。

在 Ubuntu 上键入:

sudo apt install network-manager

上 Fedora 利用:

sudo dnf install network-manager

在 Manjaro 上,命令是:

sudo pacman -Sy network-manager

重新启动,看看是否可以改善这种情况。

识别 Wi-Fi 卡硬件

如果您仍然没有 Wi-Fi,我们需要识别 Wi-Fi 卡硬件。 这 lspci 命令将列出您的所有 PCI 设备。

lspci

列出笔记本电脑中的 PCI 设备

查找描述中带有“无线”或“wi-fi”的条目。

lspci 命令结果中的 Wi-Fi 卡条目

在这台笔记本电脑上,它是 Realtek RTL8723BE。 我们还可以使用 nmcli 命令,包括网络接口标识符。

nmcli

网络管理器 CLI 命令

我们的无线接口 wlan0 显示为不可用,但它仍然为我们识别硬件。

nmcli 结果中的 Wi-Fi 卡和网络接口标识符

此条目显示为“软件已禁用”,因为我们已关闭 Wi-Fi 卡以模拟故障。 在现实世界的场景中,此处的消息可能会为您提供有关问题是什么或可能与什么相关的线索。

尝试将卡上线

iw 命令有时可以证明是有用的。 代替 wlan0 为您的计算机上的适当接口。

iw dev wlan0 link

显示 wlan0 接口的 iw 命令未连接

我们被告知接口未连接。 让我们试着提出来。

sudo ip link set wlan0 up

RF-kill 识别为阻止 Wi-Fi 卡运行

我们被告知无法建立网络连接,因为 rfkill . 这是一个强制阻止射频网络接口运行的实用程序。 我们可以让它向我们展示它正在阻止什么。

rfkill list

显示 Wi-Fi 卡的 rfkill 命令被软件阻止

我们可以告诉它解锁任何被阻止的东西。 请注意,如果该卡被列为硬阻塞,则表示笔记本电脑上有一个物理开关需要设置为“开”位置。 让我们删除软件块。

rfkill unblock wifi
rfkill list

使用 rkill 解锁 Wi-Fi 卡

在我们的例子中,这似乎已经解决了这个问题。 如果您的问题仍然存在,则很可能是驱动程序模块问题。

检查驱动程序

我们可以使用以下命令检查正在使用的驱动程序 lspci 命令,与 -k (内核驱动程序)选项。

lspci -k

列出内核驱动程序和模块

我们的无线网卡使用“rtl8723be”驱动和内核模块。

Wi-Fi 卡内核驱动程序和模块

我们可以通过使用搜索系统日志来检查是否正在加载 dmesggrep . 用您计算机的模块名称替换“rtl8723be”。

sudo dmesg | grep rtl8723be

系统日志中的 Wi-Fi 卡驱动程序条目

如果您没有看到驱动程序已加载的积极迹象,请查看您的发行版的网站和在线帮助,并搜索有关怎样从您的发行版下载驱动程序的说明。 发行版通常捆绑了您可能可以使用的常见驱动程序包,并且它们很可能具有特定于发行版的应用程序,以使加载新驱动程序变得简单。

如果您找不到从您的发行版的包管理器或网站获取驱动程序的方法,您可以查看 支持的无线网卡列表,然后在列表中找到您的卡硬件。

在已知 Linux Wi-Fi 驱动程序列表中与我们的 Realtek Wi-Fi 卡最接近的匹配项

单击 Wi-Fi 卡的型号(或最接近的匹配)会将您带到特定于卡的页面。 此页面将列出该硬件版本系列中的所有卡。 查看您的卡是否在此处列出。

在我们的例子中,我们点击了“rtl8723ae”链接,它给了我们一个页面,上面也列出了 rtl8723be。

与我们的卡硬件完全匹配

页面底部是“固件”标题下的链接。

下载页面的链接

这会将您带到固件的 git 存储库页面。 使用 git clone 命令和页面底部列出的位置之一以下载存储库。 我们用了:

git clone git://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git

克隆 git 存储库

在(大)下载的目录树中,您应该找到适合您硬件的驱动程序文件。

下载的存储库目录树中的驱动程序文件

有关怎样最好地加载它,请参阅您的发行版的说明。

使用您的社区

与 Linux 发行版相关的社区是 Linux 的最大优势之一。 在您选择的发行版的社区中寻求帮助。 其他人经历过你正在与之斗争的同样事情的可能性很高。