![我的 WiFi 适配器根本无法工作,如何排除故障?](https://linux22.com/image/965156/%E6%88%91%E7%9A%84%20WiFi%20%E9%80%82%E9%85%8D%E5%99%A8%E6%A0%B9%E6%9C%AC%E6%97%A0%E6%B3%95%E5%B7%A5%E4%BD%9C%EF%BC%8C%E5%A6%82%E4%BD%95%E6%8E%92%E9%99%A4%E6%95%85%E9%9A%9C%EF%BC%9F.png)
在这个网站上,我看到数百甚至上千个问题,都是关于 Ubuntu 无法检测/识别无线 LAN 适配器的问题。一些主流适配器似乎完全不支持 Linux,而其他适配器只需要一些简单的步骤就可以正常工作。
让它工作的选项似乎无限多,我不知道从哪里开始!
什么被认为是“最佳实践”?在时间和精力方面,尝试哪些事情的顺序最有效,并且对我的 Ubuntu 安装造成的风险最小?请帮助我节省时间并逐步指导我该怎么做。
答案1
本答案仅涵盖完全无功能的无线局域网。不是稳定性/性能问题,或半工作情况。然而,一些步骤可能如果您遇到这些问题并正在寻找其他选择,这将有所帮助。
准备
在此回答中,我假设您至少熟悉以下任务:在终端中运行命令并安装常规 Ubuntu 软件包。如果您不熟悉这些基本步骤,请开始阅读这和这。
将机器连接到互联网。这使得执行以下步骤很多更容易并使用剪贴板执行操作。
如果另一张网卡可以正常工作,那么这应该很容易。如果此时你唯一的卡出现故障,请找到替代方案并发挥创造力,例如使用 USB 有线网络适配器或从朋友或邻居那里借来的备用 WiFi 适配器。
确保您已经安装了以下软件包:
lshw
,rfkill
。更新您的系统。通过安装所有最新的(常规)系统更新,开发人员在发布后发布的错误修复应该会保存在您的电脑上。之后别忘了重新启动系统。另请参阅如何更新 Ubuntu?
应用所有更新后,重新启动。此时它可能已经可以正常工作。如果不行,请继续。
这真的是驱动程序的问题吗?
首先,应该确定卡是否未被识别和/或是否有无线电终止开关阻止其工作。关注所有步骤因为您的问题可能有两方面或三方面:
sudo lshw -C network
在终端中运行。您可能需要
lshw
先安装。- 如果列出了多个设备,请找到相关的设备。
- 如果被列为
*-network UNCLAIMED
,则应按照安装(较新的)驱动程序。 - 如果将其列为
*-network
(没有“无人认领”),则以下有关驱动程序的输出可能与后续步骤相关,例如configuration: broadcast=yes driver=iwlwifi
- 如果您的设备根本没有列出,请尝试识别精确的硬件。
rfkill list
在终端中运行。这将列出无线电终止开关的状态。示例输出:1: phy0: Wireless LAN Soft blocked: no Hard blocked: no
- 如果您看到
yes
:Hard blocked
请参阅笔记本电脑手册以了解无线局域网的硬件开关。 - 如果您看到
yes
:Soft blocked
笔记本电脑上的热键可能有助于激活它,以及在网络管理器小程序中点击“启用无线”。如果这无法删除软阻止,请运行sudo rfkill unblock all
。 - 如果您没有看到任何列出的终止开关:这可能不适用于您的设备。通常只有移动 PC 才配备终止开关。
- 如果您看到
仅适用于 USB 设备:排除 USB 级别的问题。
- 最好尝试将其直接连接到主板,避免使用集线器或计算机机箱的连接器。
- 尝试使用其他类型的 USB 端口(例如,使用 USB2.0 端口而不是 USB3.0 端口)。
- 去识别精确的硬件看看当您插入设备时是否会看到一些错误消息。
- 尝试另一根您已确认可以正常工作的电缆(如果有)。
安装(较新的)驱动程序
这些是一些明显、理智且无害的步骤,可以避免应尽量避免的事情。
尝试查看 Ubuntu 是否建议安装其他驱动程序。请参阅如何安装附加驱动程序?有关如何执行此操作的更多信息。
安装额外的固件,因为您的硬件可能需要它。
- 确保您已
multiverse
启用如何启用“多元宇宙”存储库? - 安装
linux-firmware
和linux-firmware-nonfree
包,例如sudo apt-get install linux-firmware linux-firmware-nonfree
并重新启动。
- 确保您已
尝试使用 compat-wireless 软件包中的反向移植内核模块(驱动程序)。Ubuntu 为稳定发行版的内核提供了较新 Linux 内核版本的 compat-wireless 软件包(自 11.10 Oneiric Ocelot 起可用)。
- 使用您最喜欢的包管理工具搜索,找到最新的可用包。在撰写本文时,这是
linux-backports-modules-cw-3.6-quantal-generic
针对 Quantal 的。在不久的将来,3.7
可能会推出一个包。 - 安装它,例如
sudo apt-get install linux-backports-modules-cw-3.6-quantal-generic
用于 Quantal 或sudo apt-get install linux-backports-modules-cw-3.6-precise-generic
Precise。然后重新启动。
如果您正在运行 LTS 版本(例如 Precise 或 Lucid),所有后续版本的反向移植内核都以软件包形式提供。在撰写本文时,Quantal 是 Precise 之后的最新版本,并且该软件包可以
linux-image-generic-lts-quantal
引导到您的新内核中。- 使用您最喜欢的包管理工具搜索,找到最新的可用包。在撰写本文时,这是
从现在开始,您应该考虑尝试较新版本的 Ubuntu,看看它是否已获得对您的硬件的支持,只需从 Live CD/USB 启动即可。还可以考虑尝试最新的 Ubuntu+1 Beta/RC。如果它确实有效,最简单的方法就是等待新版本。
有些硬件在默认安装时完全损坏,通常是因为供应商不发布(所有)源代码或不允许通过 Ubuntu 重新分发所有必需的模块。请参阅需要特别注意的硬件底部的部分查看您的设备(芯片组)是否列出。
尝试最新的稳定 Linux 内核。这是一种危害较小的方法并且可能会破坏其他东西。这应该不是必需的,因为较早选项中的 compat-wireless 包提供了较新的无线驱动程序。但是,它可能只是稍微新一点,因此包含一个可以帮助您的错误修复。
- 去下载
kernel.ubuntu.com
部分并确定最新的稳定版本(例如v3.7.1-raring
在撰写本文时)。 - 下载
.deb
适合您的体系结构的所有文件(例如amd64
或i386
),加all
名称中包含 的那些。 通过执行以下命令一次性安装所有命令:
cd Downloads sudo dpkg -i linux-headers-3.7.1-030701-generic_3.7.1-12345678_amd64.deb linux-image... # include all
最后,重新启动进入新内核。
- 如果新内核不适合您或引入其他问题,请使用旧内核启动您的系统(例如,Shift在早期启动阶段按住以在 Grub 菜单中选择它),然后使用您的包管理删除软件包,例如
sudo apt-get remove linux-\*3.7.1\*
。
- 去下载
识别精确的硬件
您拥有的产品可能使用与您的问题完全无关的零售名称出售。大多数供应商只使用 Broadcom、Atheros、Ralink 或 Intel 等制造商的芯片组,而产品本身可能不带有此名称。其中一个例子是:ThinkPad 11a/b/g/n 无线局域网迷你高速适配器可能实际上只是一个Atheros AR5418
。Thinkpad 品牌重塑通常不会影响 Linux 中的硬件支持,但使用的芯片组做因此,识别芯片组非常重要。
PCI 和集成设备(例如移动电脑):
lspci -nn | grep -i network
USB 设备:
lsusb
如果您无法从此列表中识别它:
- 拔下设备插头。
- 打开终端并运行
sudo tail -n 0 -f /var/log/syslog
- 重新插入设备并给内核/设备几秒钟的时间进行初始化。
- 按Ctrl+停止命令C。输出应该有助于从列表中识别它。
- 检查输出中是否提到
unable to enumerate USB device
。如果存在这样的输出,则表示您的设备在 USB 级通信方面已出现故障。您可能遇到了硬件问题:检查电缆/连接器是否损坏、电源问题、集线器是否损坏、其他硬件是否损坏。此时不要费心处理驱动程序 - 先修复 USB 通信。
如果您的硬件未列出,这可能与您的适配器无关,而是一个一般的 PCI/USB 总线错误。这被认为超出了 WiFi 问题的范围。请注意,有些笔记本电脑有集成的 WiFi 适配器连接到内部 USB 端口,因此在这种情况下它可能被列为 USB。
示例输出:
$ lsusb
Bus 001 Device 002: ID 8087:0024 Intel Corp. ...
^^^^-- product ID
^^^^------- vendor ID
$ lspci -nn | grep -i network
04:00.0 Network controller [0280]: Intel Corporation [...] [8086:4238] (rev 3e)
vendor ID --^^^^
product ID -------^^^^
使用 Google 的提示
- 使用发出的命令所标识的数字产品/供应商 ID。
- 使用
linux
with 作为关键字,而不是Ubuntu
。 - 尝试使用步骤输出中列出的设备芯片组名称识别精确的硬件. 例如:
AR9285
、BCM4311
、Intel
+6300
。 - 避免使用与硬件支持无关的关键字。例如,您的桌面环境与硬件支持无关,因此请使用
Ubuntu
而不是Lubuntu
。 - 尝试对设备的“一般”信息保持敏感,而不是专注于特定的解决方案,例如“此设备需要固件”,或用户报告它在以前的版本中开箱即用。
我尝试了所有选项,但都没有成功。我应该在新问题中提供什么?
在发布新问题之前,站内搜索使用来自的关键字识别精确的硬件。
- 此答案中的选项的所有相关(意外或错误)输出。
- 完成的步骤的相关输出识别精确的硬件部分。
- 您正在运行的内核以及您尝试过的版本。使用该
uname -r
命令来识别您的内核版本。 - 您尝试过的其他 Ubuntu 版本。
应尽量避免的事情
从源代码编译(例如运行
make
,sudo make install
)。- 这可能会覆盖系统文件并扰乱您的软件包管理。这种方式安装可能有效,但如果软件包管理更新再次覆盖文件,则可能会随时中断。
- 这可能会导致意外错误,而对于新手用户来说,这可能很难解决。
- 很难撤消
sudo make install
如果您想撤销操作,则所做的所有更改。
Ndiswrapper 方法。
- 这种围绕 Windows 驱动程序的“包装器”应该作为最后的手段来尝试,因为在 Linux 上为硬件驱动程序模拟 Windows 环境效率非常低。
- 稳定性和性能通常被认为较低。
需要特别注意的硬件
- Broadcom BCM43xx 设备。请参阅这个答案有关如何使这些设备工作的详细教程。
答案2
在某些计算机(包括 2013 年的 Macbook Air)上,正确的 wifi 驱动程序已包含在内,但由于它们是专有的,因此默认情况下未启用。打开“软件和更新”应用程序,转到“其他驱动程序”选项卡,如果其中列出了适用于您的无线适配器的任何驱动程序,请启用它们并点击应用更改。如果它们是正确的驱动程序,那么您的 wifi 将立即开始工作。
答案3
就我而言,我有一台旧笔记本电脑,上面安装了 Lubuntu 19。已经安装了正确的 wifi 驱动程序。我可以看到所有 wifi 网络,但无法连接到它们。通过电缆连接互联网工作正常。
在尝试了多种方法都未成功解决问题后,我发现一些 (L?)ubuntu 19 用户也遇到了同样的问题,并建议安装 Lubuntu 16,所以我照做了。我的 wifi 适配器(以及触摸板)现在都可以开箱即用。