我的WiFi适配器根本无法正常工作,如何进行故障排除?
在这个网站上,我看到数百个,如果不是一千个问题被问及无法通过Ubuntu检测/识别无线LAN适配器的问题。 一些主流适配器似乎在Linux支持中完全被破坏,而其他适配器只需要一些简单的步骤来使其工作。
让它工作的选项似乎是无限巨大的,我不知道从哪里开始!
什么被认为是’最佳实践’? 在时间,精力和我的Ubuntu安装风险最小的情况下,尝试什么样的事情是最有效的? 请帮我节省时间,一步一步指导我做什么。
此答案仅涵盖完全无function的无线局域网。 它不是关于稳定性/性能问题,也不是半工作案例。 但是,如果您遇到它们并寻找其他选项,某些步骤可能会有所帮助。
制备
在这个答案中,我假设您至少熟悉以下任务:在终端中运行命令并安装常规Ubuntu软件包。 如果您不熟悉这些基本步骤,请开始阅读本文和此内容 。
-
让机器连接到互联网。 这使得执行这些步骤变得更加容易,并使用剪贴板进行操作。
如果另一个网卡工作,这应该很容易。 如果您的唯一卡在此时失败,请找到此选项并具有创造性,例如使用USB有线网络适配器或从朋友或邻居借来的替代工作WiFi适配器。
-
确保已安装以下软件包:
lshw
,rfkill
。 -
更新您的系统。 通过安装所有最新(常规)系统更新,开发人员在发布后已经发布的错误修复应该在您的PC上进行。 不要忘记之后重启系统。 另请参阅如何更新Ubuntu?
应用所有更新后,重新启动。 它可能已经在这个阶段工作。 如果没有,请继续。
这真的是一个驱动问题吗?
首先,应该确定卡是否被识别和/或是否是无线电终止开关阻止其工作。 请按照以下所有步骤操作 ,因为您的问题可能有两到三次:
-
在终端中运行
sudo lshw -C network
。您可能需要先安装
lshw
。- 如果列出了多个设备,请找到相关设备。
- 如果它被列为
*-network UNCLAIMED
,您应该按照安装(更新)驱动程序中的步骤进行操作。 - 如果它被列为
*-network
(没有’Unclaimed’),下面关于驱动程序的输出可能与其他步骤相关,例如configuration: broadcast=yes driver=iwlwifi
- 如果您的设备根本没有列出,请尝试识别确切硬件中的其他步骤。
-
在终端中运行
rfkill list
。 这列出了无线电杀手的状态。 样本输出:1: phy0: Wireless LAN Soft blocked: no Hard blocked: no
- 如果您在
Hard blocked
看到yes
:请参阅笔记本手册,了解无线局域网的硬件开关。 - 如果您在
Soft blocked
上看到“yes
”:笔记本上的热键可能有助于激活它,以及在网络管理器小程序中点击“启用无线”。 如果无法删除软块,请运行sudo rfkill unblock all
。 - 如果您没有看到列出的任何kill开关:这可能不适用于您的设备。 通常只有移动PC配备杀戮开关。
- 如果您在
-
仅适用于USB设备:排除USB级问题。
- 最好先尝试直接连接到主机,避免使用集线器或计算机机箱的连接器。
- 尝试使用其他类型的USB端口(例如USB2.0而不是USB3.0端口)。
- 转到识别确切的硬件 ,看看在插入设备时是否可以看到一些错误消息。
- 尝试使用已validation的其他电缆(如果有)。
安装(较新的)驱动程序
这些是一些明显的,理智的,无害的步骤, 如果可能的话 ,避免在事物中列出的那些。
-
试着看看Ubuntu是否建议安装其他驱动程序。 请参阅如何安装其他驱动程序? 有关如何执行此操作的详细信息。
-
安装其他固件,因为硬件可能需要这些固件。
- 确保已启用
multiverse
, 如何启用“multiverse”存储库? - 安装
linux-firmware
和linux-firmware-nonfree
软件包,例如sudo apt-get install linux-firmware linux-firmware-nonfree
and reboot。
- 确保已启用
-
尝试从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
forsudo 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
并启动到您的新内核。 - 通过使用您最喜欢的包管理工具进行搜索,找到最新的可用产品 在撰写本文时,这是
-
从这里开始,您应该考虑尝试更新的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无线LAN Mini Express适配器实际上可能只是Atheros AR5418
。 Thinkpad品牌重塑通常不会影响Linux中的硬件支持,但使用过的芯片组确实如此 。 因此,识别芯片组非常重要。
-
PCI和集成设备(例如移动PC):
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
作为关键字,而不是Ubuntu
。 - 尝试使用识别确切硬件步骤中输出中列出的设备芯片组名称。 示例:
AR9285
,BCM4311
,Intel
+6300
。 - 避免使用与硬件支持无关的关键字。 例如,您的桌面环境不相关,因此请使用
Ubuntu
而不是Lubuntu
。 - 尝试对设备的“一般”信息保持敏感,而不是专注于特定的解决方案,例如“此设备需要固件”,或者在先前版本中开箱即用的用户报告。
所有选择都没有运气。 我应该在一个新问题中提供什么?
在发布新问题之前,请使用识别确切硬件中的关键字搜索此站点 。
- 此答案中的选项的所有相关(意外或错误)输出。
- 识别确切硬件部分中完成的步骤的相关输出。
- 您正在运行的内核以及您尝试过的版本。 使用
uname -r
命令标识内核版本。 - 您尝试过的其他Ubuntu版本。
尽可能避免的事情
-
从源代码编译(例如运行
make
,sudo make install
)。- 这可能会覆盖系统文件并混淆您的包管理。 以这种方式安装可能会起作用,但如果软件包管理更新再次覆盖文件,则可能会在以后的任何时候中断。
- 它可能导致意外错误,这对新手用户来说可能难以解决。
- 如果您想要恢复您的操作,很难撤消
sudo make install
所做的所有更改。
-
Ndiswrapper接近。
- 围绕Windows驱动程序的这个“包装器”应该只作为最后的手段尝试,因为在Linux上为硬件驱动程序模拟Windows环境效率非常低。
- 通常报告稳定性和性能较低。
硬件需要特别小心
- Broadcom BCM43xx器件。 有关让这些设备正常工作的精彩教程,请参阅此答案 。
在某些计算机上,包括2013 Macbook Air,包含正确的wifi驱动程序但默认情况下未启用,因为它们是专有的。 打开“软件和更新”应用程序,转到“其他驱动程序”选项卡,如果您的无线适配器列出了任何驱动程序,请启用它们并点击应用更改。 如果他们是正确的司机,那么你的wifi将立即开始工作。