Fix WiFi Not Working on Linux

Quick Fix Summary

Most Common Solution: Missing or incorrect WiFi drivers. This guide covers diagnosing your WiFi adapter, installing correct drivers, and fixing connectivity issues on Ubuntu, Debian, Fedora, and Arch Linux.

Symptoms Checklist

Which describes your situation?

Symptom #1: No WiFi Adapter Detected
  • No WiFi icon in system tray
  • Network settings show only "Wired"
  • WiFi adapter not listed in hardware

Root Cause: Missing WiFi drivers or hardware disabled

Jump to: Diagnose AdapterInstall Drivers

Symptom #2: WiFi Detected But No Networks Shown
  • WiFi icon visible but grayed out
  • No networks appear in list
  • Scanning shows no results

Root Cause: Driver loaded but not functioning, or hardware rfkill

Jump to: Check Hardware Switch

Symptom #3: Can See Networks But Can't Connect
  • Networks listed but connection fails
  • "Failed to connect" error
  • Authentication errors

Root Cause: Wrong password, encryption mismatch, or NetworkManager issues

Jump to: Advanced Fixes

Step 1: Diagnose Your WiFi Adapter

First, identify your WiFi hardware and check if Linux detects it.

Check Hardware Detection

List all network devices
lspci | grep -i wireless

Example output:

02:00.0 Network controller: Intel Corporation Wi-Fi 6 AX200 (rev 1a)
03:00.0 Network controller: Realtek Semiconductor RTL8821CE 802.11ac

If you see output, your WiFi hardware is detected. Note the manufacturer (Intel, Realtek, Broadcom, etc.).

⚠️ No Output?

If lspci shows nothing, try:

lsusb | grep -i wireless

Some WiFi adapters (especially USB dongles) connect via USB instead of PCI.

Check if Driver is Loaded

List WiFi interfaces
ip link show

Look for wlan0, wlp2s0, or similar wireless interface. If present, driver is loaded but may need configuration.

Check NetworkManager Status

Verify NetworkManager is running
systemctl status NetworkManager

Should show active (running). If not:

sudo systemctl start NetworkManager
sudo systemctl enable NetworkManager

Step 2: Check Hardware Switch & rfkill

Many laptops have physical or software switches that disable WiFi.

Check Physical Switch

Look for:

  • Dedicated WiFi toggle button/switch
  • Fn + F2/F3/F12 key combination (varies by manufacturer)
  • Airplane mode button

Check Software Block (rfkill)

List all radio frequency blocks
rfkill list

Example output:

0: phy0: Wireless LAN
    Soft blocked: yes
    Hard blocked: no

Soft blocked: Software disabled (fixable)

Hard blocked: Hardware switch disabled (flip physical switch)

Unblock WiFi

Unblock all wireless devices
sudo rfkill unblock wifi
sudo rfkill unblock all

Step 3: Install WiFi Drivers

Driver installation varies by WiFi chipset and distribution.

Ubuntu / Debian

Method 1: Additional Drivers (GUI)

  1. Open Software & Updates
  2. Go to Additional Drivers tab
  3. Select recommended WiFi driver
  4. Click Apply Changes
  5. Reboot

Method 2: Command Line

For Broadcom Chips (common issue):

Install Broadcom drivers
sudo apt update
sudo apt install broadcom-sta-dkms
sudo modprobe -r b43 b43legacy bcma ssb wl
sudo modprobe wl

For Realtek Chips:

Install Realtek drivers
sudo apt update
sudo apt install rtl8821ce-dkms

For Intel Chips (usually work out-of-box):

Install Intel firmware
sudo apt update
sudo apt install firmware-iwlwifi
sudo modprobe -r iwlwifi
sudo modprobe iwlwifi

Fedora

Enable RPM Fusion (for proprietary drivers):

Enable RPM Fusion repositories
sudo dnf install https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm
sudo dnf install https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm

For Broadcom:

sudo dnf install broadcom-wl

For Realtek:

sudo dnf install kmod-wl

Arch Linux

For Broadcom:

Install from AUR
yay -S broadcom-wl-dkms

For Realtek:

yay -S rtl8821ce-dkms-git

For Intel:

sudo pacman -S linux-firmware

Step 4: Advanced Fixes

Restart NetworkManager

Restart networking service
sudo systemctl restart NetworkManager

Reset Network Configuration

Delete saved connections and rescan
sudo rm -rf /etc/NetworkManager/system-connections/*
sudo systemctl restart NetworkManager
⚠️ Warning

This deletes all saved WiFi passwords. You'll need to reconnect manually.

Manually Bring Up Interface

Enable WiFi interface manually
sudo ip link set wlan0 up
sudo iw dev wlan0 scan | grep SSID

Check for Kernel Module Issues

View kernel messages for WiFi errors
dmesg | grep -i wifi
dmesg | grep -i wireless
dmesg | grep -i firmware

Look for errors like "firmware failed to load" - indicates missing firmware files.

Common Issues & Solutions

Issue: "Device not ready (firmware missing)"

Solution: Install firmware package for your WiFi chip.

Ubuntu/Debian:

sudo apt install linux-firmware

Fedora:

sudo dnf install linux-firmware

Arch:

sudo pacman -S linux-firmware

Issue: WiFi Works But Drops Frequently

Solution: Disable power management for WiFi.

Disable WiFi power management
sudo iwconfig wlan0 power off

Make permanent:

echo 'options iwlwifi power_save=0' | sudo tee /etc/modprobe.d/iwlwifi.conf

Issue: Slow WiFi Speeds

Diagnosis:

iwconfig wlan0

Check "Bit Rate" - should match your router's capabilities (e.g., 300 Mbps for 802.11n).

Solution: Update drivers or force 5GHz band if supported.

Issue: Can't Connect to 5GHz Networks

Solution: Install regulatory database.

sudo apt install wireless-regdb
sudo iw reg set US  # Replace US with your country code

Verification

After fixes, verify WiFi works:

Test WiFi connection
# Check interface is up
ip link show wlan0

# Scan for networks
sudo iw dev wlan0 scan | grep SSID

# Check connection
ping -c 4 google.com
✓ Success Indicators
  • ip link show shows wlan0 as UP
  • iw scan lists WiFi networks
  • WiFi icon appears in system tray
  • Can connect to networks
  • Internet works (ping succeeds)

Preventive Tips

  • Keep kernel and firmware updated: sudo apt upgrade
  • Check WiFi compatibility before buying new hardware
  • Intel WiFi cards generally have best Linux support
  • Avoid Broadcom if possible (requires proprietary drivers)
  • Consider USB WiFi dongles with good Linux support (Atheros, Intel)

Still Not Working?

If WiFi still doesn't work after trying all fixes:

  1. Check hardware: Test WiFi adapter in Windows or another Linux device
  2. Try USB WiFi dongle: Temporary solution while troubleshooting
  3. Check BIOS settings: Ensure WiFi not disabled in BIOS/UEFI
  4. Update BIOS: Sometimes BIOS updates fix WiFi issues
  5. Contact support: Distro forums or hardware manufacturer

Works On

  • Ubuntu 24.04, 22.04, 20.04
  • Debian 13, 12, 11
  • Fedora 40, 39, 38
  • Arch Linux (rolling)
  • Linux Mint 22, 21

Sources