I just reinstalled 5.15.55-1-MANJARO (uname -r) and I had to get my Intel Corporation Wi-Fi 6 AX200 (rev 1a) (lspci -k) working again. After I figured out all the steps I needed, I created a script to do it for me.
FixIntelWifiAX200.sh
#!/usr/bin/bash
/usr/bin/echo "options iwlmvm power_scheme=1" > /etc/modprobe.d/iwlmvm.conf
/usr/bin/rm -f /usr/lib/firmware/iwlwifi-cc-a0-{46,5,6,7,8,9}*
cat << EOF > /usr/share/libalpm/hooks/linux-firmware-post.hook
[Trigger]
Type = Package
Operation = Install
Operation = Upgrade
Target = linux-firmware
[Action]
When = PostTransaction
Exec = /usr/bin/bash -c "/usr/bin/rm -f /usr/lib/firmware/iwlwifi-cc-a0-{46,5,6,7,8,9}*.ucode"
EOF
Inside the same directory as the script:
sudo ./FixIntelWifiAX200.sh
You should restart your computer at this stage.
EXPLANATION
Let me explain what I am trying to accomplish with this script. My Intel Wifi AX200 works with the iwlwifi-cc-a0-48.ucode firmware microcode. Any older or newer versions never worked and I did not find a way to pick which one to load. So I removed all the other ones and left only the one I needed.
The iwlmvm.conf file is needed to switch the power scheme from balance (default) to active. There’s a lot of information revolving around this and this was a very crucial piece of the puzzle that without it, things just didn’t work. (modinfo iwlmvm)
The linux-firmware-post.hook is a post transaction hook I created. Whenever linux-firmware is updated or installed, this piece of magic will remove the unneeded files for you so you no longer have to keep doing it yourself. You probably won’t find any information about this one on the internet. So I am glad to be the first to contribute it.
NOTES
This information was provided July 2022 and with most things may become outdated. However, this method I have needed to use for 3 years and the only thing that changes is that we get newer versions added.
iwlwifi-cc-a0-48.ucode is the microcrode I needed. Others may require a different version.
Do not think that you need this or that version however. I went through trial and error by deleting the highest version first then restarting. If you do try this way, you must have the iwlmvm.conf file. This was the reason I failed to find the right version the first time.
You are checking to see if there are any Available networks. If you get Device not ready or Available networks is disabled then you may need a different microcode.
If you want to restore the files you deleted, you must remove the linux-firmware-post.hook file and reinstall linux-firmware.
I do hope this information finds it’s way to the people who need it. Also if you could like this post to show if it works. If you are confused by anything, do ask. I ramble a lot and I am not the clearest with my train of thought.
Nix