我的WiFi适配器根本无法工作,如何解决?


55

在此站点上,我看到数百个(如果不是一千个)有关Ubuntu无法检测/识别无线LAN适配器的问题。一些主流适配器似乎在Linux支持中被彻底破坏了,而其他一些仅需要一些简单的步骤即可使其工作。

使它正常工作的选择似乎无限多,我不知道从哪里开始!

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

Answers:


71

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

制备

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

  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
    
    • 如果您看到以下yes内容Hard blocked:有关无线LAN的硬件开关,请参阅笔记本手册。
    • 如果您看到:笔记本yes上的Soft blocked热键可能有助于激活它,以及在Network Manager小程序中单击“启用无线”。如果那不能删除该软块,请运行sudo rfkill unblock all
    • 如果您没有看到列出的任何终止开关:这可能不适用于您的设备。通常,只有移动PC才配备KillSwitch。
  3. 仅适用于USB设备:排除USB级别的问题。

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

安装(较新的)驱动程序

这些是显而易见的,理智的,无害的步骤,如果可能的话,避免使用《事物》中列出的那些步骤。

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

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

  3. 尝试从compat-wireless软件包中向后移植内核模块(驱动程序)。Ubuntu为Linux发行版提供了兼容的无线软件包,该软件包具有稳定的发行版(自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-genericQuantal或sudo apt-get install linux-backports-modules-cw-3.6-precise-genericPrecise。然后重启。

    如果您正在运行LTS发行版(例如Precise或Lucid),则将所有下一发行版的反向移植内核作为软件包提供。在撰写本文时,Quantal是Precise之后的最新版本,并且该软件包已安装linux-image-generic-lts-quantal到您的新内核中。

  4. 从这里开始,您应该考虑尝试通过从Live CD / USB引导来尝试更新版本的Ubuntu,以查看它是否获得了对硬件的支持。也可以考虑尝试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无线局域网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设备。请参考此答案以获取有关使这些设备正常工作的不错的教程。

精彩的答案。
丹尼斯

1
感谢您的出色回答。但是我无法在ubuntu 16.04上安装linux-firmware-nonfree。不论来源清单。可能以某种方式被替换了吗?
Bunyk '16

Bunyk尝试使用搜索您发行版的软件包sudo apt search (package name),看看是否显示可能重命名的更新软件包。
Yokai

作为第一步,您可以尝试在UEFI / BIOS中禁用安全启动。烦人的,这对我有用。他们在我的瑜伽3中相互排斥,对此并不高兴
。– Chiramisu

1

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.