How to identify your Wi-Fi adapter in Linux: diagnostics and drivers

Working with the Linux operating system often requires a deeper understanding of computer hardware than with Windows. One of the most common tasks faced by beginners and system administrators is identifying the wireless network interface. This is necessary for installing proprietary drivers, setting up an access point, or troubleshooting an unstable connection.

Unlike graphical interfaces that can hide details, the command line provides comprehensive information about ironKnowing the exact chipset model, you can find the corresponding kernel module or download the firmware from the manufacturer's website. Without this step, network setup often turns into a guesswork.

There are several standard utilities built into most distributions that allow you to obtain the necessary data in seconds. We'll cover both classic, time-tested methods and modern tools for detailed diagnostics. Understanding the difference between a physical device and a logical interface will be key to successfully configuring your network.

Using the lspci utility for internal cards

If your Wi-Fi adapter is a Mini-PCIe, M.2 card, or built directly into your laptop's motherboard, the most reliable source of information is the command lspciThis utility reads data from the PCI configuration space, providing a list of all connected peripheral devices. The keyword "Network" or "Wireless" is used to filter the output and search specifically for wireless cards.

Run the command

lspci | grep -i network
in the terminal. In the response, you'll see the vendor and device IDs, and often the chipset model name. For example, the line might mention Intel Corporation Wireless 8265 or Qualcomm Atheros QCA6174This data is critical for finding drivers.

⚠️ Note: If the command returns an empty result, this does not always mean the adapter is missing. The device may be disabled at the BIOS/UEFI level or in a deep power-saving state and not responding to PCI bus requests.

For more detailed information, including the equipment ID in the format XXXX:YYYY, add a flag -nnThis is especially useful when the model name is displayed incorrectly or is represented by a generic name. Knowing the exact ID, you can search for the device in the pci.ids database and determine its real manufacturer, even if the markings on the case have worn off.

Diagnosing USB Wi-Fi adapters with lsusb

External wireless modules connected via a USB port do not appear in the list of PCI devices. A utility is designed to detect them. lsusbIt queries the universal serial bus controller and lists all connected devices. This is the first step in troubleshooting problems with "whistles" that are no longer detected by the system.

Run the command

lsusb
and carefully examine the output. Look for lines containing the words "Wireless," "Wi-Fi," "802.11," or the names of well-known network equipment manufacturers, such as Realtek, MediaTek or Ralink. Unlike PCI, a specific adapter model is often specified here, for example, TP-Link Archer T4U.

It's important to distinguish between the device ID and revision. Sometimes the same adapter may be released with different chipsets (for example, v1 and v2), and the drivers for them will be incompatible. The command lsusb -v (from verbose) will provide the most detailed report, including USB version, maximum speed, and device class.

☑️ Checking the USB adapter

Completed: 0 / 4

Analyzing interfaces using ip and ifconfig

Once the physical presence of the adapter has been confirmed, it is necessary to understand how the operating system assigned it a logical name. The traditional command ifconfig is gradually becoming a thing of the past, giving way to more powerful tools from the package iproute2However, knowing the syntax of both tools is useful for working on older servers or embedded systems.

A modern way to set up network interfaces is the command

ip link show
In the list you will find interfaces with names like wlan0, wlp2s0 or wlo1The presence of the "wl" prefix usually indicates a wireless connection, while "en" denotes wired Ethernet. Status NO-CARRIER or the absence of a flag UP indicates that the interface exists but is not active.

If you use ifconfig -a, pay attention to the line HWaddr — This is your adapter's MAC address. It's unique for each device and may be needed to configure filtering on the router. Packet statistics are also displayed here: if the error or dropped counters are rapidly increasing, this indicates a driver or signal issue.

Team Purpose Output example
ip link Show link status wlan0:
ifconfig Status and IP address inet 192.168.1.5 netmask...
iw dev List of Wi-Fi devices Interface wlan0
nmcli dev NetworkManager Status wlan0 connected

Specialized tools: iw and iwlist

There is a package for working exclusively with wireless networks in Linux iw, which is a modern replacement for the outdated iwconfig. Team iw dev It doesn't just show the interfaces, but also confirms that the driver supports the Wi-Fi operating modes. If the adapter isn't shown here, but is visible in lspci, this means that the driver is either not loaded or does not support cfg80211.

To find out the adapter's capabilities, such as supported frequencies and operating modes, use the command

iw list
The output can be voluminous, so it's convenient to filter it. For example, iw list | grep"Supported Ciphers" will display encryption types. This is critical when setting up an access point: if the card doesn't support WPA3, you won't be able to configure it no matter what.

Utility iwlist (part of the package wireless-tools) is useful for scanning the environment. The command iwlist wlan0 scanning will show available networks, their signal level, and quality. A low signal level near the router may indicate a faulty antenna or driver incompatibility with the specific adapter model.

📊 Which Linux distribution do you use most often?
Ubuntu/Debian
CentOS/RHEL
Arch Linux
Kali Linux
Another

Checking loaded drivers and kernel modules

Knowing the adapter model is useless without knowing which driver supports it. In Linux, drivers are often kernel modules that are loaded on demand. The command lspci -k (or lsusb -v (For USB), the "Kernel driver in use" line will indicate the name of the active module. If the "Kernel modules" line is empty, there is no driver for your device in the system.

A utility is used to manage modules. modprobe. Team

lsmod | grep wifi
(or part of the driver name, for example, ath, rtl, iwl) will show loaded modules. If you just installed the driver manually, you need to add it to the boot configuration so it activates at system startup.

⚠️ Warning: Never remove kernel modules with the command rmmod, if you're unsure of their purpose. Removing a critical network driver can break your SSH session or access to the server, making it impossible to restore remotely.

There are often conflicts between open drivers (eg. ath9k) and proprietary (for example, ath10k). In such cases, it is necessary to create a blacklist file in the directory /etc/modprobe.d/to prevent unnecessary modules from loading. This is a common issue when using Broadcom and Realtek adapters.

What is firmware and where can I find it?

Firmware is microcode that loads into the adapter during startup. The files are typically located in /lib/firmware. If the dmesg logs show a "firmware not found" error, download the linux-firmware package for your distribution or copy the files manually from another PC.

Analysis of system logs for deep diagnostics

When standard commands fail to respond, system logs come to the rescue. The Linux kernel records the hardware detection and initialization process in detail. The utility dmesg allows you to view these messages. To filter out the noise, use grep:

dmesg | grep -i firmware
or dmesg | grep -i wlan.

You may find errors like "failed to load firmware" or "device disabled" in the logs. These messages directly indicate the cause of the malfunction. For example, if a Realtek adapter requires firmware version 35, but the system is running version 34, the device will refuse to boot. Logging is the most reliable way to understand exactly what went wrong.

It is also worth checking the system event log through journalctl (on systems with systemd). The command journalctl -u NetworkManager -f Displays connection attempts and authentication errors in real time. This helps distinguish hardware failure from network configuration issues.

Frequently Asked Questions (FAQ)

Why doesn't the lspci command see my Wi-Fi adapter?

This could be due to several reasons: the adapter is physically faulty, disabled in the BIOS/UEFI, or is being powered in power-saving mode and has fallen asleep. Try a hard reboot (not the "Shutdown" option, but a reboot or power-off for 10 seconds).

How do I know if my adapter supports monitor mode?

Use the command iw list and find the "Supported interface modes" section. If the word "monitor" is there, the adapter hardware supports this mode. However, activating it often requires special drivers and disabling network managers.

Where can I find a driver if Linux doesn't detect Wi-Fi?

First, find out the device ID via lspci -nn or lsusbThen enter this ID into a search engine along with the distribution name (e.g., "10ec:8822 ubuntu driver"). Official repositories (apt, dnf, pacman) often contain the necessary packages (linux-firmware).

Is it possible to use Windows drivers (.sys) in Linux?

Directly, no. However, there is a project ndiswrapper, which allows some Windows drivers to run on Linux. This is considered a temporary solution, as stability and performance are often lower than those of native kernel drivers.