Working with wireless networks in the environment Kali Linux This begins long before traffic scanners or WPA2 attacks are launched. The foundation of all this activity is a properly functioning network interface, which, unfortunately, is not always automatically detected by the system. Many users encounter a situation where, after installing the distribution, the Wi-Fi adapter is either missing from the list of devices or is operating incorrectly, preventing the system from switching to monitor mode.
The problem of missing drivers most often concerns external USB adapters, especially those built on chipsets Realtek or MediaTek. Unlike standard desktop distributions, Kali Linux Requires specific driver versions that support packet injection. This is why the question of how to install Wi-Fi drivers on Kali Linux remains one of the most frequently asked questions on information security forums.
In this guide, we'll cover not only automated installation methods but also manual compilation of kernel modules, which is often the only option for the latest or, conversely, very old hardware. You'll learn how to identify your adapter, find the source code, and compile it for the current kernel version, turning your broken hardware into a powerful audit tool.
Identifying the wireless adapter and checking its status
The first step before tinkering with any drivers is to accurately identify the hardware. Errors often arise from attempting to install a driver for the RTL8812AU chipset on a device that is actually based on the RTL8814AU. Despite the similar names, these are different kernel modules, and installing them cross-installation will result in compilation errors or device inoperability.
First, run the utility. lsusb in the terminal to see a list of connected USB devices. Find the line corresponding to your Wi-Fi adapter in the output. Note the Vendor ID and Product ID (e.g., 0bda:c811), they will help to accurately determine the chip model, even if the brand name on the device body does not match the internal component.
It is also useful to check whether the kernel sees the device at all, even without a driver. The command dmesg | grep -i usb will show the latest events related to the USB connection. If the logs show messages about device disconnection or power errors when connecting the adapter, the problem may be physical.
⚠️ Note: Some adapters require a dual connection. The first time the system may detect the device as a CD-ROM with drivers (Zero-CD mode), and only after installing the mode switching utility (
usb_modeswitch) it will become available as a network card.
Next, check if any driver for this device is loaded. The command lsmod will list the loaded modules. If you see modules like rtl88x2bu or ath9k, this means the driver is already active, and the problem may be in the settings or rfkill blocking. If the module is not listed when the device is connected, it's a clear sign that installation is required.
Avratically installing drivers via the Kali repository
The easiest and most reliable method to try first is using built-in repositories. Kali Linux. Distribution developers include it in packages kali-linux-top and separate driver meta-packages for most popular adapters used in pentesting. This method ensures that the driver versions are compatible with the current system kernel.
First, make sure your repository lists are up to date. Run the following command to update your package indexes:
sudo apt update
After updating, search for the driver using keywords. Often, knowing the chipset is enough. For example, for Realtek 8812 series adapters, the package realtek-rtl88xxau-dkmsDKMS (Dynamic Kernel Module Support) is a technology that automatically recompiles the driver module when updating the kernel, eliminating the need for manual installation after each system update.
If you don't know the exact package name, you can use the search:
apt search rtl8812
In your search results, pay attention to packages ending in -dkmsInstallation of such a package usually occurs in one step:
sudo apt install realtek-rtl88xxau-dkms
During the installation process, you'll see the module compilation output. If there are no errors, the driver will be loaded automatically. However, not all manufacturers provide open source software that's compatible with DKMS out of the box.
Manually installing drivers from source code (Git)
When ready-made packages are missing from the repository or are unstable, manual compilation from source code is required. This is the most common scenario for new adapter models or specific driver modifications designed for packet injection. You'll need to install a basic set of compilation tools.
First, install the required dependencies:
sudo apt install -y build-essential git dkms linux-headers-$(uname -r)
Next, you need to find the driver repository. GitHub is the most common source. For example, a popular driver for the RTL8812AU chip can be found by searching for "rtl8812au kali." Copy the repository URL and clone it to your home directory:
git clone https://github.com/aircrack-ng/rtl8812au.git
Navigate to the created folder and run the installation script. It's important to read the terminal output carefully, as some scripts may require confirmation.
cd rtl8812au
sudo./dkms-install.sh
Script dkms-install.sh will automatically add the module to DKMS, compile it for the current kernel, and attempt to load it. If the script isn't present, use the standard make mechanism:
make
sudo make install
⚠️ Attention: When manually installing drivers through
make installWithout using DKMS, you'll have to recompile and reinstall the driver manually after each Linux kernel update. Using DKMS is preferable for system stability.
After successful compilation, the module needs to be activated. Sometimes you need to manually add the module name to the configuration file so that it loads at system startup.
☑️ Manual installation checklist
Working with Broadcom proprietary drivers
Adapters Broadcom Historically, these devices have been among the most problematic in the Linux environment due to the closed nature of their specifications. In Kali Linux, supporting these devices often requires connecting to non-free repositories and installing binary blobs. The standard "download and build" approach rarely works here.
First, check if the package is available. firmware-brcm80211It contains firmware for many Broadcom chips:
sudo apt install firmware-brcm80211
If installing packages doesn't help, you may need a driver. bcmwl-kernel-sourceHowever, in Kali it may conflict with open source drivers. b43 or bcma. Before installing a proprietary driver, it is recommended to blacklist open-source modules.
Create or edit the blacklist configuration file:
sudo nano /etc/modprobe.d/blacklist.conf
Add the following lines there:
blacklist b43
blacklist b43legacy
blacklist ssb
blacklist bcm43xx
blacklist bcma
After saving the file, update the initramfs so that the changes are applied at boot:
sudo update-initramfs -u
Only after this can you try to load the module. wlIt's worth noting that monitor mode on Broadcom drivers is often unstable or not supported at all, making them less suitable for professional use in Kali.
Why is Broadcom so difficult on Linux?
For a long time, Broadcom failed to provide documentation for its chips, forcing Linux developers to use reverse engineering. This resulted in drivers with limited functionality and potential instability, especially in specific operating modes such as traffic monitoring.
Comparison of popular chipsets for Kali Linux
Choosing an adapter is half the battle. Not all Wi-Fi cards are equally useful for information security. Support for monitor mode and packet injection is key. Below is a table comparing popular chipsets and their compatibility with Kali.
Chipset
Monitor Mode support
Injection Support
Difficulty of installation
Atheros AR9271
Native (out of the box)
Yes
Low
Realtek RTL8812AU
Requires drivers
Yes
Average
Ralink RT5370
Native
Yes
Low
Broadcom BCM43xx
Partial / Unstable
Depends on the model
High
Adapters based on Atheros are considered the "gold standard" due to excellent support in the Linux kernel and stable operation without any fuss. Chipsets Realtek They are popular due to their availability and support for the AC standard, but require manual installation of drivers, which can fail during a kernel update if DKMS is not configured.
When choosing a device, pay attention not only to the chip but also to the antenna. For passive network scanning over long distances, antenna performance (dBi) is more important than theoretical data transfer rate. A 150 Mbps adapter with the ability to connect an external antenna will be more useful in the field than a dual-band dongle without an antenna port.
Diagnosing and solving common problems
Even after successful driver installation, difficulties may arise. The most common issue is that the device fails to enter monitor mode. Check the interface status with the command iwconfigIf the interface is present but the mode doesn't change, try forcibly disabling the interface before changing the mode:
sudo ip link set wlan0 down
sudo iw wlan0 set monitor none
sudo ip link set wlan0 up
Another common error is "Device or resource busy." This means that the NetworkManager or wpa_supplicant process is trying to manage the adapter, interfering with tools like aircrack-ngYou need to disable network manager management for this interface or temporarily stop the service:
sudo systemctl stop NetworkManager
It is also worth checking whether the system is blocking wireless devices through rfkill. Run the command rfkill listIf you see the status "Soft blocked: yes", unlock the device with the command rfkill unblock wifiIf "Hard blocked," look for a physical switch on the adapter or laptop.
⚠️ Warning: If Wi-Fi stops working after updating the Linux kernel, the DKMS module build is likely broken. Go to the driver source folder and run the command sudo./dkms-install.sh again to recompile the module for the new kernel version.
In some cases, deleting the module and reloading it helps:
sudo modprobe -r rtl8812au
sudo modprobe rtl8812au
If nothing helps, check the logs /var/log/syslog Immediately after connecting the device. Specific errors may appear, indicating an incompatible USB version or insufficient power to the port.
Why can't my adapter see 5 GHz networks?
Most likely, the installed driver doesn't support dual-band mode, or dual-band broadcasting is disabled in the router settings. Also, make sure the correct region settings are configured (command iw reg set), since in some countries 5 GHz channels are restricted by law.
Can I use my laptop's built-in Wi-Fi for pentesting?
Theoretically, yes, if the chipset supports monitor mode and injection. However, in practice, integrated cards often have weak antennas and drivers that aren't optimized for these tasks. An external adapter with an antenna connector is always preferable.
Is it safe to download drivers from GitHub?
Use only trusted repositories with a high star rating and an active community (for example, aircrack-ng or maurice). Avoid random forks, as they may contain malicious code. Always check your code before compiling if you have C reading skills.
What should I do if the make command gives an error?
Read the last lines of the output carefully. Most often, the error is related to missing kernel header files (linux-headers) or compiler version incompatibility. Make sure the driver version matches your Linux kernel version.