Repost of my question deleted from askubuntu for being off-topic because my distro is Ubuntu Cinnamon Remix.
Description of the problem
I forgot to plug in my laptop as it was syncing files from a distant machine overnight. It inevitably ran out of battery and went into hibernation mode. Once on, I could no longer connect to Wi-Fi. I can connect to the internet through ethernet, but this is not ideal as it uses a dongle that takes up my charging port, and also limits mobility. I've followed many troubleshooting guides, including (but not limited to):
What I've tried so far
I've tried reinstalling network-manager through APT and backport-iwlwifi from source.
Following link 10, I have tried re-downloading all of the iwlwifi*.ucode files from https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/plain/ and replacing the existing ones in /lib/firmware, to no avail.
Following link 1, I have tried loading the Ubuntu Cinnamon ISO (the ISO of my distribution) onto a USB thumbdrive and installing drivers from there. The iso is recognized by my system as a virtual CD-ROM drive, but the Installable from CD-ROM/DVD option in the Software & Updates dialog remains grey and unresponsive, and says "insert the medium into the drive". I've also tried mounting the ISO with AcetoneISO, for the same result.
Relevant diagnostic information
System info:
Distributor ID: Ubuntu
Description: Ubuntu 22.04.1 LTS
Release: 22.04
Codename: jammy
Kernel: Linux 5.15.0-58-generic #64-Ubuntu SMP Thu Jan 5 11:43:13 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
Kernel Params: ro, quiet, splash, resume=UUID=b8febb47-e2f1-41f7-bf30-bce7e55e6566, resume_offset=9285632, vt.handoff=7
Desktop: Cinnamon
SecureBoot disabled
Relevant output of lspci, which detects my Wi-Fi controller:
aa:00.0 Network controller [0280]: Intel Corporation Wi-Fi 6 AX210/AX211/AX411 160MHz [8086:2725] (rev 1a)
Subsystem: Intel Corporation Wi-Fi 6 AX210 160MHz [8086:0024]
Kernel driver in use: iwlwifi
Full Output of rfkill list all, which does not list a Wi-Fi device:
0: hci0: Bluetooth
Soft blocked: no
Hard blocked: no
Relevant Output of lsmod:
iwlmvm 729088 0
mac80211 1249280 1 iwlmvm
libarc4 16384 1 mac80211
iwlwifi 536576 1 iwlmvm
wmi_bmof 16384 0
cfg80211 999424 3 iwlmvm,iwlwifi,mac80211
compat 16384 4 iwlmvm,iwlwifi,mac80211,cfg80211
wmi 32768 1 wmi_bmof
Content of /etc/network/interfaces:
source /etc/network/interfaces.d/*
Content of /etc/network/interfaces.d/*: Empty
Full output of ip link show, with no Wi-Fi network interface:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: enxa0cec8e71b91: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
link/ether a0:ce:c8:e7:1b:91 brd ff:ff:ff:ff:ff:ff
iwconfig:
lo no wireless extensions.
enxa0cec8e71b91 no wireless extensions.
dmesg | grep iwlwifi returns 258 lines, with some repetitions, so here's what looks relevant:
[ 2.570841] Loading modules backported from iwlwifi
[ 2.570842] iwlwifi-stack-public:master:10878:f4df8641
[ 2.683312] iwlwifi 0000:aa:00.0: enabling device (0000 -> 0002)
[ 2.699594] iwlwifi 0000:aa:00.0: Detected crf-id 0x400410, cnv-id 0x400410 wfpm id 0x80000000
[ 2.699718] iwlwifi 0000:aa:00.0: PCI dev 2725/0024, rev=0x420, rfid=0x10d000
[ 2.728800] iwlwifi 0000:aa:00.0: Direct firmware load for iwlwifi-ty-a0-gf-a0-80.ucode failed with error -2
[ 2.729650] iwlwifi 0000:aa:00.0: api flags index 2 larger than supported by driver
[ 2.729668] iwlwifi 0000:aa:00.0: WRT: Invalid time point 28 for host command TLV
[ 2.729697] iwlwifi 0000:aa:00.0: WRT: Failed to allocate TLV 0x1000007, ret -22, (ext=0)
[ 2.729699] iwlwifi 0000:aa:00.0: TLV_FW_FSEQ_VERSION: FSEQ Version: 0.0.2.41
[ 2.730098] iwlwifi 0000:aa:00.0: loaded firmware version 79.27f1c37b.0 ty-a0-gf-a0-79.ucode op_mode iwlmvm
[ 2.915335] iwlwifi 0000:aa:00.0: Detected Intel(R) Wi-Fi 6 AX210 160MHz, REV=0x420
[...]
[ 3.063768] iwlwifi 0000:aa:00.0: loaded PNVM version 64acdc51
[ 3.314551] iwlwifi 0000:aa:00.0: Timeout waiting for PNVM load!
[ 3.314557] iwlwifi 0000:aa:00.0: Failed to start RT ucode: -110
[...]
I do not have a dual boot with any other OS.
Closing statements
My best guess is that I need to reinstall a corrupted driver, but I just can't figure out what exactly to reinstall. Any help sorting this situation out would be greatly appreciated.
Update
Thanks to Freddy for the suggestions. I've tried deleting iwlwifi-ty-a0-gf-a0.pnvm, deleting the .ucode files for the versions more recent than 59, deleting everything and re-importing the latest driver binary provided by intel, and every combination of the above, to no avail.
Here is some of the new output of dmesg:
[ 2.939097] iwlwifi 0000:aa:00.0: PCI dev 2725/0024, rev=0x420, rfid=0x10d000
[ 2.941107] iwlwifi 0000:aa:00.0: Direct firmware load for iwlwifi-ty-a0-gf-a0-80.ucode failed with error -2
[ 2.941122] iwlwifi 0000:aa:00.0: Direct firmware load for iwlwifi-ty-a0-gf-a0-79.ucode failed with error -2
[...] # same thing from 78 to 61, all these driver files are currently missing in /lib/firmware
[ 2.941910] iwlwifi 0000:aa:00.0: Direct firmware load for iwlwifi-ty-a0-gf-a0-60.ucode failed with error -2
[ 2.942903] iwlwifi 0000:aa:00.0: api flags index 2 larger than supported by driver
[ 2.942925] iwlwifi 0000:aa:00.0: TLV_FW_FSEQ_VERSION: FSEQ Version: 93.8.63.28
[ 2.943170] iwlwifi 0000:aa:00.0: loaded firmware version 59.601f3a66.0 ty-a0-gf-a0-59.ucode op_mode iwlmvm
[ 2.994764] iwlwifi 0000:aa:00.0: Detected Intel(R) Wi-Fi 6 AX210 160MHz, REV=0x420
I posted the rest on pastebin. So we see that the new firmware versions are being skipped and it's loading version 59, but something goes wrong after that.
I also found some old USB Wi-Fi antennae:
- TRENDNET AC600 which I've gotten working out of the box with several other Linux machines
- TP-Link Archer T2U Plus which isn't supported out of the box but I got a custom driver working for it on other Linux machines
Neither of these work. They do show up in lsusb but nothing in rfkill, and the LEDs on the antennae don't turn on. So it seems that the problem isn't limited to the built-in Wi-Fi card. What could be causing system-wide failure to handle Wi-Fi devices?
Update 2
The problem is fixed, I'm not sure why. I performed a pretty big upgrade, most notably including the following packages: linux-generic, linux-image-generic, linux-headers-generic, linux-generic-hwe-22.04, linux-image-generic-hwe-22.04, linux-headers-generic-hwe-22.04, linux-generic-hwe-20.04, linux-libc-dev. I restarted my computer after the update which booted me into GRUB (it usually just boots into Ubuntu). I remembered someone mentioning that a similar problem needed fast boot disabled to be fixed, so I took the opportunity to boot into my BIOS and disable fast boot. I rebooted, and now Wi-Fi works.
Here is some updated info in case this helps anyone:
New system info:
Linux 5.15.0-60-generic #66-Ubuntu SMP Fri Jan 20 14:29:49 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
Kernel Params: [same as before but remove vt.handoff=7]
lsmod:
iwlmvm 569344 0
mac80211 1249280 1 iwlmvm
libarc4 16384 1 mac80211
iwlwifi 450560 1 iwlmvm
cfg80211 974848 3 iwlmvm,iwlwifi,mac80211
wmi_bmof 16384 0
wmi 32768 1 wmi_bmof
Full output of dmesg | grep iwlwifi:
[ 2.666632] iwlwifi: unknown parameter 'disable_msix' ignored
[ 2.670998] iwlwifi 0000:aa:00.0: enabling device (0000 -> 0002)
[ 2.681512] iwlwifi 0000:aa:00.0: Direct firmware load for iwlwifi-ty-a0-gf-a0-66.ucode failed with error -2
[ 2.681647] iwlwifi 0000:aa:00.0: Direct firmware load for iwlwifi-ty-a0-gf-a0-65.ucode failed with error -2
[ 2.681770] iwlwifi 0000:aa:00.0: Direct firmware load for iwlwifi-ty-a0-gf-a0-64.ucode failed with error -2
[ 2.681928] iwlwifi 0000:aa:00.0: Direct firmware load for iwlwifi-ty-a0-gf-a0-63.ucode failed with error -2
[ 2.681999] iwlwifi 0000:aa:00.0: Direct firmware load for iwlwifi-ty-a0-gf-a0-62.ucode failed with error -2
[ 2.682072] iwlwifi 0000:aa:00.0: Direct firmware load for iwlwifi-ty-a0-gf-a0-61.ucode failed with error -2
[ 2.682090] iwlwifi 0000:aa:00.0: Direct firmware load for iwlwifi-ty-a0-gf-a0-60.ucode failed with error -2
[ 2.683225] iwlwifi 0000:aa:00.0: api flags index 2 larger than supported by driver
[ 2.683248] iwlwifi 0000:aa:00.0: TLV_FW_FSEQ_VERSION: FSEQ Version: 93.8.63.28
[ 2.683538] iwlwifi 0000:aa:00.0: loaded firmware version 59.601f3a66.0 ty-a0-gf-a0-59.ucode op_mode iwlmvm
[ 2.758154] iwlwifi 0000:aa:00.0: Detected Intel(R) Wi-Fi 6 AX210 160MHz, REV=0x420
[ 2.913333] iwlwifi 0000:aa:00.0: Detected RF GF, rfid=0x10d000
[ 2.981488] iwlwifi 0000:aa:00.0: base HW address: c4:bd:e5:1b:52:4c
[ 2.999710] iwlwifi 0000:aa:00.0 wlp170s0: renamed from wlan0
I did a diff on the iwlwifi-* files in /lib/firmware and a backup I had made, and they're apparently identical.