iwlwifi 偶尔会失败,并出现“硬件错误”、“队列卡住”和“微码软件错误”

mhr*_*mhr 5 firmware wireless drivers iwlwifi

我的笔记本电脑上安装了 Ubuntu 18.04(内核:5.4.0-53-generic),无线卡为 Intel(R) 双频无线 AC 9462,REV=0x354。有时我注意到我的 WiFi 表现得很奇怪,间歇性出现极度延迟,有时会断开连接,然后无法重新连接到接入点。

首先,我注意到我的输出中有以下两行dmesg请参阅此处的完整输出):

[    6.572592] iwlwifi 0000:00:14.3: Direct firmware load for iwlwifi-QuZ-a0-jf-b0-50.ucode failed with error -2
[    6.572606] iwlwifi 0000:00:14.3: Direct firmware load for iwlwifi-QuZ-a0-jf-b0-49.ucode failed with error -2
Run Code Online (Sandbox Code Playgroud)

我注意到这iwlwifi-QuZ-a0-jf-b0-48.ucode是我的/lib/firmware/. 通过下载并添加iwlwifi-QuZ-a0-jf-b0-50.ucode53、55 和 59 到该目录,我可以首先解决该问题。所以没有报告任何问题dmesg

[    6.572592] iwlwifi 0000:00:14.3: Direct firmware load for iwlwifi-QuZ-a0-jf-b0-50.ucode failed with error -2
[    6.572606] iwlwifi 0000:00:14.3: Direct firmware load for iwlwifi-QuZ-a0-jf-b0-49.ucode failed with error -2
Run Code Online (Sandbox Code Playgroud)

但大约一周后问题又回来了。我的 wifi 工作正常,从启动到随机的一段时间,然后开始表现奇怪(连接不良、速度慢、与接入点断开连接),当然有时它永远不会发生,一切都很好。一旦我的网络开始出现故障,我就可以看到 iwlwifi 生成冗长且难以理解的错误消息,报告如下dmesg请参阅完整输出):

mhr@mhr-Vostro-5490:~$ dmesg | grep iwlwifi
[    9.090633] iwlwifi 0000:00:14.3: enabling device (0000 -> 0002)
[    9.107845] iwlwifi 0000:00:14.3: TLV_FW_FSEQ_VERSION: FSEQ Version: 58.3.35.22
[    9.108038] iwlwifi 0000:00:14.3: loaded firmware version 50.3e391d3e.0 op_mode iwlmvm
[    9.165959] iwlwifi 0000:00:14.3: Detected Intel(R) Dual Band Wireless AC 9462, REV=0x354
[    9.290913] iwlwifi 0000:00:14.3: base HW address: 4c:1d:96:30:83:6a
[    9.663805] iwlwifi 0000:00:14.3 wlp0s20f3: renamed from wlan0
Run Code Online (Sandbox Code Playgroud)

mhr*_*mhr 0

我写了一个,以便在问题再次出现时bash script方便地重新启动我的模块。iwlwifi

我在这里分享它只是作为对我有用的临时修复。该脚本接受要传递给 的输入参数modprobe iwlwifi。我还没有找到可以确定解决问题的参数,因此我暂时将其留空。

#!/bin/bash

params=""
delay=5

# if [ "$EUID" -ne 0 ]; then
if [ $USER != 'root' ]; then
    echo "Must be run as root!"
    exit
fi

# if [ $# -eq 0 ]; then
#     echo "Script run with no input arguments..."
# fi

for i in $*; do
    params=" $params $i"
done

echo "removing iwlwifi module..."
modprobe -r iwlwifi

if [ -z "$params" ]; then
    echo "iwlwifi will be reinserted with no additional settings specified..."
else
    echo "iwlwifi will be reinserted with the following params:$params"
fi

echo -n "reinserting in $delay seconds"
for ((i=0; i<$delay; i++)); do
    sleep 1
    echo -n .
done
echo

modprobe iwlwifi $params

echo "end of script" `basename "$0"`

Run Code Online (Sandbox Code Playgroud)


Roe*_*ven 0

添加一些上下文。我也经常遭受这个痛苦。我的适配器是 Wi-Fi 6 AX200 (v1)。错误与此类似。我仅在连接到 Mesh WiFI 网络时才会收到此信息。并且不通过常规 WiFi 网络。但不确定这是否相关。