University wifi stuck on "configuring interface," requires multiple tries

I’m running Fedora 43 and KDE Plasma 6.5.2 on a Ryzen 7640U edition Framework 13. I’m trying to use my university’s wifi, which is configured as a WPA2 enterprise network; I’ve set it up as PEAP and MSCHAPv2 as directed by my university, and I’m using the DigiCert Global Root CA PEM file downloaded from here.

Every time I try to connect (which is every time I open my laptop), it takes a long time (on the order of a minute or two) to connect, and often fails saying no secrets were provided. It eventually works, but only after a few tries. I have this issue both on my university’s own network and on eduroam. It connects to my phone’s hotspot basically instantly; I haven’t tested other non-enterprise networks. Any ideas for how to fix this?

I’m pretty new to Linux, so sorry if there’s troubleshooting stuff I don’t know about.

I know you deleted it, but just in case it’s helpful for anyone else, here’s the output of journalctl -f -u NetworkManager.service. This is from opening the computer (waking from sleep). It first tried to connect to ubcsecure automatically, then when it failed it tried to connect to eduroam and I manually told it to try ubcsecure again.

Try disabling power saving and MAC randomization and perform a cold boot:

Also make sure the connection related secrets are stored correctly in its text config, so NetworkManager does not depend on KWallet or other flimsy backends.
When properly configured, it should be able to connect on boot before you log in.

Just to make sure, will disabling wifi powersaving cause significantly more battery usage? I do need my battery drain while sleeping to be fairly minimal so I don’t have my laptop die between classes.

At first glance it does seem like this has fixed the problem. I’ll keep an eye on it.

1 Like

Hello Leah, enterprise WPA2 can be tricky if the University is using a self-signed certificate, you will need to import the signature of the authority. If they are using a commercial one, it may not be necessary. But it is hard to tell without having a copy of their official documentation.

A possible trick would be to configure Eduroam with https://www.eduroam.app/ then, since they probably use the same signing authority for Eduroam and for the internal WiFi, edit the eduroam profile to use the internal WiFi SSID and username (I guess the password is the same)

Update: after a few days, it doesn’t seem like @vgaetera’s suggestions have fixed the problem.

@paulatz they recommend here using the DigiCert_Global_Root_CA.crt file. I didn’t have it in the locations they suggested since I’m obviously not using Ubuntu, but I figured downloading it from the link in my original post would work; what do you think?

Hello, I’m sorry, I only noticed now you said that “eventually” it connects, this rules out a certificate problem. I could be a problem with the driver, or firmware of the device. As you cannot really update the driver more than what Fedora provides, you may try to see if there is a newer firmware.

You can install lswhand use it to have an overview, i.e. on my laptop it says:

$ sudo dnf install lshw
...
$ sudo lshw -class Network
  *-network                 
       description: Ethernet interface
       product: Raptor Lake PCH CNVi WiFi
       vendor: Intel Corporation
       physical id: 14.3
       bus info: pci@0000:00:14.3
       logical name: wlp0s20f3
       version: 01
       serial: 7e:9a:c2:96:aa:fa
       width: 64 bits
       clock: 33MHz
       capabilities: pm msi pciexpress msix bus_master cap_list ethernet physical
       configuration: broadcast=yes driver=iwlwifi driverversion=6.17.8-300.fc43.x86_64 firmware=89.7207fc64.0 so-a0-gf-a0-89.uc ip=192.168.1.101 latency=0 link=yes multicast=yes
       resources: iomemory:600-5ff irq:16 memory:607e1e4000-607e1e7fff

Notice that it says firmware=89.7207fc64.0. Also, I can have the same information with dmseg (but you need to know which wifi driver you are using):

$ sudo dmesg|grep iwlw
...
[    6.069469] iwlwifi 0000:00:14.3: loaded firmware version 89.7207fc64.0 so-a0-gf-a0-89.ucode op_mode iwlmvm

Let’s find out where the firmware file is located

find /lib/firmware/ -name \*so-a0-gf-a0-89.ucode\*
/lib/firmware/intel/iwlwifi/iwlwifi-so-a0-gf-a0-89.ucode.xz
/lib/firmware/iwlwifi-so-a0-gf-a0-89.ucode.xz

There are two, but one is just a link to the other. Now, we can check on the linux-firmware git repository if there is a newer version. The official repository is here: kernel-firmware / Linux Firmware · GitLab

If I follow the same path as in my /lib/firmware I’ll get to

You can also click on the file name and check the commit history to see which “version” it is, although I found that version of firmware file tend to be not very meaningful.

You can also get the newer file, compress it with xz and replace the one in /lib. Make a copy of the original file before, in case you need to restore it.

Then you need to remove and reload the driver, or more easily reboot the computer, to reload the firmware. You can check with dmesg which version got loaded.

It is very unlikely that a bad firmware could be loaded and cause permanent problems, at most put back the original file and reboot, but whatever you do is at your own risk.

I wasn’t able to find my firmware file. This was the result of lshw:

*-network                 
       description: Ethernet interface
       product: MT7922 802.11ax PCI Express Wireless Network Adapter
       vendor: MEDIATEK Corp.
       physical id: 0
       bus info: pci@0000:01:00.0
       logical name: wlp1s0
       version: 00
       serial: f4:28:9d:19:25:27
       width: 64 bits
       clock: 33MHz
       capabilities: pciexpress msi pm bus_master cap_list ethernet physical
       configuration: broadcast=yes driver=mt7921e driverversion=6.17.8-300.fc43.x86_64 firmware=____000000-20251020143225 ip=206.87.157.148 latency=0 link=yes multicast=yes
       resources: iomemory:800-7ff irq:129 memory:8010900000-80109fffff memory:90b00000-90b07fff

Running find /lib/firmware/ -name \*____000000\* didn’t find anything, nor did find /lib/firmware/ -name \*____000000-20251020143225\*.

Running sudo dmesg | grep mt7921e gave me WM Firmware Version: ____000000, Build Time: 20251020143225 (along with a lot of other information).

In /lib/firmware/mediatek, there aren’t any files that seem to be mt7921. I also didn’t see any in the GitLab repo, though I do see a number of files for mt7922 (which does seem to be the actual wifi card I have), but I’m not sure which to download or where to put them.

Edit: I did just run sudo dnf update, and it did update linux-firmware, so maybe that’ll fix the problem. But the above results of the commands are the same (besides the build time).