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

ger*_*ijk 60 wireless drivers

在这个站点上,我看到数百个甚至上千个关于 Ubuntu 未检测/识别的无线 LAN 适配器问题的问题。一些主流适配器在 Linux 支持中似乎完全被破坏,而其他一些只需要一些简单的步骤即可使其工作。

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

什么被认为是“最佳实践”?在时间、精力和对我的 Ubuntu 安装的风险最小方面,尝试什么顺序是最有效的?请帮我节省时间并指导我一步一步地做什么。

ger*_*ijk 80

此答案仅涵盖完全无功能的无线局域网。这与稳定性/性能问题或半工作情况无关。但是,如果您遇到这些步骤并寻找其他选项,某些步骤可能会有所帮助。

准备

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

  1. 将机器连接到互联网。这使得执行的步骤很多更容易使用,剪贴板的行动。

    如果另一个网卡正在工作,这应该很容易。如果此时您唯一的卡出现故障,请寻找替代方案并发挥创意,例如使用 USB 有线网络适配器或从朋友或邻居借来的替代工作 WiFi 适配器。

  2. 确保您已安装以下软件包:lshw, rfkill.

  3. 更新您的系统。通过安装所有最新(常规)系统更新,开发人员在发布后已经发布的错误修复程序应该在您的 PC 上这样做。之后不要忘记重新启动系统。另请参阅如何更新 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
    
    Run Code Online (Sandbox Code Playgroud)
    • 如果你看到yesHard blocked:请参考您的笔记本电脑的使用手册以硬件开关的无线局域网。
    • 如果您看到:笔记本yes上的Soft blocked热键可能有助于激活它,以及点击网络管理器小程序中的“启用无线”。如果无法删除软块,请运行sudo rfkill unblock all
    • 如果您没有看到列出的任何终止开关:这可能不适用于您的设备。通常只有移动 PC 配备了终止开关。
  3. 仅适用于 USB 设备:排除 USB 级别的问题。

    • 最好尝试将一个直接连接到主板上,避免使用集线器或计算机机箱的连接器。
    • 尝试使用其他类型的 USB 端口(例如 USB2.0 而不是 USB3.0 端口)。
    • 转到识别确切的硬件,看看在插入设备时是否可以看到一些错误消息。
    • 尝试使用另一条您验证过的电缆(如果有)。

安装(更新)驱动程序

这些是一些显而易见的、理智的和无害的步骤,避免在可能的情况下避免的事情中列出的步骤。

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

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

    • 请确保您已启用multiverse,张贴在如何使“多元宇宙”库?
    • 安装linux-firmwarelinux-firmware-nonfree软件包,例如sudo apt-get install linux-firmware linux-firmware-nonfree并重新启动。
  3. 尝试从 compat-wireless 包向后移植内核模块(驱动程序)。Ubuntu 为具有稳定发行版的内核(自 11.10 Oneiric Ocelot 起可用)提供了较新的 Linux 内核版本的 compat-wireless 软件包。

    • 通过使用您最喜欢的包管理工具进行搜索,找到可用的最新版本。在撰写本文时,这是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引导至您的新内核。

  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
      
      Run Code Online (Sandbox Code Playgroud)
    • 最后,重新启动到您的新内核。

    • 如果新内核不适合您或引入其他问题,请使用旧内核启动您的系统(例如Shift,在早期启动阶段按住以在 Grub 菜单中选择它),然后使用您的包管理删除包,例如sudo apt-get remove linux-\*3.7.1\*.

确定确切的硬件

您拥有的产品可能是使用与您的问题完全无关的零售名称出售的。大多数供应商只使用来自 Broadcom、Atheros、Ralink 或 Intel 等制造商的芯片组,而产品本身可能不带有这个名称。这方面的一个例子:ThinkPad 11a/b/g/n Wireless LAN Mini Express Adapter实际上可能只是一个Atheros AR5418. Thinkpad 更名通常不会影响 Linux 中的硬件支持,但使用的芯片组会影响。因此,识别芯片组非常重要。

  • PCI 和集成设备(例如移动 PC):

    lspci -nn | grep -i network
    
    Run Code Online (Sandbox Code Playgroud)
  • USB设备:

    lsusb
    
    Run Code Online (Sandbox Code Playgroud)

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

    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 -------^^^^
Run Code Online (Sandbox Code Playgroud)

使用 Google 的提示

  • 使用由发出的命令标识的数字产品/供应商 ID。
  • 使用linux与它的关键词,而不是Ubuntu
  • 尝试使用识别确切硬件步骤中输出中列出的设备芯片组名称。示例:AR9285, BCM4311, Intel+ 6300
  • 避免使用与硬件支持无关的关键字。例如,您的桌面环境是不相关的,因此使用Ubuntu代替Lubuntu
  • 尽量对有关您设备的“一般”信息保持敏感,而不是专注于特定解决方案,例如“此设备需要固件”,或用户报告说它在以前的版本中开箱即用。

我对所有选项都不走运。我应该在新问题中提供什么?

在发布新问题之前,请使用识别确切硬件 中的关键字搜索此站点

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

如果可能的话应该避免的事情

  • 从源代码编译(例如运行make, sudo make install)。

    • 这可能会覆盖系统文件并混淆您的包管理。以这种方式安装可能有效,但如果包管理更新再次覆盖文件,则可能会在以后随时中断。
    • 它可能会导致意外错误,这对于新手用户来说可能很难解决。
    • 如果您想恢复您的操作,很难撤消所做的所有更改sudo make install
  • Ndiswrapper 方法。

    • 这种围绕 Windows 驱动程序的“包装器”只能作为最后的手段来尝试,因为在 Linux 上为硬件驱动程序模拟 Windows 环境是非常低效的。
    • 稳定性和性能通常报告为低。

需要特别照顾的硬件

  • Broadcom BCM43xx 设备。请参阅此答案以获取有关使这些设备工作的不错教程。


归档时间:

查看次数:

311486 次

最近记录:

5 年,5 月 前