How to View Linux WiFi Adapters: Diagnostic Methods

In Linux operating systems, managing network interfaces often raises questions for users accustomed to Windows graphical interfaces. However, the command line provides the most accurate and detailed information about the hardware installed on your system. For a system administrator or enthusiast, the ability to quickly identify network card is a basic skill required to install drivers or troubleshoot problems.

Connection issues can occur for various reasons, and the first step in resolving them is always checking the physical presence of the device and its visibility in the system kernel. If you're planning to update the firmware, change the driver, or simply want to know the model of your device, wireless module, you'll need to access console utilities. In this article, we'll cover all the effective methods that will help you obtain comprehensive information about your network equipment.

It is worth noting that the methods may differ slightly depending on the distribution, whether it be Ubuntu, Debian, CentOS or Arch LinuxHowever, the core set of utilities included in the kernel generally remains unchanged. Below, we'll look at the standard commands and tools that every Linux user should have in their arsenal.

Using the lspci command for internal maps

The most common way to obtain information about devices connected to the PCI bus is the utility lspciMost modern WiFi adapters, especially those built into a laptop's motherboard or Mini PCIe cards, are detected via this interface. This command lists all devices connected to the PCI bus, allowing you to see not only network cards but also video cards, sound controllers, and other hardware.

In order to filter out unnecessary information and find exactly what you need wireless adapter, you need to use filter keys. Often, in the list of devices, the WiFi card may be labeled as "Network controller" or contain the chipset manufacturer in the name, for example, Intel, Realtek or AtherosThis gives a basic understanding of what kind of hardware we are dealing with.

lspci | grep -i network

If you want more detailed information, including the Vendor ID and Device ID, which are critical for finding specific drivers, you should add the flags -nnThese numerical codes allow you to accurately identify the chipset model even if the device name is displayed incorrectly or is not in the system database.

lspci -nn | grep -i network

It is important to understand that lspci Shows only devices connected to the PCI bus. If your adapter is connected via USB (even if it's an internal M.2 module operating in USB mode), this command won't display it. In such cases, you'll need to use other diagnostic methods, which will be discussed below.

⚠️ Attention: If the team lspci If the result is empty, this doesn't always mean the WiFi module is missing. The device may be disabled at the BIOS/UEFI level, locked by a physical switch on the laptop case, or in a deep power-saving state.

Checking USB WiFi adapters with lsusb

External WiFi receivers, as well as many internal modules in modern laptops and single-board computers (e.g., Raspberry Pi) are connected via a USB interface. A utility is designed to detect them in Linux. lsusbIt scans the Universal Serial Bus and lists all connected devices, including embedded controllers, webcams, and, of course, network adapters.

Similar to the PCI situation, we need to filter the output to find wireless devices. These are often identified as "Wireless" or by the manufacturer name, such as MediaTek, Ralink or EdimaxKnowing the exact USB device model is necessary to select the correct driver, especially if the standard kernel driver does not provide full functionality of the card.

lsusb | grep -i wireless

If a simple search for "wireless" doesn't yield results, try running the command without filtering and carefully reviewing the entire list. Sometimes adapters may not have the word "wireless" in the name, but be easily recognizable by the manufacturer. It's also helpful to use the key -t, which displays the topology of USB devices in a tree form, which helps you understand which host controller your adapter is connected to.

To get detailed information about a specific device, including the USB protocol version and maximum speed, you can use the command with the flag -v in combination with identifiers obtained from the regular output. This is especially relevant when diagnosing connection speed issues, since the adapter 802.11ac, connected to a USB 2.0 port, will not be able to reach its potential.

📊 What type of WiFi adapter do you use most often?
Built-in (PCIe/M.2)
External USB
Built into the motherboard
I don't use WiFi

Analyzing network interfaces using ip and ifconfig

Once we've verified that the system sees the physical device, we need to check whether a corresponding software representation—a network interface—has been created for it. A traditional utility ifconfig in modern Linux distributions it is considered obsolete and has been replaced by a more powerful tool from the package iproute2. Team ip link Allows you to see the status of all network interfaces, including those in the "DOWN" state.

Executing a command ip link show will list all interfaces. WiFi adapters are usually referred to as wlan0, wlp2s0 or similar, where the "wl" prefix indicates a wireless connection. If you see such an interface in the list, the driver is loaded and the device is ready for configuration. The absence of an interface when the device is present in lspci or lsusb indicates problems with drivers.

ip link show

For those who are used to the good old methods, the team ifconfig -a It still remains a working alternative, showing all interfaces, even inactive ones. However, it's worth remembering that ip provides more structured and detailed output, including MAC addresses and packet queue status. This makes it the tool of choice for modern network diagnostics.

It is important to distinguish between the states of the interface: if it is marked as NO-CARRIER, this could mean the adapter isn't connected to the access point or is disabled by software. However, if the interface isn't listed at all, the problem lies deeper—at the kernel level or a physical malfunction.

⚠️ Attention: Interfaces can have different names depending on the naming policy (predictable network interface names). Instead of the usual wlan0 You may come across names like wlp3s0, where the numbers indicate the physical location of the device on the bus. Don't be intimidated by complex names; look for the "wl" prefix.

Using specialized wireless utilities

To work specifically with wireless networks in Linux, there is a set of specialized utilities combined into a package iw (or iwcfg (on older systems). These tools allow you to obtain information that is not available through general network commands, such as channel frequency, signal strength, and supported standards. IEEE 802.11. Utility iw dev shows a list of wireless interfaces and their current status.

iw dev

Team iwlist, included in the package wireless-tools, provides even more detailed information, including scanning available networks and adapter specifications. Although iw is considered a modern replacement, iwlist is still often used to quickly obtain summary data on signal quality and supported operating modes (Master, Managed, Monitor).

These tools not only allow you to view the adapter but also put it into monitoring mode, which is necessary for traffic analysis and network security testing. However, to simply check for the device's presence, a basic output is sufficient, confirming that mac80211 driver successfully initialized the hardware.

Monitoring mode

Enabling monitor mode allows the network card to capture all packets in the air, not just those addressed to it. This is a powerful diagnostic tool, but it can temporarily disrupt your internet connection.

Checking drivers and kernel modules

The foundation of any hardware in Linux is a kernel module. To find out which driver controls your WiFi adapter, use the command lspci -k (for PCI devices) or lsusb -v (for USB, although the driver information may be less obvious there). Key -k Adds information about the kernel driver in use and available modules to the output.

The line "Kernel driver in use" will indicate the module name, for example, iwlwifi for Intel cards or ath9k For Atheros. If this line is missing, the device doesn't have a driver and isn't functioning. Knowing the module name allows you to load it manually, add it to startup, or, conversely, avoid conflicts if there are multiple modules.

lspci -k | grep -A 3 -i network

You can also use the command modinfo Followed by the module name to get detailed information about the driver itself: version, license, parameters, and supported devices. This helps ensure that the installed driver version meets your hardware requirements and is up-to-date.

In some cases, you may need to manually tell the system to load a specific module. To do this, use the command modprobe. For example, if you know that your adapter requires a module rt2800usb, but it did not load automatically, you can initiate its loading with the command sudo modprobe rt2800usb.

Summary table of commands for diagnostics

For ease of reference and quick access to information, the basic commands for checking WiFi adapters are summarized in the table below. This will help you quickly determine which tool to use depending on your connection type and the required depth of analysis.

Team Purpose Device type Level of detail
lspci -nn Search for PCI/PCIe adapters Internal cards Vendor and device ID
lsusb Search for USB adapters External and internal USB Basic information
ip link show Checking network interfaces All types Status and MAC address
iw dev Information about wireless interfaces WiFi adapters Operating mode and frequency
lspci -k Checking kernel drivers PCI/PCIe cards Driver module name

Using these commands together allows you to get a complete picture of your system's wireless network status. From physically checking for the presence of a device to analyzing loaded kernel modules, you can pinpoint the problem at any stage.

Please remember that some commands, especially those that change settings or access protected information, may require superuser privileges. In such cases, you must prefix the command with sudo.

Frequently Asked Questions (FAQ)

Why doesn't the lspci command see my WiFi adapter?

This can happen for several reasons: the adapter is connected via USB (use lsusb), the device is disabled in the BIOS/UEFI, the physical WiFi lock button on the laptop case is triggered, or the adapter is faulty. Also, check whether the device is in power-saving mode, which disables bus power.

How do I know which driver I need for my WiFi adapter?

Use the command lspci -nn or lsusb to get the Vendor and Device IDs (e.g. [8086:3165]). Enter these codes into a search engine along with the name of your Linux distribution. Also, the command lspci -k may tell you which driver the system is trying to use or which module is available for loading.

Can I use my WiFi adapter as a hotspot?

Yes, most modern adapters support AP mode. Check for support with the command iw list Look for the "Supported interface modes" section. If the word "AP" is there, creating an access point is possible. For management, it's easiest to use nmcli or NetworkManager graphical settings.

What should I do if the adapter is visible but does not connect to the network?

Please check that you entered the password correctly, make sure that the time and date in the system are synchronized (important for WPA2/WPA3), and try restarting the network manager (sudo systemctl restart NetworkManager). It is also worth checking the system logs (dmesg | grep wifi) for driver errors.

☑️ Diagnosing WiFi problems

Completed: 0 / 5