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 + F12or a key with a Wi-Fi icon (depending on the model). ASUS often usedFn + F2, on Acer —Fn + 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.
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):
- Click on the network icon in the upper right corner.
- Select
Wi-Fi → Turn on(if disabled). - Click on the name of your network and enter the password.
- 🐧 KDE Plasma (Kubuntu, KDE Neon):
- Open the taskbar and find the network icon.
- If Wi-Fi is turned off, click on it and select
Turn on wireless network.
- The network icon is located in the tray (near the clock).
- 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 interfacesip 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 alook forwlan0orwlp3s0. If the statusUPno - 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 LANSoft 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 networksnmcli 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:
- Install build packages:
sudo apt install build-essential dkms linux-headers-$(uname -r) - Download the driver (for example, for Realtek RTL8821CE):
git clone https://github.com/tomaspinho/rtl8821cecd rtl8821ce
chmod +x dkms-install.sh
sudo ./dkms-install.sh - 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.confsudo 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 toWPA2in 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 Inteljournalctl -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,6or11for 2.4 GHz). - Turn it off
802.11nin the adapter settings (if there are compatibility issues):sudo iwconfig wlan0 11n off - Reinstall the driver (for example, for rtl8821ce restart
dkms-install.sh). - Use
dkmsfor automatic reassembly:sudo dkms autoinstall - Rollback the kernel (if the new kernel is incompatible):
sudo apt install linux-image-5.15.0-XX-generic # Specify the older version - Drivers for Windows (
.exeor.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,
ndiswrapperfor old adapters). - Install packages:
sudo apt install hostapd dnsmasq - Set up
hostapd.conf(specify SSID, password, channel). - Start the access point:
sudo systemctl start hostapd
⚠️ 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:
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:
How to share Wi-Fi from a Linux laptop?
Create an access point via 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.