带有 Intel 无线 AC-9462 的系统会冻结,除非由于缺少固件而禁用 WiFi

Vla*_*enc 7 wireless kernel networking drivers

我有带英特尔无线 AC-9462 卡的 NUC 7PJYH。问题是系统在使用 WiFi 时会随机冻结。禁用 wifi 时不会冻结。我尝试使用不同的内核,但行为仍然相同。

我调查dmesg时,我是在内核12年4月16日,我发现内核要求iwlwifi-9000-pu-b0-jf-b0-35iwlwifi-9000-pu-b0-jf-b0-36固件文件。我试图在 wireless.wiki.kernel.org 上找到这些文件。我浏览了他们维护的所有存储库,我只找到了这个固件的 34 和 38 版本。

在哪里可以找到内核 4.16 的正确固件?这些文件甚至不在官方linux-firmware包树中。

编辑:

wifi相关的dmesg输出:

[    3.476177] iwlwifi 0000:00:0c.0: enabling device (0000 -> 0002)

[    3.483822] iwlwifi 0000:00:0c.0: Direct firmware load for iwlwifi-9000-pu-b0-jf-b0-36.ucode failed with error -2

[    3.483839] iwlwifi 0000:00:0c.0: Direct firmware load for iwlwifi-9000-pu-b0-jf-b0-35.ucode failed with error -2

[    3.497077] iwlwifi 0000:00:0c.0: loaded firmware version 34.3125811985.0 op_mode iwlmvm

[    3.570636] iwlwifi 0000:00:0c.0: Detected Intel(R) Dual Band Wireless AC 9462, REV=0x318

[    3.624572] iwlwifi 0000:00:0c.0: base HW address: 68:ec:c5:9c:38:3f

[    3.685419] ieee80211 phy0: Selected rate control algorithm 'iwl-mvm-rs'

[    3.974259] iwlwifi 0000:00:0c.0 wlo1: renamed from wlan0

[    4.856976] iwlwifi 0000:00:0c.0: Conflict between TLV & NVM regarding enabling LAR (TLV = enabled NVM =disabled)
Run Code Online (Sandbox Code Playgroud)

chi*_*555 5

我相信您和我都无法通过彻底的网络搜索找到任何 x.35 或 x.36 固件,因为它们还不存在。编写有问题的驱动程序iwlwifi是为了首先查找最新的固件版本;如果找不到,则寻找下一个最新版本,依此类推,直到找到合适的固件文件。

同时,驱动程序被编写为自动使用更高版本的固件,因为它们被开发并包含在新版本的linux-firmware. 换句话说,当 x.35 编写并发布时,驱动程序iwlwifi将找到并使用它,而无需更新版本的驱动程序。这在英特尔和其他一些无线驱动程序中很常见。

我认为除了固件之外还有其他原因导致您的系统在使用无线时挂起。我邀请您提出一个新的开放式问题,其中包括:dmesg | grep -e iwl -e wlp

编辑:我们在您的中看到这条线索dmesg

TLV 和 NVM 之间关于启用 LAR 的冲突(TLV = 启用 NVM = 禁用)

我建议您尝试驱动程序参数:

sudo modprobe -r iwlwifi && sudo modprobe iwlwifi lar_disable=Y
Run Code Online (Sandbox Code Playgroud)

它似乎已经解决了挂起问题,因此我建议您将其永久化:

sudo -i
echo "options iwlwifi lar_disable=Y"  >>  /etc/modprobe.d/iwlwifi.conf
exit
Run Code Online (Sandbox Code Playgroud)

你应该已经准备好了。