Skip to content
HackIndex logo

HackIndex

Wireless Driver Management in Kali

4 min read Mar 17, 2026

Most supported wireless adapters work as soon as they are plugged in. When they do not, the problem is almost always a driver that is not loaded, a conflicting module, or a driver that needs to be reloaded after a suspend or USB reconnect. This page covers identifying the chipset, confirming which driver is bound, fixing common driver state issues, and unblocking hardware that has been disabled at the software or firmware level.

Identify the Chipset

For USB adapters:

┌──(kali㉿kali)-[~]
└─$ lsusb
Bus 001 Device 004: ID 0cf3:9271 Qualcomm Atheros AR9271 802.11n
Bus 002 Device 003: ID 0bda:8812 Realtek RTL8812AU 802.11ac

The vendor:product ID (e.g. 0bda:8812) is the most reliable way to look up chipset compatibility. For more detail on a specific device:

┌──(kali㉿kali)-[~]
└─$ lsusb -v -d 0bda:8812 2>/dev/null | grep -i "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

For PCIe adapters:

┌──(kali㉿kali)-[~]
└─$ lspci | grep -i network
03:00.0 Network controller: Realtek Semiconductor Co., Ltd. RTL8812AE 802.11ac PCIe Wireless Network Adapter

Identify the Active Driver

The fastest way to see interface, driver, and chipset together:

┌──(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

For the driver on a specific interface:

┌──(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

bus-info confirms whether the adapter is USB or PCIe connected.

Unblock a Hardware-Disabled Adapter with rfkill

Some systems have the wireless adapter blocked at the hardware or software level, particularly on laptops with a physical wireless kill switch or on systems where a hypervisor or power manager has disabled the radio. If the adapter does not appear after loading the driver, check whether it is blocked:

┌──(kali㉿kali)-[~]
└─$ rfkill list
0: phy0: Wireless LAN
	Soft blocked: no
	Hard blocked: no
1: phy1: Wireless LAN
	Soft blocked: yes
	Hard blocked: no

Soft blocked: yes means the OS has disabled the radio and it can be unblocked in software. Hard blocked: yes means a physical switch or BIOS setting is blocking it and software cannot override it.

Unblock a soft-blocked adapter:

┌──(kali㉿kali)-[~]
└─$ rfkill unblock wifi

To unblock all radio types including Bluetooth:

┌──(kali㉿kali)-[~]
└─$ rfkill unblock all

After unblocking, run iw dev to confirm the interface is now visible. If the adapter was soft-blocked by NetworkManager, killing it with airmon-ng check kill also removes the soft block for that session.

Load a Driver Manually

If the adapter is visible in lsusb but no interface appears, the driver may not be loaded:

┌──(kali㉿kali)-[~]
└─$ modprobe mt76x2u

For RTL8812AU adapters:

┌──(kali㉿kali)-[~]
└─$ modprobe 8812au

Confirm the module loaded:

┌──(kali㉿kali)-[~]
└─$ lsmod | grep mt76
mt76x2u               45056  0
mt76x2_common         90112  1 mt76x2u
mt76                  98304  2 mt76x2u,mt76x2_common

Reload a Driver

If the adapter was working and stopped, a driver reload fixes it in most cases. Common after suspend or USB reconnects:

┌──(kali㉿kali)-[~]
└─$ modprobe -r mt76x2u && modprobe mt76x2u

For RTL8812AU:

┌──(kali㉿kali)-[~]
└─$ modprobe -r 8812au && modprobe 8812au

After reloading, the interface name may change. Run iw dev to check the current name before proceeding.

Install the RTL8812AU Driver on Kali

Kali ships the rtl8812au driver pre-installed as a DKMS package. If it is missing or broken after a kernel update:

┌──(kali㉿kali)-[~]
└─$ apt update && apt install -y realtek-rtl88xxau-dkms
┌──(kali㉿kali)-[~]
└─$ modprobe 8812au

Fix Injection Not Working After Driver Load

If the adapter is in monitor mode but aireplay-ng reports injection is not working, check for regulatory domain restrictions:

┌──(kali㉿kali)-[~]
└─$ iw reg get
country 00: DFS-UNSET
    (2402 - 2472 @ 40), (N/A, 20), (N/A)

country 00 is the default unset state. Some drivers restrict transmission power and injection under this setting. Set the regulatory domain explicitly:

┌──(kali㉿kali)-[~]
└─$ iw reg set US

Then restart monitor mode:

┌──(kali㉿kali)-[~]
└─$ airmon-ng stop wlan0mon
┌──(kali㉿kali)-[~]
└─$ airmon-ng start wlan0

Disable the Built-in Wireless Card

If the built-in card is appearing as wlan0 and pushing your external adapter to wlan1, bring it down for the session:

┌──(kali㉿kali)-[~]
└─$ ip link set wlan0 down

To blacklist it permanently, replace iwlwifi with the actual driver name shown by airmon-ng:

┌──(kali㉿kali)-[~]
└─$ echo "blacklist iwlwifi" >> /etc/modprobe.d/blacklist.conf

References