How to find out the chipset of a Linux Wi-Fi adapter: diagnostic methods

Working with the Linux operating system often requires a deep understanding of hardware, especially when it comes to network interfaces. Determining the exact chipset model becomes a critical step when searching for proprietary drivers, troubleshooting connection issues, or configuring monitor modes. Many users encounter a situation where the system detects a device but cannot activate it without manually installing a specific kernel module.

There are several time-tested methods for hardware identification, each suitable for different use cases. Standard command-line utilities provide comprehensive information about connected devices, whether built-in modules or external USB dongles. In this article, we'll take a detailed look at the diagnostic tools that system administrators and enthusiasts should know.

Using the lspci utility for built-in adapters

For users of laptops and desktop PCs, where the Wi-Fi module is integrated into the motherboard via the PCI Express bus, the main diagnostic tool is the utility lspciThis command lists all devices connected to the PCI bus, allowing you to quickly filter network controllers from other hardware. Integrated cards from Intel, Atheros, or Broadcom are typically detected via this interface.

To get detailed information, you need to run the command with the extension flags. The key -nn Displays vendor and device numeric IDs, which is especially useful when searching for drivers in repositories. If the standard output seems too brief, adding the flag -v will reveal additional technical details, including the interrupts and memory areas used.

lspci -nn | grep -i network

In the resulting list, you should be interested in the line containing the words "Network controller" or "Wireless." This is where the chip manufacturer will be listed, for example, Intel Corporation or Qualcomm AtherosKnowing the exact model name, you can go to the manufacturer's website or database linux-wifi to check the driver support status in the current kernel version.

It's worth noting that some modern adapters can disguise themselves as other devices until the driver is loaded. If lspci If the wireless card isn't showing up, it may be disabled at the BIOS/UEFI level or in a deep power-saving state. In such cases, you'll need to check your BIOS settings or use additional PCIe power management utilities.

Diagnosing USB Wi-Fi adapters with lsusb

External wireless adapters connected via USB port are not displayed in the command output. lspci, as they use a completely different data exchange protocol. A utility is designed to identify them. lsusb, which queries the Universal Serial Bus controller. This is the most common diagnostic method for "whistles," which often require manual driver installation.

Running the command without parameters will list all connected USB devices with their IDs. Look for the line containing the manufacturer name, for example, Realtek, MediaTek or Ralink. Numeric code in the format ID xxxx:xxxx is a unique identifier that allows you to accurately identify the chipset, even if the model name is not included in the device name.

lsusb -v | grep -A 5 Wireless

It often happens that the same USB adapter can be released in different revisions with completely different chipsets inside. That's why you can't rely solely on the model name on the box. The VendorID and ProductID from the lsusb output are the only reliable source of information for driver selection. This is especially relevant for devices based on Realtek chips, where Linux kernel support may vary for different versions of the same chip.

📊 What type of Wi-Fi adapter are you using?
Built-in (PCIe)
External USB
Built-in (M.2)
Via the docking station

Analyzing network interfaces with the ip and iw commands

Once the driver is installed and the device is recognized by the system, it receives a logical interface name. To view a list of all network interfaces, including those in the "DOWN" state, use a modern utility. ip, which replaced the outdated one ifconfigIt allows you to see not only the name, but also the link status and MAC address.

ip link show

To obtain specific information about the capabilities of the wireless interface, such as supported frequencies, signal strength and available operating modes, a utility is designed iw. Team iw dev will show a list of wireless interfaces, and iw list will provide a detailed report on the chipset's characteristics, including support for 802.11ac/ax standards and frequency ranges.

If the interface is displayed as wlan0 or wlp2s0, but can't scan networks, the problem may be RF-kill blocking. Check the wireless module blocking status with the command rfkill listSometimes a software lock interferes with normal operation even when the driver is installed correctly, and it must be removed using the command rfkill unblock wifi.

Complete equipment inventory with hwinfo

For those who prefer to receive the most structured and detailed information without having to combine multiple commands, there is a utility hwinfoThis tool performs a deep scan of the entire system and returns the data in a readable format, often providing more detail than the distribution's standard tools.

To get information specifically about network adapters, use the key --netThis command will list all network devices, including their drivers, kernel modules, connection status, and hardware resources. This is especially useful in situations where standard utilities fail to correctly identify a device or indicate a resource conflict.

sudo hwinfo --net

Unlike lspci And lsusb, utility hwinfo This may require installing a separate package, as it's not always included in the basic distributions. However, the effort is well worth it: it automatically detects the driver status and indicates whether the module is currently active, significantly simplifying the diagnostic process.

Why might hwinfo not see the device?

The hwinfo utility depends on information provided by the kernel. If a device driver is completely missing and the device is not initialized even at a basic level, hwinfo may not display it in the list of active devices, although lspci or lsusb will see it.

Table of popular chipsets and driver status

Understanding the exact chipset in your device directly impacts your choice of Linux distribution or the need to manually compile modules. Below is a table of common manufacturers and their typical behavior in a Linux environment, which will help you understand the expected complexity of setup.

Manufacturer Chip series Driver type Stability
Intel AX200, AC7260 Open (iwlwifi) High
Realtek RTL8812BU, RTL8723 Proprietary / DKMS Average
Atheros AR9271, QCA9377 Open (ath9k, ath10k) High
Broadcom BCM43xx Proprietary (wl) Depends on the model

As can be seen from the table, the devices from Intel And Atheros traditionally have the best support thanks to open-source drivers included in the kernel. With devices Realtek And Broadcom Often there are difficulties that require an internet connection via cable or telephone to install packages firmware And dkms.

It's important to keep in mind that support status may change with the release of new kernel versions. Something that worked out of the box five years ago may require attention in new releases, and vice versa—old, problematic chips may receive support in newer versions. linux-firmware.

⚠️ Warning: When installing drivers from third-party repositories (PPA) or compiling from GitHub, ensure the driver version is compatible with your kernel version. Updating the Linux kernel may break third-party DKMS modules, requiring their reinstallation.

Search and install drivers

If the diagnostics show that the chipset is detected, but the wireless network is not working, it's likely that the firmware files are missing from the system. In most distributions, these are packaged in a separate package, often called linux-firmware or firmware-misc-nonfreeInstalling this package usually solves 90% of hardware recognition problems.

Many distributions, such as Ubuntu or Linux Mint, offer graphical "Additional Drivers" utilities to automatically search for and install drivers. However, on server versions or minimalist builds, you'll have to do this manually via the terminal using package managers. apt, dnf or pacman.

sudo apt update

sudo apt install firmware-realtek

In cases where a ready-made package is not available, it is necessary to resort to compiling the driver from source code. This process requires installing kernel headers (linux-headers) and assembly tools (build-essential). After compilation, the module must be manually added to the boot configuration so that it is activated at system startup.

☑️ Wi-Fi Diagnostic Checklist

Completed: 0 / 1

Common problems and solutions

Even with a properly installed driver, users may experience an unstable connection or low signal strength. This is often caused by an aggressive power-saving policy that puts the Wi-Fi adapter into sleep mode. This feature can be disabled through the module's configuration files or using a utility. iwconfig, by setting the parameter power save in meaning off.

Another common problem is module conflicts. Sometimes, two drivers for the same device can be loaded in the system, leading to initialization errors. In such cases, it is necessary to create a configuration file in /etc/modprobe.d/to prevent loading of unnecessary modules (via command blacklist).

It's also worth paying attention to the region. Some chipsets have channel and power limitations depending on the country code set. You can change the region using the command iw reg setHowever, this may require superuser privileges and a reboot of the interface. Incorrectly configured region settings may prevent the adapter from detecting networks on certain frequencies.

⚠️ Warning: Changing your region (regdomain) to settings different from your physical location may violate radio spectrum laws. Use this feature only for testing purposes or within permitted limits.

FAQ: Frequently Asked Questions

How do I know which driver is currently being used?

Use the command lspci -k or lsusb -v and find the line "Kernel driver in use". Also, the command modinfo with the module name will show detailed information about the loaded driver.

Why doesn't lsusb see my Wi-Fi adapter?

This could mean that the adapter is physically faulty, disabled in the BIOS, or not getting enough power (if it's a USB 3.0 device connected via an old hub). Also check the output dmesg immediately after connecting the device.

Can Windows drivers be used on Linux?

Yes, for some devices (mostly Broadcom and some Realtek) it is possible to use the ndiswrapper wrapper to run Windows drivers (.sys files) in Linux, although native drivers are always preferred.

Where can I find firmware files if they are not in the repository?

The official firmware-linux repository contains most of the files. If the file you need is missing, you can find it on the chipset manufacturer's website or in the linux-firmware repository on GitLab by manually copying the file to /lib/firmware.