Connection Wi-Fi USB adapter Installing drivers on Debian is a challenge faced by both novice and experienced Linux users. Unlike Windows, where drivers are often installed automatically, in Debian the process can require manual steps, from checking hardware compatibility to compiling drivers from source. This article will help you understand all the nuances, from choosing an adapter to troubleshooting the connection.
The peculiarity of Debian is that the distribution adheres to the policy of using only free software (FOSS). This means that some proprietary drivers (for example, for chip-based adapters) Broadcom or Realtek) may not be available in the standard repositories. However, there is always a solution: either through the repositories non-free, or through manual installation. Below, we'll cover each step—from system preparation to fine-tuning the network.
1. Checking Wi-Fi adapter compatibility with Debian
Before purchasing or connecting a USB adapter, make sure it is supported by the Linux kernel. Most modern chip-based adapters Atheros, Intel or Ralink They work out of the box, but there are some models with issues. Here's how to check compatibility:
- 🔍 Identify the chipset: Find the adapter model (eg. TP-Link TL-WN725N) and look for information about its chip on sites like Wi-Cat Wiki or in the database
linux-hardware.org. - 📋 Check the list of supported devices: Use the command
lsusbafter connecting the adapter to see itVendor IDAndProduct IDThis information will help you find the driver. - 🛠️ Check the kernel version: Some adapters require a kernel of at least
5.4Find out your version with the commanduname -r.
If your adapter is chip based Realtek RTL8188EU or RTL8812AU, be prepared to manually install drivers—they are often missing from standard repositories. For chips Broadcom BCM43xx a proprietary driver may be required broadcom-sta-dkms.
2. Preparing the system: updating and installing dependencies
Before connecting the adapter, update your system and install the necessary packages. This will minimize the risk of conflicts and simplify driver installation. Run the following commands:
sudo apt update && sudo apt upgrade -y
sudo apt install build-essential dkms linux-headers-$(uname -r) git
These packages will be needed for:
- 🔧 Compiling drivers from source (if required).
- 🔄 Managing kernel modules via
dkms. - 📥 Cloning repositories with drivers (via
git).
If you use Debian without a graphical interface (for example, the server version), install network management utilities:
sudo apt install wireless-tools wpasupplicant
3. Connect the adapter and check detection
Connect the USB adapter to the port. The system should detect it—check this with the command:
lsusb
In the output, find the line with the name of your adapter. For example:
Bus 001 Device 003: ID 2357:010c TP-Link 802.11ac NIC
If the adapter is not displayed:
- 🔌 Try a different USB port (preferably
USB 2.0, since some adapters work unstable withUSB 3.0). - 🔄 Reboot the system.
- ⚠️ Check the adapter on another device - it may be faulty.
Next, check if the driver has loaded automatically:
dmesg | grep -i wifi
iwconfig
If in the output iwconfig a new device has appeared (for example, wlan0), the driver is installed. If not, read the next section.
Check the output lsusb|Run dmesg | grep -i usb|Make sure the light on the adapter is on|Try reconnecting the adapter-->
4. Installing drivers for unrecognized adapters
If the system doesn't recognize the adapter, you'll have to install the driver manually. Let's look at two scenarios: using Debian repositories and compiling the source code.
4.1. Installing from repositories (recommended method)
For most adapters, packages from repositories are sufficient. non-free. Add them to first /etc/apt/sources.list:
sudo sed -i 's/main/main contrib non-free/g' /etc/apt/sources.list
sudo apt update
Now install the driver depending on the chipset:
| Chipset | Installation package | Note |
|---|---|---|
| Broadcom BCM43xx | firmware-b43-installer or broadcom-sta-dkms |
For BCM4313, BCM43224 and others. |
| Realtek RTL8188EU | firmware-realtek |
Manual compilation may be required. |
| Realtek RTL8812AU | realtek-rtl88xxau-dkms |
Available in repositories backports. |
| Atheros AR9271 | firmware-atheros |
Supported by the kernel out of the box. |
After installation, reboot the system or load the kernel module manually:
sudo modprobe -r {module_name} && sudo modprobe {module_name}
4.2. Manual compilation of drivers
If the driver is not available in the repositories, it can be compiled from source. For example, for RTL8812AU:
git clone https://github.com/aircrack-ng/rtl8812aucd rtl8812au
make dkms-install
For other chipsets, look for repositories at GitHub on request "linux driver [chipset name]". Please pay attention to the repository branches - some drivers only support specific kernel versions.
What should I do if compilation fails?
If errors like this occur when compiling the driver "kernel headers not found", install kernel headers with the command sudo apt install linux-headers-$(uname -r)If the error is related to the kernel version, try using a different repository branch or patch.
5. Setting up a Wi-Fi connection
After successfully installing the driver, configure your network connection. Debian offers several options:
- 🖥️ Through the graphical interface: If you have a desktop environment (GNOME, KDE, XFCE), use the standard network manager (for example,
nm-applet). - 📜 Through
wpa_supplicant: Universal method for server versions. - 🔧 Through
netplan: Relevant for new versions of Debian (starting from 11).
5.1. Configuration via wpa_supplicant (for servers)
Edit the configuration file:
sudo nano /etc/wpa_supplicant/wpa_supplicant.conf
Add network configuration block (replace YOUR_SSID And YOUR_PASSWORD):
network={ssid="YOUR_SSID"
psk="YOUR_PASSWORD"
key_mgmt=WPA-PSK
}
Connect to the network:
sudo wpa_supplicant -B -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf
sudo dhclient wlan0
5.2. Configuration via netplan (Debian 11+)
Create or edit a configuration file:
sudo nano /etc/netplan/01-network-manager-all.yaml
Add configuration for Wi-Fi:
network:version: 2
renderer: NetworkManager
wifis:
wlan0:
dhcp4: true
access-points:
"YOUR_SSID":
password: "YOUR_PASSWORD"
Apply changes:
sudo netplan apply
6. Diagnosing and troubleshooting
If Wi-Fi is not working or the connection is unstable, run diagnostics:
- 📡 Check the signal level: Team
iwconfig wlan0will show the parameterSignal level. The value is below-70 dBmindicates a weak signal. - 🔄 Reload the driver module:
sudo modprobe -r {driver_name} && sudo modprobe {driver_name} - 📜 View kernel logs:
dmesg | grep -i wifi
Typical errors and solutions:
| Error | Possible cause | Solution |
|---|---|---|
Device not found |
The driver is not loaded | Check it out lsmod | grep {driver_name} |
Authentication failed |
Incorrect password or encryption type | Make sure that in wpa_supplicant.conf the correct one is indicated key_mgmt (For example, WPA-PSK) |
Network is unreachable |
No IP address | Launch sudo dhclient wlan0 |
| The adapter turns off after 5-10 minutes | Power management issue | Disable power saving: sudo iwconfig wlan0 power off |
If your adapter on the Realtek RTL8192EU chip periodically "freezes" with the error "tx queue full", add /etc/modprobe.d/rtl8192eu.conf line options rtl8xxxu rtw_power_mgnt=0 rtw_enusbss=0 and reboot the system.
7. Optimizing the Wi-Fi adapter
To improve connection stability and speed, please perform a few optimizations:
- 📶 Channel selection: Use the utility
iwlist wlan0 scanningto find the least congested channel and configure the router to it. - 🔗 Adapter operating mode: Some adapters support modes
802.11nor802.11acCheck the current mode:iwconfig wlan0 | grep "IEEE" - 🔋 Disabling energy saving:
sudo iwconfig wlan0 power off
For adapters with support 5 GHz Make sure your router is configured for this range. In some countries (for example, in Russia), channels 5 GHz higher 140 may be prohibited - check the region settings in your router.
If your connection speed is slow, try:
- 🔄 Switch from
USB 3.0onUSB 2.0(some adapters do not work well withUSB 3.0). - 📡 Reduce the distance to the router or use a signal booster.
- 🛠️ Update your router firmware.
8. Automate connection at boot
To make the adapter connect to Wi-Fi automatically when the system starts, set up autostart wpa_supplicant:
Create a service for systemd:
sudo nano /etc/systemd/system/wpa_supplicant@.service
Add the following content:
[Unit]Description=WPA supplicant daemon
After=sys-subsystem-net-devices-%i.device
[Service]
Type=simple
ExecStart=/sbin/wpa_supplicant -c /etc/wpa_supplicant/wpa_supplicant.conf -i %I
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target
Activate the service:
sudo systemctl enable wpa_supplicant@wlan0
sudo systemctl start wpa_supplicant@wlan0
To obtain an IP address automatically, add /etc/network/interfaces:
allow-hotplug wlan0iface wlan0 inet dhcp
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
Now the adapter will connect to the network immediately after the system boots.
FAQ: Frequently asked questions about connecting Wi-Fi adapters in Debian
My adapter is detected but won't connect to the network. What's the problem?
Please check the following points:
- 🔑 Correctness of the password in
wpa_supplicant.conf. - 📡 Compatibility of the operating modes of the router and adapter (for example, if the router only works in
5 GHz, and the adapter only supports2.4 GHz). - 🔧 The presence of blockages in
rfkill(check with commandrfkill list).
Also try to manually specify the encryption type in wpa_supplicant.conf:
key_mgmt=WPA-PSKpairwise=CCMP TKIP
group=CCMP TKIP
How do I know which driver is used for my adapter?
Run the command:
lsmod | grep -i wifi
Or check the kernel module information:
modinfo {driver_name} | grep description
For example, for chip adapters RTL8188EU the driver is usually rtl8xxxu.
Is it possible to use one Wi-Fi adapter for both connecting to the network and distributing Wi-Fi?
Technically possible, but requires some setup. access points (AP mode). To do this:
- Make sure the adapter supports AP mode (check the output
iw list | grep "AP"). - Install the package
hostapd. - Set up
dnsmasqfor distributing IP addresses.
Configuration example for hostapd:
interface=wlan0driver=nl80211
ssid=MyHotspot
hw_mode=g
channel=6
wpa=2
wpa_passphrase=12345678
wpa_key_mgmt=WPA-PSK
Please note: not all adapters work reliably in AP mode. It's better to use a separate device for Wi-Fi distribution.
After updating the kernel, Wi-Fi stopped working. What should I do?
This issue occurs if the driver was installed via dkms, but not rebuilt for the new kernel. Solution:
- Reinstall the driver:
sudo dkms remove -m {module_name} -v {version} --allsudo dkms install -m {module_name} -v {version} - If the driver was compiled manually, repeat the process for the new kernel.
- Check that the kernel headers are installed:
sudo apt install linux-headers-$(uname -r)
If the problem persists, try rolling back to the previous kernel version via GRUB.
How to increase the transmission power of a Wi-Fi adapter?
The transmission power is regulated by the parameter txpower. Check the current value:
iwconfig wlan0 | grep "Tx-Power"
To increase the power (for example, to 30 dBm), run:
sudo iwconfig wlan0 txpower 30
⚠️ Attention: Increasing the power above the values permitted in your country (20 dBm For 2.4 GHz (In Russia) may violate radio frequency laws. This may also cause the adapter to overheat.