Lost Wireless with Fedora 34

I lost wireless networking after upgrading to Fedora 34. I can see from the logs that it is not loading the firmware. Any idea how to fix it?

Before upgrade:
iwlwifi 0000:03:00.0: Detected Intel(R) Dual Band Wireless AC 3160, REV=0x164
iwlwifi 0000:03:00.0: base HW address: 34:e6:ad:97:5f:0e

After upgrade:
iwlwifi 0000:03:00.0: Direct firmware load for iwlwifi-3160-17.ucode failed with error -2
iwlwifi 0000:03:00.0: no suitable firmware found!
iwlwifi 0000:03:00.0: iwlwifi-3160-17 is required
iwlwifi 0000:03:00.0: check git://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git

A common solution (workaround) when there is a problem with a package is to downgrade it. It appears, however, that the previous version of iwl3160-firmware was never available in Fedora Linux 34. For a simple package like firmware, I think you should be OK downgrading across release versions. You can do so by specifying the --releasever=XX option to dnf downgrade. In your case, I think it would be the following.

$ sudo dnf downgrade --releasever=33 iwl3160-firmware

If downgrading the firmware resolves the problem, you can pin it temporarily with the following so that the broken version doesn’t install the next time you update.

$ sudo dnf install python3-dnf-plugin-versionlock
$ sudo dnf versionlock add iwl3160-firmware

You’ll also want to file or find a bug report for the package on https://bugzilla.redhat.com/ and unpin the package when the problem gets fixed.

1 Like

@glb : Thanks. That worked. I’ll file a bug later today if there isn’t one already.

Bugzilla report

1 Like

Well it is my fault. I didn’t set things up right when I installed the new hard drive some years back. It hasn’t been updating the /boot used by grub2. I’ve played around with it and got it to show the newer kernels but grub2 fails to find them for some reason. I’d love to fix it but not sure if it is worth doing at this point. Might be easier to just reinstall.

It is a shame that grub2 is so complicated. There are other bootloaders that are quite trivial.

I got it to boot the latest kernel. The old kernel’s loader/entries/ file had /vmlinuz… While the new one had /boot/vmlinuz… Removing the “/boot” worked although I suspect new kernels will have the /boot prefix so it will break on update.

I ran into the same sort of problem recently myself (GitHub - gregory-lee-bartholomew/bootsync: Keep ESPs synchronized on mirrored-disk systems). My solution (workaround) was to copy /usr/lib/kernel/install.d/90-loaderentry.install to /etc/kernel/install.d and tweak it to do what I wanted. :slightly_smiling_face:

I ended up giving up. I backed everything up and reinstalled. At least I get to have btrfs now.

1 Like