![Ubuntu 20.04:由于检测到微码 SW 错误,未找到 WiFi 适配器,iwlwifi 错误代码 5](https://linux22.com/image/1185380/Ubuntu%2020.04%EF%BC%9A%E7%94%B1%E4%BA%8E%E6%A3%80%E6%B5%8B%E5%88%B0%E5%BE%AE%E7%A0%81%20SW%20%E9%94%99%E8%AF%AF%EF%BC%8C%E6%9C%AA%E6%89%BE%E5%88%B0%20WiFi%20%E9%80%82%E9%85%8D%E5%99%A8%EF%BC%8Ciwlwifi%20%E9%94%99%E8%AF%AF%E4%BB%A3%E7%A0%81%205.png)
我已经在我的机器上使用 Ubuntu 20.04 有一段时间了,之前遇到过没有 Wi-Fi 适配器的问题。
但是,我的修复方法(如下所述:Ubuntu 20.04-未找到 WiFi 适配器) 不再起作用。
这似乎是一个新的错误,因为错误消息不同。我的错误代码dmesg | grep iwlwifi
(请参阅下面的完整日志)显示错误代码为 -5;而我之前的问题的错误代码为 110。
有人知道如何解决这个问题吗?
我的系统:
uname -a
Linux xxx 5.13.0-27-generic #29~20.04.1-Ubuntu SMP Fri Jan 14 00:32:30 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
我的作业:
sudo lshw -class network
*-network
description: Network controller
product: Intel Corporation
vendor: Intel Corporation
physical id: 0
bus info: pci@0000:93:00.0
version: 1a
width: 64 bits
clock: 33MHz
capabilities: pm msi pciexpress msix bus_master cap_list
configuration: driver=iwlwifi latency=0
resources: irq:17 memory:b7200000-b7203fff
*-network
description: Ethernet interface
product: Ethernet Connection (14) I219-LM
vendor: Intel Corporation
physical id: 1f.6
bus info: pci@0000:00:1f.6
logical name: enp0s31f6
version: 11
serial: 38:14:28:4f:b9:25
size: 1Gbit/s
capacity: 1Gbit/s
width: 32 bits
clock: 33MHz
capabilities: pm msi bus_master cap_list ethernet physical tp 10bt 10bt-fd 100bt 100bt-fd 1000bt-fd autonegotiation
configuration: autonegotiation=on broadcast=yes driver=e1000e driverversion=5.13.0-27-generic duplex=full firmware=0.4-4 ip=10.93.100.122 latency=0 link=yes multicast=yes port=twisted pair speed=1Gbit/s
resources: irq:170 memory:b7480000-b749ffff
我的错误日志:
[ 18.293630] iwlwifi: unknown parameter 'd0i3_disable' ignored
[ 18.293633] iwlwifi: unknown parameter 'lar_disable' ignored
[ 18.293978] iwlwifi 0000:93:00.0: enabling device (0000 -> 0002)
[ 18.322181] iwlwifi 0000:93:00.0: api flags index 2 larger than supported by driver
[ 18.322227] iwlwifi 0000:93:00.0: TLV_FW_FSEQ_VERSION: FSEQ Version: 0.0.2.25
[ 18.323547] iwlwifi 0000:93:00.0: loaded firmware version 63.c04f3485.0 ty-a0-gf-a0-63.ucode op_mode iwlmvm
[ 18.353126] iwlwifi 0000:93:00.0: Detected Intel(R) Wi-Fi 6 AX210 160MHz, REV=0x420
[ 18.514384] iwlwifi 0000:93:00.0: Microcode SW error detected. Restarting 0x0.
[ 18.514487] iwlwifi 0000:93:00.0: Start IWL Error Log Dump:
[ 18.514488] iwlwifi 0000:93:00.0: Status: 0x00000040, count: 6
[ 18.514489] iwlwifi 0000:93:00.0: Loaded firmware version: 63.c04f3485.0 ty-a0-gf-a0-63.ucode
[ 18.514491] iwlwifi 0000:93:00.0: 0x00000071 | NMI_INTERRUPT_UMAC_FATAL
[ 18.514492] iwlwifi 0000:93:00.0: 0x002002F0 | trm_hw_status0
[ 18.514493] iwlwifi 0000:93:00.0: 0x00000000 | trm_hw_status1
[ 18.514494] iwlwifi 0000:93:00.0: 0x004DA004 | branchlink2
[ 18.514495] iwlwifi 0000:93:00.0: 0x004D07EA | interruptlink1
[ 18.514495] iwlwifi 0000:93:00.0: 0x004D07EA | interruptlink2
[ 18.514496] iwlwifi 0000:93:00.0: 0x004D8DEA | data1
[ 18.514497] iwlwifi 0000:93:00.0: 0x00000010 | data2
[ 18.514498] iwlwifi 0000:93:00.0: 0x00000000 | data3
[ 18.514499] iwlwifi 0000:93:00.0: 0x00000000 | beacon time
[ 18.514500] iwlwifi 0000:93:00.0: 0x00012961 | tsf low
[ 18.514501] iwlwifi 0000:93:00.0: 0x00000000 | tsf hi
[ 18.514502] iwlwifi 0000:93:00.0: 0x00000000 | time gp1
[ 18.514502] iwlwifi 0000:93:00.0: 0x00024AAB | time gp2
[ 18.514503] iwlwifi 0000:93:00.0: 0x00000001 | uCode revision type
[ 18.514504] iwlwifi 0000:93:00.0: 0x0000003F | uCode version major
[ 18.514505] iwlwifi 0000:93:00.0: 0xC04F3485 | uCode version minor
[ 18.514506] iwlwifi 0000:93:00.0: 0x00000420 | hw version
[ 18.514507] iwlwifi 0000:93:00.0: 0x18489002 | board version
[ 18.514507] iwlwifi 0000:93:00.0: 0x8008FF00 | hcmd
[ 18.514508] iwlwifi 0000:93:00.0: 0x00020000 | isr0
[ 18.514509] iwlwifi 0000:93:00.0: 0x60000000 | isr1
[ 18.514510] iwlwifi 0000:93:00.0: 0x58F00002 | isr2
[ 18.514510] iwlwifi 0000:93:00.0: 0x00C0000C | isr3
[ 18.514511] iwlwifi 0000:93:00.0: 0x00000000 | isr4
[ 18.514512] iwlwifi 0000:93:00.0: 0x00000000 | last cmd Id
[ 18.514513] iwlwifi 0000:93:00.0: 0x004D8DEA | wait_event
[ 18.514514] iwlwifi 0000:93:00.0: 0x00000000 | l2p_control
[ 18.514514] iwlwifi 0000:93:00.0: 0x00000000 | l2p_duration
[ 18.514515] iwlwifi 0000:93:00.0: 0x00000000 | l2p_mhvalid
[ 18.514516] iwlwifi 0000:93:00.0: 0x00000000 | l2p_addr_match
[ 18.514517] iwlwifi 0000:93:00.0: 0x00000009 | lmpm_pmg_sel
[ 18.514518] iwlwifi 0000:93:00.0: 0x00000000 | timestamp
[ 18.514518] iwlwifi 0000:93:00.0: 0x00000024 | flow_handler
[ 18.514591] iwlwifi 0000:93:00.0: Start IWL Error Log Dump:
[ 18.514592] iwlwifi 0000:93:00.0: Status: 0x00000040, count: 7
[ 18.514593] iwlwifi 0000:93:00.0: 0x2010070D | ADVANCED_SYSASSERT
[ 18.514594] iwlwifi 0000:93:00.0: 0x00000000 | umac branchlink1
[ 18.514595] iwlwifi 0000:93:00.0: 0x8045CF40 | umac branchlink2
[ 18.514596] iwlwifi 0000:93:00.0: 0x0108E0B2 | umac interruptlink1
[ 18.514597] iwlwifi 0000:93:00.0: 0x00000000 | umac interruptlink2
[ 18.514597] iwlwifi 0000:93:00.0: 0x00000005 | umac data1
[ 18.514598] iwlwifi 0000:93:00.0: 0xDEADBEEF | umac data2
[ 18.514599] iwlwifi 0000:93:00.0: 0xDEADBEEF | umac data3
[ 18.514600] iwlwifi 0000:93:00.0: 0x0000003F | umac major
[ 18.514601] iwlwifi 0000:93:00.0: 0xC04F3485 | umac minor
[ 18.514601] iwlwifi 0000:93:00.0: 0x00024AA4 | frame pointer
[ 18.514602] iwlwifi 0000:93:00.0: 0xC0885E90 | stack pointer
[ 18.514603] iwlwifi 0000:93:00.0: 0x00010C00 | last host cmd
[ 18.514604] iwlwifi 0000:93:00.0: 0x00000000 | isr status reg
[ 18.514659] iwlwifi 0000:93:00.0: IML/ROM dump:
[ 18.514660] iwlwifi 0000:93:00.0: 0x00000B03 | IML/ROM error/state
[ 18.514671] iwlwifi 0000:93:00.0: 0x00007837 | IML/ROM data1
[ 18.514681] iwlwifi 0000:93:00.0: 0x00000080 | IML/ROM WFPM_AUTH_KEY_0
[ 18.514688] iwlwifi 0000:93:00.0: Fseq Registers:
[ 18.514691] iwlwifi 0000:93:00.0: 0x60000000 | FSEQ_ERROR_CODE
[ 18.514698] iwlwifi 0000:93:00.0: 0x80440002 | FSEQ_TOP_INIT_VERSION
[ 18.514705] iwlwifi 0000:93:00.0: 0x00080009 | FSEQ_CNVIO_INIT_VERSION
[ 18.514712] iwlwifi 0000:93:00.0: 0x0000A652 | FSEQ_OTP_VERSION
[ 18.514718] iwlwifi 0000:93:00.0: 0x00000002 | FSEQ_TOP_CONTENT_VERSION
[ 18.514725] iwlwifi 0000:93:00.0: 0x4552414E | FSEQ_ALIVE_TOKEN
[ 18.514729] iwlwifi 0000:93:00.0: 0x00400410 | FSEQ_CNVI_ID
[ 18.514735] iwlwifi 0000:93:00.0: 0x00400410 | FSEQ_CNVR_ID
[ 18.514739] iwlwifi 0000:93:00.0: 0x00400410 | CNVI_AUX_MISC_CHIP
[ 18.514745] iwlwifi 0000:93:00.0: 0x00400410 | CNVR_AUX_MISC_CHIP
[ 18.514751] iwlwifi 0000:93:00.0: 0x00009061 | CNVR_SCU_SD_REGS_SD_REG_DIG_DCDC_VTRIM
[ 18.514758] iwlwifi 0000:93:00.0: 0x00000061 | CNVR_SCU_SD_REGS_SD_REG_ACTIVE_VDIG_MIRROR
[ 18.514768] iwlwifi 0000:93:00.0: WRT: Collecting data: ini trigger 13 fired (delay=0ms).
[ 19.435227] iwlwifi 0000:93:00.0: Failed to run INIT ucode: -5
答案1
我找到了该问题的解决方案。正如@chili555 提到的,我的 63 版 iwlwifi 似乎已损坏 - 因此出现以下日志消息:
[ 18.514384] iwlwifi 0000:93:00.0: Microcode SW error detected. Restarting 0x0.
根据此线程:https://bugs.launchpad.net/ubuntu/+source/linux-firmware/+bug/1948685,我发现了一个简单的技巧,可以强制我的系统使用最旧的版本,在我的情况下是 59 版本(没有损坏),通过执行以下命令:
cd /lib/firmware
sudo mv iwlwifi-ty-a0-gf-a0-63.ucode iwlwifi-ty-a0-gf-a0-63.ucode.b
reboot
现在,当我重新启动时,59 版本的 iwlwifi 已被加载,并且我得到了我的 wifi 适配器。
更好的解决方案可能是遵循@chili555的建议,并更新 62 和 63 版本。但我很高兴它能正常工作并继续使用它。
答案2
在您的 dmesg 中,我们注意到:
iwlwifi:忽略未知参数“d0i3_disable” iwlwifi:忽略未知参数“lar_disable”
我怀疑您已将这些参数添加到文件中/etc/modprobe.d/iwlwifi.conf
。通常,不需要添加驱动程序参数。就您而言,这些参数应用不当。请编辑文件并将其恢复为默认值:
# /etc/modprobe.d/iwlwifi.conf
# iwlwifi will dyamically load either iwldvm or iwlmvm depending on the
# microcode file installed on the system. When removing iwlwifi, first
# remove the iwl?vm module and then iwlwifi.
remove iwlwifi \
(/sbin/lsmod | grep -o -e ^iwlmvm -e ^iwldvm -e ^iwlwifi | xargs /sbin/rmmod) \
&& /sbin/modprobe -r mac80211
我注意到有更高版本的固件可用。我还怀疑您的 -63 版本可能已损坏。让我们下载新副本。
通过以太网、网络共享或任何可能的方式建立有效的互联网连接,打开终端并执行以下操作:
cd /usr/lib/firmware/
sudo wget https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/iwlwifi-ty-a0-gf-a0-63.ucode
sudo wget https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/iwlwifi-ty-a0-gf-a0-66.ucode
sudo mv iwlwifi-ty-a0-gf-a0.pnvm iwlwifi-ty-a0-gf-a0.bak
重新启动并显示:
sudo dmesg | grep iwl