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

在这个网站上,我看到数百个,如果不是一千个问题被问及无法通过Ubuntu检测/识别无线LAN适配器的问题。 一些主流适配器似乎在Linux支持中完全被破坏,而其他适配器只需要一些简单的步骤来使其工作。

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

什么被认为是’最佳实践’? 在时间,精力和我的Ubuntu安装风险最小的情况下,尝试什么样的事情是最有效的? 请帮我节省时间,一步一步指导我做什么。

此答案仅涵盖完全无function的无线局域网。 不是关于稳定性/性能问题,也不是半工作案例。 但是,如果您遇到它们并寻找其他选项,某些步骤可能会有所帮助。

制备

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

  1. 让机器连接到互联网。 这使得执行这些步骤变得更加容易,并使用剪贴板进行操作。

    如果另一个网卡工作,这应该很容易。 如果您的唯一卡在此时失败,请找到此选项并具有创造性,例如使用USB有线网络适配器或从朋友或邻居借来的替代工作WiFi适配器。

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

  3. 更新您的系统。 通过安装所有最新(常规)系统更新,开发人员在发布后已经发布的错误修复应该在您的PC上进行。 不要忘记之后重启系统。 另请参阅如何更新Ubuntu?

    应用所有更新后,重新启动。 它可能已经在这个阶段工作。 如果没有,请继续。

这真的是一个驱动问题吗?

首先,应该确定卡是否被识别和/或是否是无线电终止开关阻止其工作。 请按照以下所有步骤操作 ,因为您的问题可能有两到三次:

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

    您可能需要先安装lshw

    • 如果列出了多个设备,请找到相关设备。
    • 如果它被列为*-network UNCLAIMED ,您应该按照安装(更新)驱动程序中的步骤进行操作。
    • 如果它被列为*-network (没有’Unclaimed’),下面关于驱动程序的输出可能与其他步骤相关,例如configuration: broadcast=yes driver=iwlwifi
    • 如果您的设备根本没有列出,请尝试识别确切硬件中的其他步骤。
  2. 在终端中运行rfkill list 。 这列出了无线电杀手的状态。 样本输出:

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

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

安装(较新的)驱动程序

这些是一些明显的,理智的,无害的步骤, 如果可能的话 ,避免在事物中列出的那些。

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

  2. 安装其他固件,因为硬件可能需要这些固件。

    • 确保已启用multiverse , 如何启用“multiverse”存储库?
    • 安装linux-firmwarelinux-firmware-nonfree软件包,例如sudo apt-get install linux-firmware linux-firmware-nonfree and reboot。
  3. 尝试从compat-wireless包中反向移植的内核模块(驱动程序)。 Ubuntu为内核提供了更新的Linux内核版本的compat-wireless包,具有稳定的发行版(自11.10 Oneiric Ocelot以来可用)。

    • 通过使用您最喜欢的包管理工具进行搜索,找到最新的可用产品 在撰写本文时,这是linux-backports-modules-cw-3.6-quantal-generic 。 在不久的将来, 3.7包可能会出来。
    • 安装它,例如sudo apt-get install linux-backports-modules-cw-3.6-quantal-generic for sudo apt-get install linux-backports-modules-cw-3.6-quantal-generic ,或者sudo apt-get install linux-backports-modules-cw-3.6-precise-generic for 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 
    • 最后,重启到你的新内核。

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

识别确切的硬件

您所拥有的产品可能使用与您无关的零售名称进行销售。 大多数供应商只使用来自Broadcom,Atheros,Ralink或Intel等制造商的芯片组,而产品本身可能不具备此名称。 例如: ThinkPad 11a / b / g / n无线LAN Mini Express适配器实际上可能只是Atheros AR5418 。 Thinkpad品牌重塑通常不会影响Linux中的硬件支持,但使用过的芯片组确实如此 。 因此,识别芯片组非常重要。

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

     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。
  • 使用linux作为关键字,而不是Ubuntu
  • 尝试使用识别确切硬件步骤中输出中列出的设备芯片组名称。 示例: AR9285BCM4311Intel + 6300
  • 避免使用与硬件支持无关的关键字。 例如,您的桌面环境不相关,因此请使用Ubuntu而不是Lubuntu
  • 尝试对设备的“一般”信息保持敏感,而不是专注于特定的解决方案,例如“此设备需要固件”,或者在先前版本中开箱即用的用户报告。

所有选择都没有运气。 我应该在一个新问题中提供什么?

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

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

尽可能避免的事情

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

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

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

硬件需要特别小心

  • Broadcom BCM43xx器件。 有关让这些设备正常工作的精彩教程,请参阅此答案 。

在某些计算机上,包括2013 Macbook Air,包含正确的wifi驱动程序但默认情况下未启用,因为它们是专有的。 打开“软件和更新”应用程序,转到“其他驱动程序”选项卡,如果您的无线适配器列出了任何驱动程序,请启用它们并点击应用更改。 如果他们是正确的司机,那么你的wifi将立即开始工作。