Skip to content

Identifying Wireless Chipsets and Drivers in Kali

5 min read Created Mar 17, 2026 Last updated Sep 12, 2026

Before running monitor mode or injection techniques, identify the chipset and the kernel driver bound to the adapter. This determines support for monitor mode and injection. It also affects which tool flags to use and whether driver workarounds apply. Skipping this step wastes time when a tool fails silently or returns no interfaces. The chipset, not the adapter brand, controls what is possible. A rebadged adapter can ship with a completely different chip than the one advertised on the box.

  • lsusb lists connected USB adapters by vendor:product ID for chipset cross-referencing.

  • lspci identifies built-in PCIe wireless cards (Intel, Atheros), which typically lack injection support.

  • airmon-ng shows all wireless interfaces with their active driver and chipset in one view.

  • ethtool -i returns the exact driver version and bus info for a specific interface.

  • lsmod confirms whether the kernel module for a chipset is loaded and active.

List Connected USB Adapters

┌──(kali㉿kali)-[~]
└─$ lsusb
Bus 001 Device 002: ID 0cf3:9271 Qualcomm Atheros AR9271
Bus 001 Device 003: ID 0b05:17d1 ASUSTek Computer MT7610U
Bus 002 Device 004: ID 0bda:8812 Realtek RTL8812AU

The ID vendor:product field is the reliable identifier. The text description can be wrong or generic. Copy that ID and cross-reference it against the aircrack-ng compatibility list before trusting the friendly name. Adapters sold as dual-band 802.11ac sometimes ship a different chipset revision that lacks injection support. The vendor ID alone is not enough; you need the full vendor:product pair. For full details on a specific device:

┌──(kali㉿kali)-[~]
└─$ lsusb -v -d 0bda:8812 2>/dev/null | grep -iE "idVendor|idProduct|iProduct|iManufacturer"
  idVendor           0x0bda Realtek Semiconductor Corp.
  idProduct          0x8812 RTL8812AU 802.11a/b/g/n/ac
  iManufacturer           1 Realtek
  iProduct                2 802.11n WLAN Adapter

List PCIe Wireless Adapters

┌──(kali㉿kali)-[~]
└─$ lspci | grep -i network
02:00.0 Network controller: Intel Corporation Wi-Fi 6 AX200 (rev 1a)
03:00.0 Network controller: Realtek Semiconductor RTL8812AE 802.11ac

Built-in laptop cards are almost always Intel or Qualcomm Atheros PCIe adapters. Neither supports injection in standard Kali kernels. If you see an Intel card here, treat it as a management-only interface. Use a dedicated USB adapter for injection and monitor mode. The bus address in the first column, for example 03:00.0, is what you pass to lspci -vnn. For full details on a specific PCIe device:

┌──(kali㉿kali)-[~]
└─$ lspci -vnn -s 03:00.0

Check the Active Driver with airmon-ng

Run without arguments to see all wireless interfaces, their drivers, and chipsets at once. This is usually the fastest first check. The Driver column maps directly to the kernel module name, and the Chipset column confirms what the kernel detected.

┌──(kali㉿kali)-[~]
└─$ airmon-ng
PHY     Interface   Driver          Chipset
phy0    wlan0       iwlwifi         Intel Corporation Wi-Fi 6 AX200
phy1    wlan1       mt76x2u         MediaTek MT7612U
phy2    wlan2       8812au          Realtek RTL8812AU

The driver name tells you immediately whether you have a supported chipset. Intel AX200 with iwlwifi does not support injection. MT7612U with mt76x2u does. If the Driver column shows iwlwifi, ath10k, or brcmfmac, that interface will not work for injection. Plan around it. If an expected interface is missing, the driver may not be loaded. The adapter may also have failed to enumerate on the USB bus.

Check the Driver with ethtool

Use ethtool -i to get driver details for a specific interface. The output confirms the exact driver version bound to the interface. The bus-info field ties the interface back to the physical USB or PCIe slot. This helps when multiple adapters are connected and interface names shift between reboots.

┌──(kali㉿kali)-[~]
└─$ ethtool -i wlan1
driver: mt76x2u
version: 6.1.0-kali7-amd64
firmware-version: N/A
bus-info: usb-0000:00:14.0-2

Check Which Kernel Module is Loaded

If airmon-ng shows no interface for an adapter you plugged in, check whether the kernel module loaded at all. Use lsmod filtered by common driver names. A missing module means the kernel has no driver for the chipset. It can also mean a DKMS module failed to build after a kernel update.

┌──(kali㉿kali)-[~]
└─$ lsmod | grep -i "8812\|mt76\|ath9k\|ath10k\|iwl"
mt76x2u               45056  0
mt76x2_common         90112  1 mt76x2u
mt76                  98304  2 mt76x2u,mt76x2_common

The third column is the usage count. A value of 0 means the module is loaded but no interface is actively using it. That is normal when no adapter is plugged in. If nothing appears for your expected driver, the module is not loaded. See the driver management page. If the module is present but airmon-ng still shows nothing, check dmesg for firmware load failures or USB enumeration errors.

Identify the Wireless Chipset Driver from the Chipset Model

The key question is whether the chipset supports mac80211 injection. Chipsets that use a FullMAC architecture, where the firmware handles MAC-layer operations, typically do not support injection regardless of driver. SoftMAC chipsets expose raw frame control to the driver, which is what mac80211 injection requires. Most recommended pentesting adapters are SoftMAC. Chipsets marked DKMS in the table need a kernel module built outside the mainline tree. Kali pre-installs these DKMS drivers, but they may need rebuilding after a kernel upgrade.

References