Why Debian Can't Detect WiFi: Diagnostics and Startup

The situation when after installing the operating system Debian The lack of a wireless network icon on the screen is familiar to many users. Unlike distributions like Ubuntu or Mint, Debian adheres to the free software philosophy by default and often does not include proprietary software. binary drivers to the main repository. This results in the physical adapter, whether installed in the laptop or connected via USB, simply not being detected by the system.

The problem may lie either in the absence of firmware or in a conflict between kernel versions and a specific chipset. Wi-Fi adapters Network adapters from Realtek, Broadcom, and MediaTek often require manual installation of additional packages to function correctly. Without these components, the operating system sees the network card but doesn't know how to manage it, leaving the user without access to the global network.

In this guide, we'll walk you through the steps to restore your connection. We'll cover diagnostic methods via the terminal, how to install missing components, and how to resolve specific kernel module issues. It's important to understand that most of the steps will require temporary wired connection or the ability to transfer files via USB drive.

Primary equipment diagnostics

Before installing the drivers, you need to accurately identify the model of your network adapter. The system may not display WiFi in the graphical interface, but the device will be accessible at the hardware level. To obtain a list of all connected PCI and USB devices, use the utility lspci or lsusb.

Run the command lspci | grep -i network for internal cards or lsusb for external USB dongles. In the output, you'll see lines with vendor and device IDs, such as "Realtek Semiconductor Co., Ltd." or "Broadcom Limited." This information will be the key to finding the right package. firmware.

If the device is displayed in the command output but is marked as "unclaimed" or has no associated driver, then the kernel sees the hardware but has no instructions for using it. In this case Missing firmware-realtek or firmware-misc-nonfree package is the most likely cause of the failure.

  • 🔍 Use the command lspci -nnkto see which driver (kernel driver in use) is currently enabled for the network card.
  • 🔍 Check for blocked interfaces with the command rfkill list, sometimes the adapter is disabled by software.
  • 🔍 Make sure Wireless LAN is enabled in BIOS/UEFI, as some laptops have a hardware switch.

⚠️ Attention: If the team lspci If the network controller isn't showing up at all, the device may be physically faulty or disabled at the BIOS level. Check the power consumption and peripheral settings in UEFI.

Once you obtain the device ID (e.g., 10ec:8168), you can pinpoint the required package. Modern cards often require not only the basic driver but also the microcode that loads when the kernel module starts.

Working with repositories and non-free packages

The main reason why Debian doesn't detect WiFi is due to the software sources settings. By default, the file /etc/apt/sources.list only repositories can be activated main, containing exclusively free software. Proprietary drivers are located in sections non-free And non-free-firmware.

You need to edit the sources.list file, adding the appropriate components to the deb and deb-src lines. For example, the line should look like this: deb http://deb.debian.org/debian/ bookworm main contrib non-free non-free-firmwareAfter changing the list of sources, be sure to update the package cache with the command apt update.

What should I do if I don't have internet access to update the lists?

You will need to download the firmware package from another computer with network access (using packages.debian.org) and transfer it to the target machine via USB stick, then install it with the command dpkg -i package_name.deb.

Once the repositories are connected, packet search becomes available. The meta-packet is suitable for most wireless cards. firmware-misc-nonfree, which contains microcode for a wide range of devices. Realtek cards often require a separate package. firmware-realtek, and for Broadcom - firmware-brcm80211.

  • 💾 Install the package firmware-linux-nonfree to support general-purpose proprietary drivers.
  • 💾 Intel Wi-Fi 6 cards often require a package firmware-iwlwifi.
  • 💾 Don't forget to complete modprobe -r And modprobe to reboot the module after installing the firmware.

Installing drivers for popular chipsets

The installation process depends on the chip manufacturer. Adapters are traditionally considered the most problematic. Broadcom And RealtekFor Broadcom, Debian often uses a driver brcmfmac or wlInstalling the package firmware-brcm80211 usually solves the problem automatically, but sometimes manual loading of the module is required.

For Realtek devices, especially RTL88xx models, the situation is more complex. Standard kernel drivers may be unstable or fail to support new encryption standards. In such cases, compiling drivers from source code using DKMS (Dynamic Kernel Module Support), which requires installing kernel headers, may be necessary. linux-headers.

☑️ Checking driver installation

Completed: 0 / 5

If automatic installation does not help, try to find a specific driver version on the manufacturer's website or in the repository backportsThe kernel versions in Debian Stable can be outdated for the latest hardware, and backports allow you to use more recent drivers without updating the entire system.

⚠️ Attention: When installing drivers from third-party sources or backports, make sure the driver version is compatible with the current Linux kernel version, otherwise the system may not boot.

Configuring the Interface and Network Manager

Even if the drivers are present, network management may not be configured. In Debian, the default may be ifupdown (file /etc/network/interfaces), which does not provide a graphical interface for selecting WiFi networks. For desktop use, it is recommended NetworkManager.

Make sure the NetworkManager service is running and active. Command systemctl status NetworkManager will show its status. If the service is stopped, start it via systemctl start NetworkManager and add it to startup. Also check that in the configuration file /etc/NetworkManager/NetworkManager.conf parameter managed installed in true.

📊 What interface do you use to manage your network?
Network Manager (GUI)
Wicd
ifupdown (interfaces)
Connman
Another

Sometimes the interface is in the "down" state. Bring it up manually with the command ip link set wlan0 up (replace wlan0 with the name of your interface). After this, an icon should appear in the system tray, scanning for available networks. If you're using GNOME or KDE, the settings are usually applied automatically after installing firmware packages.

Resolving kernel module conflicts

A common problem is a conflict between an open driver (eg. ath9k) and proprietary (wl). The system may attempt to load both modules simultaneously, resulting in WiFi initialization failure. In such cases, it's necessary to blacklist the conflicting driver.

Create a file /etc/modprobe.d/blacklist.conf (or edit an existing one) and add the line blacklist driver_name. For example, blacklist bcma or blacklist b43This will prevent the kernel from loading the specified modules at system startup, freeing up resources for the correct driver.

After making changes to the blacklist, you need to update the initramfs configuration with the command update-initramfs -u and restart your computer. This is a critical step that is often missed, preventing changes from taking effect.

Table of popular firmware packages

To quickly find the required component, use the following table of vendors and Debian packages. Having the correct package ensures that the correct microcode will load for most common situations.

Manufacturer Chip series Debian package Driver type
Intel Centrino, Wi-Fi 6 firmware-iwlwifi Open
Realtek RTL81xx, RTL88xx firmware-realtek Proprietary
Broadcom BCM43xx firmware-brcm80211 Proprietary
Atheros AR9xxx firmware-atheros Open
MediaTek MT76xx firmware-misc-nonfree Mixed

Additional debugging methods

If standard methods do not help, use the utility iwlist to scan the etheric space. Team iwlist wlan0 scanning This will show whether the adapter is even able to see neighboring access points. A lack of scanning results when the driver is running may indicate issues with the region or frequencies.

Check your region settings. Command iw reg get will show the current region. If it is set to "00" or incorrect, the range of available channels may be limited. You can change the region with the command iw reg set RU (or your country code), but for permanent use it is better to configure the parameter country in configuration cfg80211.

In extreme cases, when the drivers in the repositories don't work, you have to use DKMS to compile drivers from the GitHub source. This requires installing packages. build-essential, dkms And linux-headersThe compilation process allows you to obtain a driver tailored specifically to your kernel version.

⚠️ Attention: Command-line interfaces and package names may change in new Debian versions (for example, the transition from Buster to Bookworm). Always check package names in the official repository or via apt search before installing.

What should I do if WiFi disappears after a kernel update?

Most likely, the kernel headers were updated, and the DKMS module was not rebuilt automatically. Run the dkms autoinstall command to force a rebuild of the modules for the new kernel version.

Frequently Asked Questions (FAQ)

Why did WiFi work after installing Debian, but disappear after rebooting?

This is a classic symptom of a driver conflict or a disabled service. Most likely, a conflicting kernel module is activated during system boot, blocking the primary driver. Check the logs. dmesg for firmware errors and make sure the correct driver is added to /etc/modules for forced download, and the conflicting one - in the blacklist.

How to install drivers without internet access?

You'll need another computer with network access. Download the .deb packages (firmware and dependencies) corresponding to your architecture (usually amd64) from packages.debian.org. Copy them to a USB flash drive, connect them to Debian, and install them using the command sudo dpkg -i *.debAfter installation, run modprobe for the required module.

What is the difference between firmware-iwlwifi and firmware-misc-nonfree?

firmware-iwlwifi contains microcode exclusively for Intel wireless cards. The package firmware-misc-nonfree is a collection of proprietary firmware for various hardware (Realtek, MediaTek, older cards) that isn't included in specialized packages. It often makes sense to install both.

Why does the modprobe command return a "Module not found" error?

This means the driver module is not found in the current kernel. This could be due to: the driver is not installed in the system, the module has a different name (check the documentation for your chip model), or the kernel version is too new/old for this module. Use lsmod to view the list of loaded modules.