我有一台配备英特尔无线 AC-9462 卡的 NUC 7PJYH。问题是使用 WiFi 时系统会随机冻结。禁用 WiFi 时不会冻结。我尝试使用不同的内核,但行为仍然相同。
我在内核 4.16.12 上进行了调查dmesg
,发现内核正在请求固件iwlwifi-9000-pu-b0-jf-b0-35
文件iwlwifi-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)
答案1
我认为你和我都无法通过彻底的网络搜索找到任何 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
它似乎已经解决了挂起问题,因此我建议您将其永久化:
sudo -i
echo "options iwlwifi lar_disable=Y" >> /etc/modprobe.d/iwlwifi.conf
exit
一切已准备就绪。