How to Enable Wi-Fi on a Linux Laptop: From Drivers to Network Settings

Connecting to Wi-Fi on a laptop with Linux often becomes a headache for beginners - especially if the network is not detected out of the box or there is no wireless connection icon. Unlike Windows or macOSWhere drivers are installed automatically, in Linux they sometimes need to be configured manually. Problems can be caused by a disabled adapter, missing proprietary drivers, or conflicts with NetworkManager.

In this article, we'll cover all methods for enabling Wi-Fi, from the basics (using the graphical interface) to advanced ones (using terminal commands and manually installing drivers). We'll pay special attention to diagnostics: how to check whether the adapter is recognized by the system, and what to do if the network is visible but won't connect. These instructions are relevant for Ubuntu, Debian, Fedora, Arch Linux and derived distributions.

1. Checking the Wi-Fi hardware switch

Before messing around with the settings, make sure the problem isn't a physical disconnection of the adapter. Many laptops (especially models Lenovo, HP And Dell) are equipped with hardware switches or key combinations for controlling Wi-Fi.

Where to look:

  • 🔧 Button on the body: Some laptops have a slider or button with an antenna on the side panel.
  • 🎹 Hotkeys: usually it's a combination Fn + F2, Fn + F12 or a key with a Wi-Fi icon (depending on the model). ASUS often used Fn + F2, on AcerFn + F3.
  • 🔄 Switch in BIOS: It's rare, but it happens that Wi-Fi is disabled at the BIOS level (check in the section Advanced → Wireless).

If the Wi-Fi indicator (usually blue or orange) doesn't light after pressing the keys, the issue may be with the drivers or the system kernel. Proceed to the next section.

📊 Which Linux distribution do you have installed?
Ubuntu/Debian
Fedora/RHEL
Arch/Manjaro
OpenSUSE
Another

2. Enabling Wi-Fi via the graphical interface (GUI)

If the adapter is recognized by the system but the network is not active, try enabling it using standard tools. In most distributions, this is handled by NetworkManager.

Instructions for popular desktop environments:

  • 🖥️ GNOME (Ubuntu, Fedora):
    1. Click on the network icon in the upper right corner.
    2. Select Wi-Fi → Turn on (if disabled).
    3. Click on the name of your network and enter the password.
  • 🐧 KDE Plasma (Kubuntu, KDE Neon):
    1. Open the taskbar and find the network icon.
    2. If Wi-Fi is turned off, click on it and select Turn on wireless network.
  • 🪟 XFCE (Xubuntu):
    1. The network icon is located in the tray (near the clock).
    2. Right click → Enable Wi-Fi.

    If there is no network icon at all, it means that NetworkManager No network devices were found. Please proceed to diagnostics via the terminal.

    3. Diagnosing the Wi-Fi adapter in the terminal

    If the graphical interface doesn't help, check if the adapter is recognized by the system. Open the terminal (Ctrl + Alt + T) and run the commands:

    # Checking network interfaces
    

    ip a

    or an obsolete command (if the ip is not set)

    ifconfig -a

    Checking Wi-Fi drivers

    lspci -knn | grep -iA3 net

    For USB adapters:

    lsusb

    In the output, look for lines with Network controller or Wireless. For example:

    03:00.0 Network controller [0280]: Intel Corporation Wi-Fi 6 AX200 [8086:2723] (rev 1a)
    

    Subsystem: Intel Corporation Wi-Fi 6 AX200NGW [8086:0024]

    Kernel driver in use: iwlwifi

    Please note:

    • 🔍 Adapter name (For example, Intel AX200, Broadcom BCM43142).
    • 🚀 Driver (in line Kernel driver in use). If it is not there, the driver is not installed.
    • ⚠️ Interface state: in the output ip a look for wlan0 or wlp3s0. If the status UP no - the adapter is disabled.
    • Check the output of `ip a` for a wireless interface|Make sure `lspci` has a line with "Network controller"|Remember the driver name (if any)|Check if the Wi-Fi light on your laptop is on-->

      4. Enabling Wi-Fi via the terminal

      If the adapter is recognized but disabled, you can activate it using commands. First, check the current status:

      rfkill list

      In the output, look for a block with Wireless LAN. For example:

      1: phy0: Wireless LAN
      

      Soft blocked: yes

      Hard blocked: no # Hardware blocking (if "yes" - check the switch on the laptop)

      If Soft blocked: yes, unlock the adapter:

      sudo rfkill unblock wifi

      Then enable the interface (replace wlan0 to your interface from the output ip a):

      sudo ip link set wlan0 up

      To connect to the network, use nmcli (utility NetworkManager):

      # View available networks
      

      nmcli dev wifi list

      Connect to the network (replace SSID and password)

      nmcli dev wifi connect "Network_Name" password "password"

      5. Installing drivers for the Wi-Fi adapter

      If in the output lspci there is no line Kernel driver in use, the driver for your adapter is not installed. Let's look at solutions for popular chips:

      Chip manufacturer Adapter models Solution
      Intel AX200, AX210, 8265, 7265 Kernel drivers. Update your system: sudo apt update && sudo apt upgrade.
      Broadcom BCM4311, BCM4313, BCM4360 Install the proprietary driver: sudo apt install broadcom-sta-dkms (Ubuntu/Debian).
      Realtek RTL8188EE, RTL8723DE, RTL8821CE Download the driver from GitHub and compile.
      Qualcomm Atheros AR9285, AR9485 Driver ath9k in the kernel. Check the module loading: lsmod | grep ath9k.

      For Broadcom And Realtek Often additional steps are required:

      1. Install build packages:
        sudo apt install build-essential dkms linux-headers-$(uname -r)
      2. Download the driver (for example, for Realtek RTL8821CE):
        git clone https://github.com/tomaspinho/rtl8821ce
        

        cd rtl8821ce

        chmod +x dkms-install.sh

        sudo ./dkms-install.sh

      3. Reboot the system.
    ⚠️ Attention: After updating the kernel, the driver may stop working. In this case, reinstall it or use dkms for automatic reassembly.

    6. Setting up NetworkManager and alternative connection methods

    If Wi-Fi is turned on but networks are not showing up or connecting, the problem may be NetworkManager or its configuration. Check the service status:

    sudo systemctl status NetworkManager

    If the service is not active, start it:

    sudo systemctl start NetworkManager
    

    sudo systemctl enable NetworkManager

    Alternative connection methods:

    • 📡 WPA_Supplicant: utility for connection without NetworkManager.
      wpa_passphrase "NetworkName" "Password" | sudo tee /etc/wpa_supplicant.conf
      

      sudo wpa_supplicant -B -i wlan0 -c /etc/wpa_supplicant.conf

      sudo dhclient wlan0

    • 🔄 Wicd: lightweight network manager (alternative to NetworkManager).
      sudo apt install wicd
    • 🛠️ Manual setup V /etc/network/interfaces (for experienced users).

    If your connection keeps dropping or your speed is slow, check your power saving settings:

    iwconfig wlan0 | grep "Power Management"
    

    If enabled, disable:

    sudo iwconfig wlan0 power off

    What to do if Wi-Fi connects but there is no internet?

    Check your DNS settings: `sudo nano /etc/resolv.conf` — add the lines `nameserver 8.8.8.8` and `nameserver 8.8.4.4` (Google DNS). Also, make sure DHCP is enabled in your router or manually assign an IP: `sudo dhclient -r wlan0` → `sudo dhclient wlan0`.

    7. Solving specific problems

    Some errors require a customized approach. Let's look at some typical cases:

    Problem 1The network is visible, but it doesn't connect with an error. Authentication failed.

    • Check the case of your password (Linux is case sensitive).
    • Make sure your router is not using WPA3 - Some older drivers don't support it. Switch to WPA2 in the router settings.
    • Update wpa_supplicant:
      sudo apt update && sudo apt install wpasupplicant

    Problem 2: The adapter switches off periodically.

    • Disable power saving for Wi-Fi as shown in the previous section.
    • Check the logs for errors:
      dmesg | grep iwlwifi # For Intel
      

      journalctl -u NetworkManager --no-pager | tail -n 20

    Problem 3: Wi-Fi works, but is very slow.

    • Change the channel on your router (select in the settings) 1, 6 or 11 for 2.4 GHz).
    • Turn it off 802.11n in the adapter settings (if there are compatibility issues):
      sudo iwconfig wlan0 11n off
    • ⚠️ AttentionRouter settings (such as encryption type or channel) can affect connection stability. If problems began after changing the router's configuration, try resetting it to factory settings.

      FAQ: Frequently Asked Questions about Wi-Fi on Linux

      Why did Wi-Fi stop working after updating the kernel?

      When updating the kernel, old drivers (especially self-built ones, as for Realtek) may stop loading. Solutions:

      1. Reinstall the driver (for example, for rtl8821ce restart dkms-install.sh).
      2. Use dkms for automatic reassembly:
        sudo dkms autoinstall
      3. Rollback the kernel (if the new kernel is incompatible):
        sudo apt install linux-image-5.15.0-XX-generic # Specify the older version
      How to connect to a hidden Wi-Fi network?

      Use nmcli:

      nmcli dev wifi connect "Network_Name" password "password" hidden yes

      Or via GUI: in the list of networks, select Connect to a hidden network and enter the SSID manually.

      Is it possible to use a Windows Wi-Fi adapter on Linux?

      Yes, but:

      • Drivers for Windows (.exe or .inf) are not compatible with Linux.
      • Some USB adapters (eg. TP-Link TL-WN725N) are supported out of the box.
      • For the rest, look for Linux drivers on the manufacturer's website or in repositories (for example, ndiswrapper for old adapters).
      How to share Wi-Fi from a Linux laptop?

      Create an access point via hostapd:

      1. Install packages:
        sudo apt install hostapd dnsmasq
      2. Set up hostapd.conf (specify SSID, password, channel).
      3. Start the access point:
        sudo systemctl start hostapd

      Detailed instructions depend on the distribution. For Ubuntu there is a utility ap-hotspot, simplifying the process.

      Why is Wi-Fi disabled by default in some distributions (e.g. Kali Linux)?

      In security testing distributions (e.g. Kali Linux or Parrot OS) network interfaces are often disabled to prevent accidental connections. To enable:

      sudo systemctl start NetworkManager
      

      sudo systemctl enable NetworkManager

      Also check if your Wi-Fi is being blocked by tools like macchanger or airmon-ng.