我最近在朋友的全新笔记本电脑上安装了 18.04。一切都运行正常。笔记本电脑可以连接到我们尝试过的所有接入点。除了一个……有一个特定的接入点(ISP 调制解调器提供的接入点)它不想连接。wifi 状态停留在“正在连接”近一分钟,然后再次要求输入密码。这个密码已经检查了多次,但绝对正确。家里的所有其他设备(包括另一台装有 Ubuntu 18.04 的笔记本电脑)都可以很好地连接到这个多年来从未改变过的网络。
我粘贴了 dmesg 的输出这里(截断版本,它多次显示了此输出)。不确定转储的相关部分是什么,但这些行对我来说很有趣:
[12059.864549] iwlwifi 0000:00:14.3: Failed to send binding (action:3): -5
[12059.864552] iwlwifi 0000:00:14.3: Failed to send MAC context (action:2): -5
[12059.864553] iwlwifi 0000:00:14.3: failed to update MAC c8:09:a8:ee:b1:55
[12059.864556] iwlwifi 0000:00:14.3: PHY ctxt cmd error. ret=-5
[12059.885003] iwlwifi 0000:00:14.3: Applying debug destination EXTERNAL_DRAM
[12060.034524] iwlwifi 0000:00:14.3: FW already configured (0) - re-configuring
[12069.158052] wlp0s20f3: authenticate with dc:53:7c:34:56:17
[12069.162964] wlp0s20f3: send auth to dc:53:7c:34:56:17 (try 1/3)
[12069.222006] wlp0s20f3: authenticated
[12069.224063] wlp0s20f3: associate with dc:53:7c:34:56:17 (try 1/3)
[12069.238359] wlp0s20f3: RX AssocResp from dc:53:7c:34:56:17 (capab=0x411 status=0 aid=1)
身份验证似乎运行正常,但关联失败。此外,似乎存在一些硬件/驱动程序问题。谷歌搜索此输出没有带来太多相关结果。
然后我发现无法连接到特定 wifi 网络。这道题看上去一模一样,但是遗憾的是没有答案。
由于我怀疑驱动程序存在问题,因此我检查了“软件和更新”中的“附加驱动程序”选项卡。它显示了英特尔公司:未知设备。可供选择的选项呈灰色。
在多次失败的实验后,我删除了驱动器并安装了 Ubuntu 20.04,希望这样可以修复它(因为我在一个页面上读到了一些内容,他们建议的修复方法在 18.04 上对我不起作用,但应该已经包含在 20.04 中)。不幸的是,问题仍然存在。然而这一次,在“附加驱动程序”中,它显示了 wifi 卡的型号:AC-9462。谷歌搜索这个型号显示很多 Linux 用户都遇到了这张卡的问题。包括这个:英特尔无线 AC 9462 无法与 18.04 LTS 配合使用。此时我满怀希望。我安装了修复程序(来自 PPA 的修复程序)。它“取消了”附加驱动程序中的选项,但不幸的是,它没有修复连接问题。
最后我偶然发现了这个页面:https://bugzilla.kernel.org/show_bug.cgi?id=201319。多名用户报告称 Windows Fast Boot 是罪魁祸首,禁用它可以解决问题。据推测,Windows 以某种方式改变了该设备,阻止 Linux 使用它。
kernel.org 的 wiki 上也有写到:https://wireless.wiki.kernel.org/en/users/drivers/iwlwifi#about_dual-boot_with_windows_and_fast-boot_enabled
我引用:
关于 Windows 双启动和启用“快速启动”
如果您有一台装有较新版 Windows 的双启动机器,并且在启动 Linux 时在 WiFi 设备初始化过程中开始看到问题,则问题可能是由于 Windows 上的“快速启动”功能造成的。
启用此功能后,Windows 不会真正关闭整个系统,而是让部分系统继续运行,以便您可以更快地再次启动机器。尝试禁用此选项,在 Windows 10 上,它应该位于“控制面板→硬件和声音→电源选项→系统设置”,然后在“关机设置”中禁用“快速启动”选项。这将导致 Windows 完全关闭并可能解决问题。
尽管大家都一致认为这是问题所在,但我还是有点怀疑这是否是我遇到的问题。是的,这台电脑上安装了 Windows。但在安装 Linux 之前,它已被完全删除。我认为它的残余不会导致这个问题,是吗?如果答案是“是的,它们可以!”,那么我该如何解决这个问题?由于 Windows 已被完全删除,我无法再打开控制面板来禁用快速启动选项……(我确实在 BIOS 中禁用了快速启动,但如果我理解正确的话,这是一个完全不同的设置)
因此,经过几个小时的尝试和试验,我已经没有主意了......有人知道我该如何解决这个问题吗?
根据@chilli555的要求:
Linux 固件:
Version: 1.187
/lib/固件:
iwlwifi-9000-pu-b0-jf-b0-33.ucode
iwlwifi-9000-pu-b0-jf-b0-34.ucode
iwlwifi-9000-pu-b0-jf-b0-38.ucode
iwlwifi-9000-pu-b0-jf-b0-41.ucode
iwlwifi-9000-pu-b0-jf-b0-43.ucode
iwlwifi-9000-pu-b0-jf-b0-46.ucode
答案1
首先,检查路由器中的设置。首选 WPA2-AES;而不是任何 WPA 和 WPA2 混合模式,当然也不是 TKIP。其次,如果您的路由器支持 N 速度,那么使用 2.4 GHz 频段的 20 MHz 信道宽度(而不是自动 20/40 MHz)可能会获得更好的连接性,尽管它可能会影响 N 速度。使用固定信道(1、6 或 11)比自动信道选择更能带来更好的连接效果。此外,请确保路由器未设置为仅使用 N 速度;首选自动 B、G 和 N。进行这些更改后,重新启动路由器。
然后明确设置你的监管区域。检查你的:
sudo iw reg get
如果您选择 00,则这是一个通用的设置。请在此处查找您的设置:http://en.wikipedia.org/wiki/ISO_3166-1_alpha-2然后暂时设置一下:
sudo iw reg set IS
当然,如果不是冰岛,请替换您的国家代码。永久设置它:
sudo nano /etc/default/crda
将最后一行改为:
REGDOMAIN=IS
仔细校对,保存(Ctrl+O后跟Enter)并关闭(Ctrl+ x)文本编辑器。
编辑: 司机无线上网包含一些可能有用的可操作参数。让我们尝试几个:
首先,删除已加载的模块:
sudo modprobe -r iwlwifi
接下来,使用参数重新加载驱动模块:
sudo modprobe iwlwifi disable_11ac=Y
有什么改善吗?如果没有,请卸载模块并尝试其他参数:
sudo modprobe -r iwlwifi
sudo modprobe iwlwifi 11n_disable=8
再次,有什么改善吗?
您可以尝试另一个参数:
sudo modprobe -r iwlwifi
sudo modprobe iwlwifi swcrypto=1
如果您发现某个参数似乎可以解决问题,请使其持久化:
sudo -i
echo "options iwlwifi some_parameter" >> /etc/modprobe.d/iwlwifi.conf
exit
当然,在这里替换您认为有用的参数。