Faced with the lack of wireless connection immediately after installing the operating system, many users Linux are confused. The situation where there's no Ethernet cable at hand and the WiFi module won't activate is a classic problem for owners of laptops with specific network controllers. This is often due to proprietary firmware for Broadcom or Realtek are not included in the standard distribution due to licensing restrictions.
Unlike Windows, where the installer automatically pulls packages from a huge repository, Ubuntu You may need manual intervention. Finding and installing the required kernel module requires an understanding of driver architecture and terminal skills. However, despite the apparent complexity, the algorithm is quite logical and straightforward.
The main thing you'll need to get started is temporary internet access to download the missing components. If WiFi isn't working, you'll have to use a wired connection or share your phone's internet connection via a USB cable. Without this step, installing specific packages will be impossible. dkms or firmware will not be possible because the repositories are unavailable.
Before taking any action, you need to accurately identify your hardware. Laptop manufacturers often use different network card models in the same model, so relying solely on the device name isn't an option. Accurate knowledge Vendor ID And Device ID will save you hours of pointless internet searching.
โ ๏ธ Note: The interfaces of graphical driver management utilities may vary depending on the Ubuntu distribution version and desktop environment used (GNOME, KDE, XFCE). If you don't find the described option in the menu, use the terminal, as it is a universal tool for all distributions.
For initial diagnostics, launch a terminal and enter the command to list PCI devices. This will allow you to see how the system sees your network adapter, even if the driver for it isn't loaded.
lspci -nnk | grep -i net -A2
If your adapter is connected via the USB bus (which is often the case with external dongles or internal modules in some laptops), use the command lsusbIn the output you will see lines with identifiers, for example 0bda:b812 for Realtek. These numbers are critical for further research.
An alternative way to get detailed information is to use the utility inxi, which aggregates system data in a convenient format. It displays not only the model but also the status of the driver currently controlling the device or attempting to do so.
inxi -N
In the received report, pay attention to the field driver. If it is indicated there N/A or unloaded, which means the operating system doesn't know how to work with this hardware. It's at this point that the process of manually installing the missing components begins.
The easiest and safest way to solve this problem is to use the built-in search engine for additional drivers. Ubuntu has a vast database of proprietary and free drivers that can be activated in a couple of clicks if a basic internet connection is already established.
Open the application menu and find the Software & Updates utility. Go to the tab Additional drivers (Additional Drivers). The system will scan your hardware and offer available firmware options.
- ๐ก Broadcom STA โ often required for older and some newer HP and Dell laptop models with 43xx series chips.
- ๐ Realtek RTL โ for many USB adapters the system may offer the rtl88xxau-dkms driver.
- ๐ถ Firmware โ sometimes a simple microcode package is offered without being tied to a specific vendor.
Select the recommended option (marked as recommended) and click the "Apply Changes" button. The system will download the necessary packages and compile the kernel modules using DKMS and prompt you to reboot. After rebooting, WiFi should appear in the list of available networks.
In cases where the graphical interface does not help or the required driver is not in the list, you have to resort to manual installation via the package manager. aptThis method requires the exact package name, which often contains the chipset name.
For popular Broadcom chips such as BCM4311, BCM4312, BCM4313, BCM4321, BCM4322, BCM43224, BCM43225, BCM43227 and BCM43228, installing the package is usually sufficient. bcmwl-kernel-sourceMake sure you have an internet connection and run the command:
sudo apt update
sudo apt install bcmwl-kernel-source
For devices Realtek The situation is more complicated, since support for different models is distributed across different packages. For example, RTL8821CE chips often require a package rtl8821ce-dkms, and for new WiFi 6 standards, you may need packages from third-party repositories or building from source.
โ ๏ธ Caution: When installing drivers via APT, always check that the new package doesn't conflict with any existing modules. Activating multiple drivers for a single device at the same time can lead to network instability or complete module failure.
It often happens that a driver exists in the repositories, but it is not loaded automatically due to a security module conflict. Secure BootThis BIOS/UEFI feature prevents loading kernel modules that are not digitally signed, which blocks many third-party WiFi drivers.
You can check the Secure Boot status with the command mokutil --sb-stateIf it returns "SecureBoot enabled," you need to either sign the module with a MOK (Machine Owner Key), which is a complex procedure, or disable Secure Boot in the BIOS.
- ๐ Restart your computer and enter BIOS/UEFI (usually F2, F10, Del).
- ๐ Find the Boot or Security section.
- โ Toggle the option Secure Boot to the Disabled position.
- ๐พ Save the settings (Save & Exit) and boot Ubuntu.
After disabling this feature, the Linux kernel will be allowed to load proprietary modules, and your WiFi adapter should work. This is the most common reason for "everything is installed, but it doesn't work."
What if Secure Boot can't be disabled?
In corporate environments or on some laptops, BIOS access may be password-protected. In this case, you'll need to use the mokutil utility to generate a signing key. After installing the driver, the MOK Manager blue screen will appear upon reboot. Select "Enroll MOK" and enter the password you set using the command.
If ready-made packages aren't suitable, the only option left is manual compilation from source code. This method is universal, but requires build tools (build-essential, linux-headers) and stable internet.
First, you need to download the archive with the driver code from the manufacturer's official website or GitHub repository. Unzip the archive, navigate to the folder, and follow the instructions in the file. READMETypically, the process looks like a standard chain of commands for compiling software in Linux.
sudo apt install build-essential linux-headers-$(uname -r) gitgit clone https://github.com/tor/repository/drivers.git
cd driver_folder
make
sudo make install
sudo modprobe module_name
Usage git It allows you to easily update the driver if a new version is released by simply repeating the pull command in the project folder. However, keep in mind that when updating the Linux kernel, you may have to recompile the driver if it is not integrated via DKMS.
Below is a table of popular chipsets and the packages most often required to run them in Ubuntu. Use it as a reference when searching for a solution.
| Chip manufacturer | Series/Model | Package in the repository | Support status |
|---|---|---|---|
| Broadcom | BCM43xx (many models) | bcmwl-kernel-source | Proprietary, stable |
| Realtek | RTL8821CE | rtl8821ce-dkms | Free, requires DKMS |
| Intel | Wi-Fi 6 (AX200/AX210) | firmware-iwlwifi | Built into the kernel, firmware required |
| Atheros | AR9xxx | firmware-atheros | Full support in the kernel |
For Intel devices, there's often no need to install separate drivers, as they're built into the kernel. The problem is usually resolved by installing the package. firmware-iwlwifi and reboot. Team dmesg | grep iwlwifi will help you see download errors if they occur.
โ๏ธ Diagnosing WiFi Problems
After installing the driver and rebooting, you may find that the network has re-established itself, but is unstable or constantly disconnecting. In this case, it's worth checking the power saving settings, which may be aggressively disabling the WiFi module.
Create a configuration file for NetworkManager to prevent the adapter from being powered down. This often solves the flickering connection issue on laptops with batteries.
sudo nano /etc/NetworkManager/conf.d/default-wifi-powersave-on.conf
Change the value wifi.powersave on 2 (which means disabling power saving) and save the file. Restart the network service with the command sudo systemctl restart NetworkManager.
โ ๏ธ Note: Disabling WiFi power saving may slightly increase your laptop's battery drain. If battery life is critical, return to the default setting (3) after testing the connection stability.
It's also worth making sure the wireless module isn't disabled in the BIOS at the hardware level. Sometimes resetting the BIOS to factory settings (Load Defaults) can help if software methods fail.
During setup, you may encounter a situation where the driver appears to be loaded, but the network interface doesn't come up. Check the command output. ip link. If the interface is present (for example, wlo1), but is in a state DOWN, try to lift it manually:
sudo ip link set wlo1 up
If the interface is not displayed in the list at all, the kernel module has not loaded. Check the list of loaded modules with the command lsmod | grep driver_nameThe absence of a result will indicate that you need to check the logs. dmesg for errors when loading the module.
A common mistake is having a "blacklist" of conflicting drivers. Blacklist files are located in /etc/modprobe.d/If you see lines there that prevent the module you need from loading, you should comment them out or delete them.
How to find a conflicting driver?
Run the lsmod command and see which modules are related to Wi-Fi. If there are multiple modules (for example, an open-source module and a proprietary one), one of them should be disabled. Temporarily removing the module with sudo modprobe -r module_name before loading the correct one often helps.
Finally, it's worth noting that the Linux ecosystem is constantly evolving, and support for new hardware appears in more recent kernel versions. If you have a very new laptop, the standard LTS version of Ubuntu may not yet include the necessary drivers.
In such cases, consider installing a more recent kernel via a package. mainline or using a version of Ubuntu with a newer driver stack. This is often the only way to get the latest adapters to work. WiFi 6E or WiFi 7.
Why doesn't Ubuntu see my WiFi adapter after installation?
Most likely, your system is missing proprietary firmware for your chipset. This is common with Broadcom and some Realtek chipsets. You need to connect to the internet via cable or USB modem and install the driver package using "Additional Drivers" or apt.
Do I need to disable Secure Boot to install drivers?
Yes, in most cases, this is necessary. Secure Boot blocks the loading of kernel modules that are not digitally signed by Microsoft. Third-party WiFi drivers are often unsigned, so the system refuses to load them for security reasons.
How do I know which driver my adapter needs?
Use the command lspci -nnk | grep -i net -A2 for internal cards or lsusb For external drivers, search online for the chip model (e.g., BCM43142) along with the word "Ubuntu driver" to find the exact package name.
Is it possible to install the WiFi driver without internet on Ubuntu?
Yes, but it's more complicated. You'll need to download .deb driver packages and all their dependencies on another computer with internet access, transfer them to a flash drive and install them manually via dpkg -iThe easiest way to share internet from a smartphone is via a USB cable (USB modem mode), which is detected as a wired network.
What should I do if WiFi stops working after updating the kernel?
When updating the kernel, the DKMS modules should be rebuilt automatically. If this does not happen, try running sudo dkms autoinstallIf the problem persists, the new kernel may not yet fully support your hardware, and you should boot from the old kernel via the GRUB menu.