Experiencing a lack of wireless connection immediately after installing a Linux operating system is a classic situation familiar to many users. Often, the distribution Ubuntu The basic package doesn't include the necessary proprietary modules for your network card. This creates a vicious circle: downloading a driver requires internet access, and internet access requires a driver.
However, there's no need to panic. Modern versions of the distribution have powerful tools for automatically searching and installing missing components. In most cases, the problem can be resolved by connecting the smartphone via USB or using an Ethernet cable.
In this article, we'll cover every step, from hardware diagnostics to manually compiling kernel modules. You'll learn how to determine the exact chipset model, use repositories, and resolve version conflicts. Proper network setup will become the foundation for the stable operation of your system.
Network adapter diagnostics
The first step should always be accurate hardware identification. Without understanding the exact chip installed in your laptop or USB adapter, any attack will be like target practice. The system may see the device, but not know how to properly interact with it.
To get comprehensive information about your hardware, use the utility lshwIt displays detailed computer configuration, including the vendor and model of the network card. Launch Terminal and run the command with root privileges.
sudo lshw -class network
Pay attention to the lines vendor And productThis information will help you find the required package in the repositories. If the device is displayed as UNCLAIMED, this is a direct signal that the driver is missing or not loaded.
- 🔍 lspci — shows devices connected via the PCI bus (internal cards).
- 🔌 lsusb — displays connected USB devices (external adapters).
- 📡 iwconfig — displays information about wireless interfaces if they are already active.
⚠️ Attention: If the team lspci If your network card is not showing, the device may be disabled at the BIOS/UEFI level or physically faulty.
It's also useful to check if any module for your device is loaded at all. The command lsmod will show a list of active kernel modules. Compare it with the output lspci -k, which will show which driver (Kernel driver in use) is assigned to the device.
Using additional drivers
The easiest and safest way to solve this problem is to use the built-in proprietary driver management tool. Developers Ubuntu We created a mechanism that automatically scans hardware and suggests suitable solutions from official repositories.
To access this tool, open the application menu and find "Software & Updates." Go to the "Additional Drivers" tab. The system will search for available drivers and offer a list of available options.
If your adapter appears in the list (often Broadcom or Realtek), select the recommended option and click "Apply Changes." The process will take a few minutes, after which you'll need to reboot.
- 🚀 Automation: The system will automatically download and install a compatible version.
- 🛡️ Stability: We use proven packages that have passed testing.
- 🔄 Updates: Drivers will be updated along with the system via the standard manager.
⚠️ Attention: This method requires a temporary internet connection via an Ethernet cable or USB modem (USB tethering mode on Android/iOS).
Sometimes the list may be empty, even if the device is detected. This means there are no available drivers in the repositories, and you'll have to resort to manual installation or using DKMS modules. Don't despair if the graphical interface is silent.
Installation via terminal and package managers
If the graphical interface doesn't help, the command line comes to the rescue. The terminal provides direct access to repositories and allows you to install packages that may be hidden in the GUI. First, refresh your package lists to ensure they're up to date.
sudo apt update
Often, there are ready-made meta-packages for popular Broadcom chipsets. For example, the BCM43xx series often requires a package bcmwl-kernel-sourceInstallation is done with a single command, but requires an internet connection.
sudo apt install bcmwl-kernel-source
After installation, the module should load automatically. If this does not happen, try restarting your computer or manually launching the module via modprobe. Make sure you enter the module name without the .ko extension.
- 📦 firmware-linux-nonfree — a set of firmware for various devices.
- 🔧 linux-firmware — the main microcode package for Linux kernels.
- 📶 network-manager — a utility for managing network connections.
It's important to understand the difference between a driver (kernel module) and firmware. A driver is a program that controls the device, while firmware is the data loaded into the device itself during startup. The absence of firmware often results in module loading errors.
What to do if apt doesn't find a package?
If the repository doesn't contain the package you need, check your internet connection and make sure your sources (sources.list) are correct. You can also try enabling the universe repository if it's disabled: sudo add-apt-repository universe.
Manual installation of Realtek and other drivers
The situation with adapters Realtek, especially newer models with Wi-Fi 6 support, is often complicated by the lack of support in the distribution's stable kernel. In such cases, you have to download the source code from GitHub and compile it yourself.
Compilation requires kernel headers and build tools. Without them, the process of converting source code into a working module is impossible. Install the basic toolchain before you begin.
sudo apt install build-essential dkms git linux-headers-$(uname -r)
Find a repository with the driver for your chipset (e.g., rtl8821cu or rtl88x2bu). This is usually an open-source project on GitHub. Clone the repository to your home directory and run the installation script.
- 📂 git clone — downloads a copy of the repository with the code.
- ⚙️ make — compiles the source code into a kernel module.
- 📥 make install — copies the module to the system folder and registers it.
⚠️ Attention: Manually updating the Linux kernel can cause drivers to stop working. Use DKMS (Dynamic Kernel Module Support) to automatically rebuild the module during system updates.
The manual installation process requires careful attention. One mistake in the command can render the network inoperable. Always check the terminal output for errors (lines starting with Error or failed).
☑️ Checklist before compiling the driver
Comparison of popular Wi-Fi chipsets
Not all network adapters are equally Linux-friendly. Some manufacturers have opened up their specifications and provide excellent support, while others force users to find workarounds. Understanding the differences will help when choosing equipment.
Below is a table showing the support status of popular manufacturers in the environment UbuntuThis data is based on community experience and driver availability in major repositories.
| Manufacturer | Status in Linux | Common problems | Recommendation |
|---|---|---|---|
| Intel | Excellent (iwlwifi) | Rare freezes, require fresh firmware | Best choice for laptops |
| Atheros / Qualcomm | Good (ath9k, ath10k) | Minimal, works out of the box | Stable option |
| Realtek | Intermediate / Difficult | Frequent need for manual installation, problems with new kernels | Only if there is no alternative |
| Broadcom | Average (propietary) | Requires installation of proprietary drivers | Internet connection required for installation |
When choosing a USB adapter, always look for reviews from Linux users. Marketing terms like "Plug and Play" often imply that they only work with Windows. Chipsets based on MediaTek are also becoming popular and often require separate firmware installation.
If you're buying hardware specifically for Linux, pay attention to compatibility lists. Adapters with Atheros and Intel chips typically work right out of the box, without any hassle.
Troubleshooting common errors and conflicts
Even after successful installation, connection stability issues may arise. The network may drop out, speed may be slow, or the system may not even see available access points. Troubleshooting the logs will help you find the cause.
Use the command dmesg | grep firmware or dmesg | grep wifi to view network-related kernel messages. Red lines indicate a specific module loading error or missing firmware file.
A common problem is a conflict between the built-in module and the manually installed driver, or blocking via rfkillCheck the wireless device blocking status.
rfkill list all
If you see the status Soft blocked: yes, unlock the device software. If Hard blocked: yes, look for a physical switch on the laptop case or a key combination (usually Fn + F-key with antenna).
- 🚫 rfkill unblock all - removes software blocking.
- 📉 Power Management - disabling power saving may improve stability.
- 🔄 Module Blacklist - Sometimes you need to prevent a conflicting driver from loading.
⚠️ Attention: Interfaces and package names may change with the release of new Ubuntu versions (for example, when switching from netplan to other configuration tools). Always consult the official documentation for your distribution version.
Keep in mind that power saving settings can disable the Wi-Fi adapter to save battery. If the connection is constantly dropping, try disabling power saving mode for the wireless card in the configuration. NetworkManager.
Frequently Asked Questions (FAQ)
Why did Wi-Fi stop working after updating the kernel?
When updating the kernel, older modules installed manually may become incompatible with the new version. Solution: reinstall the driver or ensure it is built using DKMS, which automatically rebuilds the module for the new kernel.
Is it possible to install a Wi-Fi driver without internet?
Yes, but it's more complicated. You'll need to download the deb packages of the drivers and dependencies on another computer, transfer them to a USB flash drive, and install them locally using the command sudo dpkg -i package.deb.
How do I know if my driver works in 64-bit mode?
Modern Ubuntu distributions use a 64-bit kernel by default. Drivers installed from repositories or via DKMS are automatically compiled for your system's architecture. There's no need to switch between the two.
Where can I find the firmware if the system says "firmware missing"?
The firmware files are usually located in the package linux-firmwareIf the required file is not available, it can be found on the chipset manufacturer's website or in specialized repositories, and copied to /lib/firmware and reboot.