Installing a Linux operating system is often the first step to improving computer performance and security, but users immediately encounter a common problem: a lack of wireless connectivity. Unlike Windows, where drivers are often built into the system image or automatically downloaded from extensive repositories, Ubuntu The situation with proprietary hardware can be ambiguous. If, after installing the system, you don't see any available networks, and the network icon in the upper right corner of the screen shows that the wireless adapter is disabled or missing altogether, this is a sure sign that the system lacks specific software to work with your device. Wi-Fi module.
The difficulty lies in the fact that to connect to the internet, you need a driver, and to download the driver, you need an internet connection. This vicious circle can be broken in several ways: using a wired Ethernet connection, sharing the internet from an Android smartphone via USB, or downloading the necessary packages on another device in advance. In this article, we'll cover in detail how to identify your device, find the appropriate driver, and successfully integrate it into the system kernel, restoring full internet access.
Before taking any active steps, it's important to thoroughly diagnose your hardware. Don't blindly download files from untrusted sources, as this can lead to system instability or kernel version conflicts. We'll look at Ubuntu's built-in tools, such as the utility Additional Drivers, and more advanced terminal methods that allow you to install drivers manually if automatic tools fail.
The first and most important step is to accurately identify the model of your wireless adapter. Without this information, any further action will be like shooting blindfolded, as the drivers for Realtek will not fit for Broadcom or IntelThere is a powerful tool in Linux lspci for devices on the PCI bus (internal cards) and lsusb for external USB dongles that display comprehensive information about connected equipment.
Open the terminal using the keyboard shortcut Ctrl+Alt+T, and enter the command lspci -nn | grep -i networkIf you have an external adapter, replace part of the command with lsusbIn the output you will see lines containing manufacturer identifiers, for example 8086 for Intel or 10ec For Realtek. Write down these codes; you'll need them to find the exact model name in the database or on the manufacturer's website.
It often happens that the system sees the device, but does not know how to work with it, marking it as "Unclaimed" or simply not creating the corresponding network interface. wlan0In this case, knowledge of the exact chipset (for example, RTL8821CE or BCM43142) becomes critically important, since software is searched for specifically for the chipset, not the laptop brand. Sometimes the command sudo lshw -class network, which shows a more detailed technical specification, including the driver status in the field configuration.
blockquote>
⚠️ Important: If you are using a laptop with hybrid graphics or a complex power saving system, make sure the adapter is not blocked at the BIOS/UEFI level. Check the section Power Management or Wireless in the BIOS settings before blaming the operating system.
Once the model is identified, you can move on to finding a solution. In most cases, there are already ready-made packages for popular chipsets in the Ubuntu repositories, so you won't need to compile the code manually. However, for newer or, conversely, very old models, you may need to connect to third-party repositories or build from source code, which requires careful consideration.
The easiest and safest way to resolve this issue is to use the built-in mechanism for managing additional drivers. Ubuntu has a large database of proprietary modules that are not included in the standard distribution due to licensing restrictions, but can be easily installed by the user through the graphical interface. This method is ideal for beginners, as it eliminates the risk of entering erroneous commands and automatically handles dependencies.
To launch the utility, open the application menu and find the item Software & Updates (Programs and updates). Go to the tab Additional Drivers (Additional Drivers). The system will scan your hardware and offer available options. If your adapter is supported, you'll see a list with a recommendation, such as: bcmwl-kernel-source for Broadcom or firmware-b43-installer.
Select the recommended driver and click the button Apply ChangesThe installation process will take a few minutes, during which the system will download packages and compile modules for the current kernel. Once complete, be sure to restart your computer for the changes to take effect. If the Wi-Fi icon appears and starts searching for networks, the issue is resolved.
In situations where the graphical interface doesn't offer solutions, or if you prefer command-line control, a package manager comes to the rescue. aptOften, necessary firmware files are already in the repositories, but are not installed by default. Using the terminal, you can install packages. linux-firmware or specific sets such as firmware-realtek or firmware-iwlwifi for Intel.
Before installing new packages, always update your repository lists with the command sudo apt updateThis ensures you download the latest available driver version. You can then try installing the universal firmware pack with the command sudo apt install linux-firmwareIn 90% of cases, this covers the needs of most standard network cards.
Some devices, especially older Broadcom models, require installation of a package bcmwl-kernel-sourceMake sure you have a cable or phone internet connection, as the package is several megabytes in size. After installation, run the command sudo apt install bcmwl-kernel-source the module will be added to the kernel, but manual module switching may be required if the system still uses the open source driver b43 instead of proprietary wl.
Sometimes it can be useful to check which firmware files are missing from the system. Utility dmesg may show boot errors when starting the system. Enter dmesg | grep firmware and carefully examine the output. If you see messages about the file not being found (failed to load), this will tell you the exact name of the missing component that needs to be found and placed in the directory. /lib/firmware.
The most complex, but often the only possible option for new or exotic adapters, is compiling the driver from source code. Hardware developers may not provide ready-made deb packages, releasing only an archive with the C code and instructions. READMETo work, you will need a set of compilation tools, which includes a compiler gcc and kernel header files.
Install the required dependencies with the command sudo apt install build-essential git dkms linux-headers-$(uname -r). Plastic bag dkms (Dynamic Kernel Module Support) is especially important: it allows the driver to be automatically rebuilt when the system kernel is updated, eliminating the need to repeat the process after every Ubuntu update. Without DKMS, your Wi-Fi may fail after the first system update.
The installation process usually looks like this: cloning a repository from GitHub (often these are projects like rtl88x2bu or mt7921u), go to the folder and run the installation script. For example:
The script will automatically call make, compile the module, and register it in the system. Be careful with kernel versions: a driver written for kernel 5.10 may not work on 6.5 without some code modification.git clone https://github.com/muzzle/repository.gitcd repository
sudo ./install.sh
What to do if compilation produces errors?
Compilation errors are often related to changes in the Linux kernel API. If you see red lines with the text "error," copy them into a search engine. Often, other users have already encountered this problem and posted a patch or instructions for fixing a specific .c or .h file.
After successful compilation and installation of the module, you need to run the command sudo modprobe module_nameto load the driver into memory without rebooting. If the command runs without errors, check the interface status. If the module conflicts with an already loaded driver, you will need to unload it first with the command sudo modprobe -r old_module_name.
Even after successful driver installation, the wireless network may not appear if the adapter is blocked by software or hardware. In Linux, a utility is responsible for managing the state of the radio modules. rfkillIt allows you to see the lock status and remove it. Run rfkill listto get a list of all wireless devices and their current status.
You will see a table that will indicate whether the device is blocked (yes) or not (no). The blocking can be "hard" (hardware, via a switch on the case) or "soft" (software). If you see "Soft blocked: yes," you can remove the blocking with the command sudo rfkill unblock wifi or sudo rfkill unblock allThis will instantly activate the adapter.
With a hardware lock it’s more complicated: you need to look for a physical switch on the laptop case or use a key combination (usually Fn + one of the F-keys with the antenna). Sometimes the BIOS can block the device if Wireless LAN is disabled in the settings. It's also worth checking if Airplane mode is enabled in the Ubuntu interface.
☑️ Wi-Fi diagnostics
Below is a table of common chipsets and their corresponding driver packages in the Ubuntu repositories. This information will help you quickly determine which package to look for if automatic installation fails.
| Manufacturer | Chip series | Driver package (Ubuntu) | Driver type |
|---|---|---|---|
| Intel | Centrino, Wireless-N, AX200 | firmware-iwlwifi | Open (in core) |
| Broadcom | BCM43xx | bcmwl-kernel-source | Proprietary |
| Realtek | RTL81xx, RTL88xx | firmware-realtek | Binary blobs |
| Atheros | AR9xxx | firmware-atheros | Open (ath9k) |
| MediaTek | MT7921 | firmware-mt76 | Open |
It's important to understand that package names may differ slightly between different versions of the distribution (e.g., 20.04 LTS vs. 24.04 LTS). Always check the latest packages in the official repository or through search. apt searchUsing drivers from third-party PPAs (Personal Package Archives) may provide a more recent version, but carries the risk of system instability.
If you've updated your system kernel (for example, by upgrading to a newer version via the HWE stack), older drivers installed manually may no longer work. In this case, DKMS should automatically rebuild the module, but if you installed the driver "unclearly" without DKMS, you'll have to repeat the process for the new kernel.
⚠️ Warning: When manually replacing system driver files (copying .ko files directly to /lib/firmware), you assume responsibility for the integrity of the system. An incorrect file version may cause the system to fail to boot or lose network connectivity after a kernel update.
Finally, it's worth noting that Wi-Fi support in Linux is constantly improving. What didn't work a year ago may now be built into the kernel by default. However, for owners of very new hardware (released within the last six months), driver issues still exist. Update your system regularly, use LTS versions for stability, and always have a wired connection handy for emergency software installations.
Remember that the Ubuntu community is vast. If you encounter a unique issue, searching for "adapter_model + ubuntu + wifi not working" will almost always lead you to forums with a ready-made solution or an installation script written by enthusiasts.
Frequently Asked Questions (FAQ)
Why does the driver stop working after updating Ubuntu?
This happens because upgrading the Linux kernel changes its internal structure (ABI). Drivers compiled for the older kernel version become incompatible. If you used DKMS, the module should have been rebuilt automatically. If not, you'll need to repeat the installation procedure manually for the new kernel.
Is it possible to use Windows drivers in Ubuntu?
Directly, no. The executable file formats (.exe, .sys) are not compatible with Linux (.ko, .so). However, there is a project ndiswrapper, which allows you to run some Windows drivers (for older cards) on Linux, but this is considered a hacky and unstable solution. It's better to look for a native Linux driver.
How do I roll back a driver if the internet connection is lost after installation?
If the system boots, remove the installed package via sudo apt remove package_name Or remove the module from DKMS. If the system won't boot, try booting into Recovery Mode via GRUB and removing the problematic package from there, or use a LiveUSB to access the file system.
Where can I find a driver if it's not in the repositories?
Search the hardware manufacturer's official website (Support/Downloads for Linux). If you can't find anything there, check GitHub—enthusiasts often post up-to-date driver versions for new Realtek or MediaTek chips there. Search by device ID (Vendor ID and Device ID).
Does Secure Boot affect Wi-Fi drivers?
Yes, it does. Secure Boot prevents the loading of kernel modules that aren't signed with a trusted key. Third-party drivers you install manually usually aren't signed by Canonical. The solution: either disable Secure Boot in the BIOS or sign the module yourself (a complex process for beginners).