Table of Contents
Open Table of Contents
Quick Fix
If you’re struggling to connect to a WiFi network after a minimal install of AlmaLinux, you’re not alone. When trying to activate the device (nmcli dev up wlp0s20f3
), you might see this error:
failed to add/activate new connection. Device class NMDeviceGeneric had no complete_connection
The solution is simple: install the NetworkManager-wifi
package:
dnf install NetworkManager-wifi
Introduction
I recently repurposed my old laptop as a home lab server. While a wired connection is generally more reliable, I wanted the flexibility of a WiFi connection.
I installed AlmaLinux 9.5 with a minimal install as the base environment and enabled the ANSI BP 028 (high) security profile.
Everything worked fine with the Server with GUI base environment, but the Minimal install left me unable to connect to WiFi. Following the official guide didn’t help.
Using nmtui
to activate a connection only showed wired networks, and nmcli
returned the error mentioned above.
After some digging, I found the solution in this forum. The minimal install doesn’t include the NetworkManager-wifi
package or its dependencies (wireless-regdb
and iw
).
These are the following commands I have used until I discovered this error:
[root@homelab ~]# nmcli radio wifi
enabled
[root@homelab ~]# nmcli device wifi
[root@homelab ~]# nmcli device status
DEVICE TYPE STATE CONNECTION
lo loopback connected (externally) --
wlp0s20f3 wifi unavailable --
eno1 ethernet unavailable --
[root@homelab ~]# nmcli device set wlp0s20f3 managed yes
[root@homelab ~]# nmcli device status
DEVICE TYPE STATE CONNECTION
lo loopback connected (externally) --
wlp0s20f3 wifi unavailable --
eno1 ethernet unavailable --
[root@homelab ~]# nmcli device connect wlp0s20f3
Error: Failed to add/activate new connection: Device class NMDeviceGeneric had no complete_connection method
The same error is visible here:
[root@homelab ~]# systemctl status NetworkManager
● NetworkManager.service - Network Manager
Loaded: loaded (/usr/lib/systemd/system/NetworkManager.service; enabled; preset: enabled)
Active: active (running) since Fri 2025-02-07 22:46:51 EST; 5min ago
Main PID: 3107 (NetworkManager)
Tasks: 3 (limit: 32768)
Memory: 11.3M
CPU: 113ms
CGroup: /system.slice/NetworkManager.service
└─3107 /usr/sbin/NetworkManager --no-daemon
Feb 07 22:46:51 homelab NetworkManager[3107]: <info> [1720392411.474711] device (lo): activation successful, device activated.
Feb 07 22:46:51 homelab NetworkManager[3107]: <info> [1720392411.474717] manager: startup complete
Feb 07 22:46:54 homelab NetworkManager[3107]: <info> [1720392414.311437] device (wlp0s20f3): state change: unmanaged -> unavailable (reason "connection-assumed", sys-iface-state: "assume")
Feb 07 22:46:54 homelab NetworkManager[3107]: <info> [1720392414.375127] ifcfg-rh: new connection /etc/sysconfig/network-scripts/ifcfg-wlp0s20f3 (interface wlp0s20f3, pid 6323) add 0 result: success
Feb 07 22:46:54 homelab NetworkManager[3107]: <info> [1720392414.375134] device (wlp0s20f3): state change: unavailable -> disconnected (reason "none", sys-iface-state: "managed")
Feb 07 22:46:54 homelab NetworkManager[3107]: <info> [1720392414.375137] device (wlp0s20f3): Activation: starting connection 'wlp0s20f3' (uuid ...)
Feb 07 22:46:54 homelab NetworkManager[3107]: <info> [1720392414.375140] device (wlp0s20f3): Activation: beginning transaction (timeout in 120 seconds)
Feb 07 22:46:54 homelab NetworkManager[3107]: <info> [1720392414.375144] device (wlp0s20f3): state change: disconnected -> prepare (reason "none", sys-iface-state: "managed")
Feb 07 22:46:54 homelab NetworkManager[3107]: <info> [1720392414.375148] device (wlp0s20f3): state change: prepare -> config (reason "none", sys-iface-state: "managed")
Feb 07 22:46:54 homelab NetworkManager[3107]: <info> [1720392414.375151] device (wlp0s20f3): state change: config -> need-auth (reason "none", sys-iface-state: "managed")
Feb 07 22:46:54 homelab NetworkManager[3107]: <info> [1720392414.375154] device (wlp0s20f3): state change: need-auth -> failed (reason "no-secrets", sys-iface-state: "managed")
Feb 07 22:46:54 homelab NetworkManager[3107]: <info> [1720392414.375157] device (wlp0s20f3): Activation: failed for connection 'wlp0s20f3'
Feb 07 22:46:54 homelab NetworkManager[3107]: <info> [1720392414.375160] manager: NetworkManager state is now DISCONNECTED
Feb 07 22:46:54 homelab NetworkManager[3107]: <info> [1720392414.375164] audit: op="connection-activate" pid=6323 uid=0 result="fail" reason="device class NMDeviceGeneric had no complete_connection method"
Mount USB Drive
You can either connect to a wired network to install NetworkManager-wifi
or, as I did, install it offline using the full OS image on a USB stick.
First, mount your USB drive:
mkdir -p /mnt/usb
mount /dev/sda1 /mnt/usb
Setup Yum Repository File
Create a new repository file:
vi /etc/yum.repos.d/almalinux9.repo
Add the following content:
[AlmaLinux-USB-BaseOS]
name=BaseOS Packages AlmaLinux 9
baseurl=file:///mnt/usb/BaseOS/
metadata_expire=-1
gpgcheck=0
enabled=1
[AlmaLinux-USB-AppStream]
name=AppStream Packages AlmaLinux 9
baseurl=file:///mnt/usb/AppStream/
metadata_expire=-1
gpgcheck=0
enabled=1
Install NetworkManager-wifi Package from USB Drive
Now, install the package:
dnf install NetworkManager-wifi --disablerepo=* --enablerepo=AlmaLinux-USB-BaseOS --enablerepo=AlmaLinux-USB-AppStream
systemctl restart NetworkManager
Cleanup
Finally, clean up:
# Remove repository file
rm /etc/yum.repos.d/almalinux9.repo
# Unmount USB drive
umount /mnt/usb
rm -r /mnt/usb
And there you have it! Your AlmaLinux minimal install should now support WiFi connections. Enjoy the freedom of wireless networking!