How to Fix No Wi-Fi After Installing Linux (Driver Troubleshooting Guide) — LinuxDistroFinder
Home › Guides › Fix No Wi-Fi Linux
Intermediate

How to Fix No Wi-Fi After Installing Linux (Driver Troubleshooting Guide)

📖 12 min read🗓 Updated July 2026✍️ LinuxDistroFinder Team

Disclosure: some links on this page are affiliate links. If you sign up through them we may earn a commission at no extra cost to you. It helps keep LinuxDistroFinder free.

You just installed Linux, you're excited, and then — no Wi-Fi. The network icon is missing, or it shows no adapters found. This is one of the most common frustrations for new Linux users, and it almost always comes down to a missing or misconfigured wireless driver. The good news: in the vast majority of cases, this is fixable without buying new hardware.

This guide walks you through a structured troubleshooting process — from identifying your chipset, to loading the right kernel module, to installing proprietary firmware — covering the three most problematic chipset families: Broadcom, Realtek, and Intel. Commands are shown for Debian/Ubuntu-based distros (the most common), with notes for Fedora and Arch where they differ.

Tip: Before you start, plug in an Ethernet cable if you can. Many of the fixes below require downloading packages. If you have no wired connection at all, read the "Offline Fix" section near the bottom first.

Step 1 — Identify Your Wireless Chipset

You can't fix what you don't know. The first step is identifying exactly which Wi-Fi adapter is in your machine. Run one of the following commands — they work even when Wi-Fi itself isn't working, because they query the hardware bus directly.

# List all PCI devices (most laptops use PCIe Wi-Fi cards)
lspci -knn | grep -iA3 net

# List USB devices (USB dongles or some newer adapters)
lsusb

# Show all network interfaces including wireless
ip link show

Look for the line that mentions "Network controller" or "Wireless". You'll see output like:

02:00.0 Network controller [0280]: Broadcom Inc. BCM43142 802.11b/g/n [14e4:4365] (rev 01)
        Subsystem: Lenovo BCM43142 [17aa:0611]
        Kernel driver in use: bcma-pci-bridge
        Kernel modules: bcma

Note the numbers in square brackets — [14e4:4365] is the PCI vendor:device ID. The vendor 14e4 is Broadcom. You'll use this to look up the correct driver. The "Kernel driver in use" line (or its absence) tells you whether Linux has already loaded something — or nothing at all.

Note: If lspci shows your adapter but ip link show doesn't show any wlan0 or wlp interface, the hardware is detected but the driver module hasn't loaded. If lspci doesn't show it at all, there may be a BIOS/UEFI issue or a hardware fault.

Step 2 — Check If the Driver Module Is Loaded

Once you know your chipset, check if the kernel module is already present but just not active:

# Check loaded kernel modules related to wireless
lsmod | grep -E 'wl|iwl|ath|rtl|brcm|cfg80211'

# Check kernel messages for driver errors
dmesg | grep -iE 'wifi|wlan|wireless|firmware|b43|brcm|rtl|iwl' | tail -30

Pay attention to any lines in dmesg that say "firmware not found", "failed to load", or "no such file". These point directly at missing firmware files rather than a missing driver package.

Step 3 — The Big Three: Broadcom, Realtek, Intel

The table below covers the most common chipsets Linux users encounter and what package fixes them on Ubuntu/Debian:

Chipset Family Common Models Vendor ID Ubuntu/Debian Fix Fedora Fix
Broadcom (wl driver) BCM4312, BCM4313, BCM4321, BCM4322, BCM43142 14e4 bcmwl-kernel-source broadcom-wl via RPM Fusion
Broadcom (b43 open) BCM4306, BCM4311, BCM4318 14e4 firmware-b43-installer b43-fwcutter
Realtek RTL8821CE RTL8821CE (very common in 2018–2022 laptops) 10ec:8821 DKMS module from GitHub DKMS module from GitHub
Realtek RTL8852BE RTL8852BE (newer budget laptops) 10ec:b85b Kernel 6.2+ or DKMS Kernel 6.2+ included
Intel Wi-Fi 6 AX200/AX201 AX200, AX201, AX210, AX211 8086 firmware-iwlwifi (non-free) Included by default
Intel Wireless-AC 9260/9560 9260, 9560, 8265, 7265 8086 firmware-iwlwifi Included by default
MediaTek MT7921 MT7921, MT7922 (2021+ laptops) 14c3 Kernel 5.12+ + firmware-mediatek Included in kernel

Fixing Broadcom (Most Common Laptop Issue)

Broadcom is the single most problematic chipset family on Linux. There are two different driver paths depending on which exact chip you have.

Path A — The proprietary wl driver (for BCM4313, BCM4321, BCM4322, BCM43142, and most post-2010 Broadcom chips):

# Enable the universe and restricted repos first
sudo add-apt-repository universe
sudo add-apt-repository restricted
sudo apt update

# Install the proprietary Broadcom driver
sudo apt install bcmwl-kernel-source

# Blacklist conflicting open-source modules
sudo modprobe -r b43 b43legacy ssb brcmsmac brcmfmac
sudo modprobe wl

# Bring the interface up
sudo ip link set wlan0 up

After this, reboot. The wl module should load automatically on boot. If you still see no interface after reboot, check dmesg | grep wl for errors.

Path B — The open-source b43 driver (for older chips like BCM4306, BCM4311, BCM4318):

# Install the firmware extractor (requires internet)
sudo apt install firmware-b43-installer b43-fwcutter

# The installer downloads firmware automatically; then reload the module
sudo modprobe -r wl
sudo modprobe b43
Tip: Never load both wl and b43 at the same time — they conflict. If switching from one to the other, make sure to blacklist the old one in /etc/modprobe.d/.

Fixing Intel Wi-Fi (iwlwifi firmware missing)

Intel chips generally work great on Linux — the iwlwifi kernel module is in the mainline kernel. But on Debian (not Ubuntu), the firmware files live in the non-free repository which isn't enabled by default. Ubuntu includes them. Pure Debian doesn't.

# On Debian — add non-free to your sources
sudo sed -i 's/main$/main contrib non-free non-free-firmware/' /etc/apt/sources.list
sudo apt update
sudo apt install firmware-iwlwifi

# Reload the module
sudo modprobe -r iwlwifi
sudo modprobe iwlwifi

On Ubuntu, the firmware is usually already present. If dmesg shows Direct firmware load for iwlwifi-*.ucode failed, your kernel may be newer than your firmware package. In that case:

# Check which firmware file is being requested
dmesg | grep iwlwifi | grep -i 'firmware\|ucode'

# Update all firmware packages
sudo apt install --reinstall linux-firmware

Fixing Realtek RTL8821CE (Very Common on Budget Laptops)

The RTL8821CE is notorious — it's in countless HP, Acer, and Lenovo budget laptops from 2018 to 2022, and it has no upstream kernel driver (as of early 2026). You need to build a DKMS module from source.

# Install build dependencies
sudo apt install git dkms build-essential linux-headers-$(uname -r)

# Clone the community driver
git clone https://github.com/tomaspinho/rtl8821ce.git
cd rtl8821ce

# Install via DKMS (survives kernel updates)
sudo ./dkms-install.sh

# Load it immediately without rebooting
sudo modprobe 8821ce

DKMS means the module will automatically recompile whenever you update your kernel — you won't have to redo this after every apt upgrade.

Note: On Fedora, replace the apt install line with sudo dnf install git dkms kernel-devel kernel-headers. On Arch, use sudo pacman -S git dkms linux-headers and the AUR package rtl8821ce-dkms-git.

Step 4 — Check for Module Blacklisting

Sometimes the right driver is installed but blacklisted — either by a previous failed install or by the distro itself. Check for this:

# Check all blacklist files
grep -r 'blacklist' /etc/modprobe.d/

# If your module (e.g. iwlwifi) is blacklisted, remove it
sudo nano /etc/modprobe.d/blacklist.conf
# Delete or comment out the line: blacklist iwlwifi

# Rebuild module dependency cache
sudo depmod -a
sudo modprobe iwlwifi

Step 5 — RF Kill Switch (Software Block)

This catches a surprising number of people. Linux has a software RF kill switch that can disable wireless even when the driver is working perfectly.

# Check RF kill status
rfkill list all

# Example output showing a soft block:
# 0: phy0: Wireless LAN
#    Soft blocked: yes
#    Hard blocked: no

# Unblock all wireless devices
sudo rfkill unblock all

# Or unblock just Wi-Fi
sudo rfkill unblock wifi

If "Hard blocked: yes" appears, it means the physical Wi-Fi kill switch on your laptop is toggled off. Look for an Fn key combination (often Fn+F2, Fn+F3, or similar) or a physical slider on the side of older laptops.

Step 6 — The Offline Fix (No Ethernet Available)

If you have no wired connection at all, you have a few options:

Option 1 USB Tethering from a smartphone Easiest

Connect your Android phone via USB, enable USB tethering in Settings → Network → Hotspot & Tethering. Linux will detect it as a wired Ethernet connection — no driver needed. Download your Wi-Fi packages, then disconnect.

Option 2 Download packages on another machine Reliable

On a Windows or Mac machine, download the .deb packages you need (e.g. bcmwl-kernel-source and its dependencies from packages.ubuntu.com), copy them to a USB drive, and install with sudo dpkg -i *.deb. Use apt-cache depends packagename to find what dependencies you'll need.

Option 3 Use a Wi-Fi-compatible Live USB Nuclear option

Boot a live USB of Ubuntu (which includes Broadcom firmware) to get online, then chroot into your installed system to fix it. This is advanced but works when nothing else does.

Distro-Specific Notes

Distro Wi-Fi Driver Situation Quick Note
Ubuntu 22.04 / 24.04 Best out-of-box support Includes linux-firmware and Broadcom packages in restricted
Linux Mint Very good Driver Manager GUI makes Broadcom installation one-click
Debian 12 (Bookworm) Missing non-free firmware by default Use the non-free firmware ISO or enable non-free-firmware repo post-install
Fedora 40+ Good for Intel/MediaTek Broadcom needs RPM Fusion; run sudo dnf install broadcom-wl
Arch Linux Manual but powerful Install from AUR; use iwd or NetworkManager for connection management
Pop!_OS Excellent Ships with many proprietary drivers pre-installed; Nvidia ISO also has Wi-Fi fixes
Kali Linux Good for most adapters Has extra wireless drivers for security tools; some adapters need kali-linux-wireless metapackage

Verify Wi-Fi Is Working

Once you've applied a fix, verify everything is functioning before calling it done:

# Confirm the wireless interface exists
ip link show

# Scan for networks (replace wlan0 with your interface name)
sudo iwlist wlan0 scan | grep ESSID

# Or use nmcli if NetworkManager is running
nmcli device wifi list

# Connect to a network via nmcli
nmcli device wifi connect "YourNetworkName" password "YourPassword"

# Test connectivity
ping -c 4 1.1.1.1

If ping works, you're done. If you get "Network unreachable", the interface is up but not connected to any network — use the nmcli command above or your desktop's Wi-Fi menu to connect.

Need a Linux VPS to Test Configs or Host Projects?

Once your Linux install is stable, a VPS is the next step for hosting, learning server admin, or running headless Linux tasks 24/7. Vultr gives new users $100 in free credit — enough to run a server for months.

Claim $100 Free Credit on Vultr →

Prefer a managed option? Hostinger VPS starts at around ₹199/month and includes a one-click Linux installer.

Frequently Asked Questions

Why does Windows have Wi-Fi but Linux doesn't after a dual-boot install?

Windows ships with or downloads Broadcom and Realtek proprietary drivers automatically via Windows Update. Linux distros often exclude proprietary firmware for licensing reasons, or ship an older kernel that doesn't include the driver yet. The hardware is fine — you just need the right driver package on the Linux side.

My lspci shows the adapter but there's no wlan0 interface at all — why?

This means the hardware is detected by the PCI bus but no kernel driver module has claimed it. Either the module isn't installed, it's blacklisted, or the firmware file it depends on is missing. Work through Steps 2 and 3 of this guide — specifically check dmesg for the exact error message.

Wi-Fi works but keeps disconnecting — is that a driver issue too?

Often yes. Intermittent disconnects on Intel cards are frequently caused by aggressive power management. Disable it with: sudo iwconfig wlan0 power off. To make it permanent, create a file at /etc/NetworkManager/conf.d/default-wifi-powersave-on.conf and set wifi.powersave = 2.

I installed bcmwl-kernel-source but Wi-Fi still doesn't work after reboot — what next?

Check that the wl module is actually loading: run lsmod | grep wl. If it's not there, try sudo modprobe wl and check dmesg for errors. Also verify no conflicting modules (b43, brcmsmac) are loaded — blacklist them in /etc/modprobe.d/blacklist-bcm.conf.

How do I know if my Broadcom chip needs the wl driver or the b43 driver?

Check the Ubuntu Broadcom STA page — it lists every BCM chip and which driver path it needs. As a general rule: BCM4331, BCM43142, BCM4360, and most chips made after 2010 need the proprietary wl driver. Chips like BCM4306, BCM4311, and BCM4318 from the mid-2000s use the open-source b43 driver.

Will my Wi-Fi driver survive a kernel update?

If you installed a driver via apt (like bcmwl-kernel-source or firmware-iwlwifi), yes — the package manager handles recompilation. If you manually built a DKMS module (like for RTL8821CE), DKMS handles it automatically too. If you manually compiled a driver without DKMS, you'll need to recompile after every kernel update — which is why the DKMS install method is strongly preferred.

What's the fastest way to check if my Wi-Fi chipset is supported by Linux before I install?

Boot the distro's live USB — if Wi-Fi works in the live environment, it'll work after install. Alternatively, look up your laptop model on the Linux Hardware Database (linux-hardware.org) which crowdsources compatibility data from millions of real machines.

🐧
Chippy
Your Linux distro assistant