Installing the Linux operating system, in particular the distribution Ubuntu, often faces the classic "chicken and egg" problem: downloading the necessary drivers requires internet access, and internet access requires drivers. A situation where the wireless module fails to activate or even fails to be detected after system installation is one of the most common complaints among newcomers. Unlike Windows, where hardware manufacturers often provide software discs or embed it into the system, in the open source world, hardware support depends on the community and vendor policies.
Initial diagnostics begin with understanding what exactly went wrong. Sometimes the adapter is physically disabled by a button on the laptop case; in other cases, the system simply doesn't recognize the device due to a lack of proprietary firmware. Linux kernel has a huge driver base, but some manufacturers, such as Broadcom or Realtek, don't always provide open specifications immediately after new products are released. Therefore, the steps you take will depend on your network controller model and distribution version.
In this article, we'll cover every step in detail: from basic switch checks to manually compiling drivers via the terminal. You'll learn how to use the graphical interface to search for proprietary modules and what commands to enter in the console if the graphical shell isn't available. A critical step is to accurately determine the device ID (Vendor ID and Device ID), since these codes are used to search for a compatible driver in the repositories. Following the instructions will help you avoid common mistakes and reconnect with the world.
Primary diagnostics and equipment testing
Before delving into complex settings, it's important to rule out trivial hardware issues. Users often forget that there may be a physical switch or key combination on the laptop case (usually Fn + F2 (or a button with an antenna icon), which disable the module's power supply. In Ubuntu, the network indicator in the upper right corner may show "Wireless is disabled" or "Airplane mode," which indicates a software lock.
To deeply check the hardware status, use the terminal. The command lspci will display a list of all connected PCI devices, including internal WiFi cards. If you're using a USB dongle, the following command will help: lsusbIf your device is not listed when the physical switch is enabled, this may indicate a faulty module or that it is disabled in the BIOS/UEFI.
☑️ WiFi Diagnostics
Another diagnostic tool is the utility rfkillIt displays the wireless interface blocking status. If you see the line "Hard blocked: yes," the problem is hardware or BIOS-related. If "Soft blocked: yes," the blocking is software-related and can be removed with a command. It's important to distinguish between these states to avoid wasting time installing drivers for a fixed switch.
Using the Additional Drivers GUI
The easiest and safest way to resolve the issue of no WiFi for most users is to use the built-in driver management tool. In Ubuntu, it's called "Additional Drivers" (formerly known as Jockey). The system automatically scans your hardware, checks it against an online database, and offers to install the necessary proprietary modules.
To start the search, open the application menu and type “Drivers” in the search or go through Settings → About → Additional DriversOnce launched, the program will begin searching for available hardware. This process can take anywhere from 10 seconds to several minutes, depending on your connection speed (if you have a cable or phone connection) and the amount of hardware installed.
If the system finds a suitable driver, for example for cards Broadcom BCM43xx, it will offer several options. It's usually recommended to select the option labeled "recommended" or "tested." After selecting, click "Apply changes" and wait for the installation to complete. In some cases, a reboot will be required, but often the module is activated immediately.
What to do if the driver list is empty?
If the utility reports "No proprietary drivers in use" and doesn't offer anything new, this means either the driver is already built into the kernel (but doesn't work), or there's no proprietary driver for your device in the Ubuntu repositories. In this case, you'll need to perform a manual installation via the terminal or ensure your system has an internet connection to update the package lists.
Working with the terminal: determining the adapter model
When graphical methods fail, the command line comes to the rescue. Knowing the exact model of your adapter is 90% of the solution. In Linux, devices are often identified not by a fancy marketing name, but by manufacturer identifiers. To display this information, use the command lspci -nn for internal cards or lsusb for external.
In the command output you will see lines like this: Network controller: Broadcom Corporation BCM43142 ... [14e4:4365]Numbers in square brackets [14e4:4365] — these are the Vendor ID and Device ID. The first part indicates the manufacturer (in this case, Broadcom), the second indicates the specific chip model. These are the codes we'll use to search for a solution online or in knowledge bases.
It is also useful to check whether the kernel sees the network interface itself, even without the driver. The command ip link show or iwconfig (if the wireless-tools package is installed) will display a list of interfaces. WiFi interfaces are usually named as wlan0, wlp2s0 etc. If there is no interface at all, it means that the module is not defined by the system at a low level.
For more detailed information about the kernel and loaded modules, use the command lshw -C networkIt will give a detailed report on the network status, including the status configuration: driver=If instead of the driver name it says UNCLAIMED, this means that the device was found, but the driver for it was not loaded.
Installing Broadcom and Realtek drivers manually
Problems with adapters Broadcom are the most common, as this manufacturer has historically been reluctant to share documentation. For many models, such as the BCM4311, BCM4313, and BCM4321 series, there is a package in Ubuntu firmware-b43-installer or bcmwl-kernel-sourceInstallation is performed by the command sudo apt install bcmwl-kernel-sourceAfter installation, the module must be activated using the command modprobe wl.
The situation with Realtek (especially the RTL8812AU and RTL8821CE models) often require driver compilation from source code, as pre-built packages may not work with newer kernel versions. The process is more complex: first, you need to install the compiler and kernel header files using the command sudo apt install build-essential linux-headers-$(uname -r)Then the source code is downloaded from GitHub, unpacked, and compiled using a script. make And make install.
It is important to understand that when updating the Linux kernel (using the command apt upgradeManually installed drivers may fail because they are tied to a specific kernel version. You'll have to recompile them. For Realtek drivers, there are DKMS modules that automatically rebuild when the kernel is updated, which is the preferred option.
⚠️ Attention: When manually compiling drivers from GitHub, ensure the repository is maintained and compatible with your kernel version. Using outdated instructions for newer versions of Ubuntu (e.g., 22.04 or 24.04) may result in compilation errors or system instability. Always check the last commit date of the repository.
Configuring Network Manager and Resolving Conflicts
In modern versions of Ubuntu, the service responsible for managing network connections is NetworkManagerSometimes the driver is installed correctly, but the service cannot manage the device due to configuration conflicts or remnants of old settings. Configuration files are stored in the directory /etc/NetworkManager/Checking logs via journalctl -u NetworkManager may identify the cause of the connection failure.
A common problem is power saving management. The WiFi adapter may go into sleep mode and not wake up, which appears to be a lost connection. To disable power saving for WiFi, create a configuration file. /etc/NetworkManager/conf.d/default-wifi-powersave-on.conf and write the value there wifi.powersave = 2 (where 2 means power saving is disabled). This often solves the "flickering" connection problem.
It is also worth checking whether the service is blocking the connection. ModemManager, which sometimes mistakes WiFi adapters for modems and tries to control them. Temporarily stopping the service with the command sudo systemctl stop ModemManager This will help diagnose this conflict. If WiFi works again after stopping services, you need to exclude the device from ModemManager control via udev rules.
Table of common problems and solutions
To quickly navigate possible malfunctions, use the following table. It summarizes the main symptoms and the corresponding commands or actions. Remember that each system is unique, and the combination of factors may vary.
| Symptom | Possible cause | Team / Solution |
|---|---|---|
| There is no WiFi icon in the tray | The driver is not loaded or the module is disabled. | sudo modprobe -r And modprobe |
| The network list is empty | Problem with Region or frequency range | Check sudo iw reg set |
| "Device not ready" error | Control conflict or sleep mode | Disable PowerSave in NetworkManager |
| The adapter is not detected | Hardware lock or BIOS | Check rfkill list and BIOS |
| Low speed after installation | Incorrect driver (open source instead of proprietary) | Switch to bcmwl-kernel-source |
FAQ: Frequently Asked Questions
Why doesn't Ubuntu see my WiFi adapter after installation?
Most likely, the distribution is missing proprietary firmware for your model. This often happens with new laptops or Realtek/Broadcom adapters. You need to connect to the internet via a USB modem (or Android phone) or an Ethernet cable so the system can download the missing packages via "Additional Drivers."
How to install a driver without internet access?
You'll need to download the .deb driver packages on another computer with network access (site packages.ubuntu.com) and transfer them to a USB flash drive. Then install them using the command sudo dpkg -i filename.debYou can also use your smartphone as a USB modem (RNDIS mode); Ubuntu usually automatically detects it as a wired connection.
Is it safe to disable Secure Boot to install drivers?
Yes, this is often necessary. WiFi drivers, especially proprietary ones, must be digitally signed to load with Secure Boot enabled. If the driver is unsigned (and in Ubuntu repositories, they often aren't signed with the user key), the system blocks it from loading. Disabling Secure Boot in the BIOS solves this problem.
Can a system update break WiFi?
Yes, especially if you used manual driver installation (make install). Updating the Linux kernel may cause the old driver to become incompatible with the new kernel. It is recommended to use DKMS packages, which automatically rebuild modules when updating the kernel.
⚠️ Note: Command line interfaces and package names may change in new versions of Ubuntu. Always check the command syntax for your specific distribution version, as upgrading from netplan to other configurators or changes in NetworkManager may affect network management.