我的 WiFi 适配器根本无法工作,如何排除故障?

我的 WiFi 适配器根本无法工作,如何排除故障?

在这个网站上,我看到数百甚至上千个问题,都是关于 Ubuntu 无法检测/识别无线 LAN 适配器的问题。一些主流适配器似乎完全不支持 Linux,而其他适配器只需要一些简单的步骤就可以正常工作。

让它工作的选项似乎无限多,我不知道从哪里开始!

什么被认为是“最佳实践”?在时间和精力方面,尝试哪些事情的顺序最有效,并且对我的 Ubuntu 安装造成的风险最小?请帮助我节省时间并逐步指导我该怎么做。

答案1

本答案仅涵盖完全无功能的无线局域网。不是稳定性/性能问题,或半工作情况。然而,一些步骤可能如果您遇到这些问题并正在寻找其他选择,这将有所帮助。

准备

在此回答中,我假设您至少熟悉以下任务:在终端中运行命令并安装常规 Ubuntu 软件包。如果您不熟悉这些基本步骤,请开始阅读

  1. 将机器连接到互联网。这使得执行以下步骤很多更容易并使用剪贴板执行操作。

    如果另一张网卡可以正常工作,那么这应该很容易。如果此时你唯一的卡出现故障,请找到替代方案并发挥创造力,例如使用 USB 有线网络适配器或从朋友或邻居那里借来的备用 WiFi 适配器。

  2. 确保您已经安装了以下软件包:lshwrfkill

  3. 更新您的系统。通过安装所有最新的(常规)系统更新,开发人员在发布后发布的错误修复应该会保存在您的电脑上。之后别忘了重新启动系统。另请参阅如何更新 Ubuntu?

    应用所有更新后,重新启动。此时它可能已经可以正常工作。如果不行,请继续。

这真的是驱动程序的问题吗?

首先,应该确定卡是否未被识别和/或是否有无线电终止开关阻止其工作。关注所有步骤因为您的问题可能有两方面或三方面:

  1. sudo lshw -C network在终端中运行。

    您可能需要lshw先安装。

    • 如果列出了多个设备,请找到相关的设备。
    • 如果被列为*-network UNCLAIMED,则应按照安装(较新的)驱动程序
    • 如果将其列为*-network(没有“无人认领”),则以下有关驱动程序的输出可能与后续步骤相关,例如configuration: broadcast=yes driver=iwlwifi
    • 如果您的设备根本没有列出,请尝试识别精确的硬件
  2. rfkill list在终端中运行。这将列出无线电终止开关的状态。示例输出:

    1: phy0: Wireless LAN
            Soft blocked: no
            Hard blocked: no
    
    • 如果您看到yesHard blocked请参阅笔记本电脑手册以了解无线局域网的硬件开关。
    • 如果您看到yesSoft blocked笔记本电脑上的热键可能有助于激活它,以及在网络管理器小程序中点击“启用无线”。如果这无法删除软阻止,请运行sudo rfkill unblock all
    • 如果您没有看到任何列出的终止开关:这可能不适用于您的设备。通常只有移动 PC 才配备终止开关。
  3. 仅适用于 USB 设备:排除 USB 级别的问题。

    • 最好尝试将其直接连接到主板,避免使用集线器或计算机机箱的连接器。
    • 尝试使用其他类型的 USB 端口(例如,使用 USB2.0 端口而不是 USB3.0 端口)。
    • 识别精确的硬件看看当您插入设备时是否会看到一些错误消息。
    • 尝试另一根您已确认可以正常工作的电缆(如果有)。

安装(较新的)驱动程序

这些是一些明显、理智且无害的步骤,可以避免应尽量避免的事情

  1. 尝试查看 Ubuntu 是否建议安装其他驱动程序。请参阅如何安装附加驱动程序?有关如何执行此操作的更多信息。

  2. 安装额外的固件,因为您的硬件可能需要它。

  3. 尝试使用 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-genericPrecise。然后重新启动。

    如果您正在运行 LTS 版本(例如 Precise 或 Lucid),所有后续版本的反向移植内核都以软件包形式提供。在撰写本文时,Quantal 是 Precise 之后的最新版本,并且该软件包可以linux-image-generic-lts-quantal引导到您的新内核中。

  4. 从现在开始,您应该考虑尝试较新版本的 Ubuntu,看看它是否已获得对您的硬件的支持,只需从 Live CD/USB 启动即可。还可以考虑尝试最新的 Ubuntu+1 Beta/RC。如果它确实有效,最简单的方法就是等待新版本。

  5. 有些硬件在默认安装时完全损坏,通常是因为供应商不发布(所有)源代码或不允许通过 Ubuntu 重新分发所有必需的模块。请参阅需要特别注意的硬件底部的部分查看您的设备(芯片组)是否列出。

  6. 尝试最新的稳定 Linux 内核。这是一种危害较小的方法并且可能会破坏其他东西。这应该不是必需的,因为较早选项中的 compat-wireless 包提供了较新的无线驱动程序。但是,它可能只是稍微新一点,因此包含一个可以帮助您的错误修复。

    • 下载kernel.ubuntu.com部分并确定最新的稳定版本(例如v3.7.1-raring在撰写本文时)。
    • 下载.deb适合您的体系结构的所有文件(例如amd64i386),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
    

    如果您无法从此列表中识别它:

    1. 拔下设备插头。
    2. 打开终端并运行sudo tail -n 0 -f /var/log/syslog
    3. 重新插入设备并给内核/设备几秒钟的时间进行初始化。
    4. Ctrl+停止命令C。输出应该有助于从列表中识别它。
    5. 检查输出中是否提到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。
  • 使用linuxwith 作为关键字,而不是Ubuntu
  • 尝试使用步骤输出中列出的设备芯片组名称识别精确的硬件. 例如:AR9285BCM4311Intel+ 6300
  • 避免使用与硬件支持无关的关键字。例如,您的桌面环境与硬件支持无关,因此请使用Ubuntu而不是Lubuntu
  • 尝试对设备的“一般”信息保持敏感,而不是专注于特定的解决方案,例如“此设备需要固件”,或用户报告它在以前的版本中开箱即用。

我尝试了所有选项,但都没有成功。我应该在新问题中提供什么?

在发布新问题之前,站内搜索使用来自的关键字识别精确的硬件

  • 此答案中的选项的所有相关(意外或错误)输出。
  • 完成的步骤的相关输出识别精确的硬件部分。
  • 您正在运行的内核以及您尝试过的版本。使用该uname -r命令来识别您的内核版本。
  • 您尝试过的其他 Ubuntu 版本。

应尽量避免的事情

  • 从源代码编译(例如运行makesudo 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 适配器(以及触摸板)现在都可以开箱即用。

相关内容