Installing TP-Link T2U WiFi Drivers on Linux
The TP-LINK T2U is a USB WiFi adapter based on the MediaTek MT7650U chipset. While Linux kernel support has improved significantly, you may still need to manually compile drivers on some distributions. This guide covers installation on modern Fedora and RHEL-based systems.
Check if your adapter is already supported
First, plug in the adapter and check if the kernel recognizes it:
lsusb | grep -i tp-link
Then check if the driver module loads automatically:
lsmod | grep mt7
If you see mt7921u or mt7610u loaded, your adapter may already work. Test with:
ip link show
Look for a wireless interface (usually wlan0 or wlp...). If it appears, try connecting to a network with nmtui or your preferred network manager.
Building the driver from source
If the automatic driver doesn’t work or isn’t loaded, you’ll need to compile it manually. The most reliable source is the modified MediaTek driver.
Install build dependencies
On Fedora 40+ and RHEL 9+:
sudo dnf groupinstall "Development Tools"
sudo dnf install kernel-devel kernel-headers git
On older Fedora versions:
sudo yum groupinstall "Development Tools"
sudo yum install kernel-devel kernel-headers git
Clone and compile the driver
git clone https://github.com/zma/mt7610u_wifi_sta_v3002_dpo_20130916.git
cd mt7610u_wifi_sta_v3002_dpo_20130916
make
If you encounter compilation errors related to newer kernels, you may need to apply patches. Check the repository’s issues section for kernel-specific fixes.
Install the compiled driver
sudo make install
sudo depmod -a
Load the module:
sudo modprobe mt7610u_sta
Verify it loaded:
lsmod | grep mt7610u
Make the driver persistent across reboots
Create a configuration file to load the module at boot:
echo "mt7610u_sta" | sudo tee /etc/modules-load.d/mt7610u.conf
Alternatively, if you’re using an older kernel version, the module name might be mt7650u_sta:
echo "mt7650u_sta" | sudo tee /etc/modules-load.d/mt7650u.conf
Troubleshooting
Module fails to load or compile errors: Your kernel may have introduced API changes. Check the driver repository’s GitHub issues for patches matching your kernel version. You can also try:
uname -r
to identify your kernel and search for compatible driver versions.
No wireless interface appears after loading: The module loaded but the device isn’t being recognized. Check kernel logs:
sudo dmesg | tail -20
Look for errors from the mt7 driver. You may need to unload and reload with debugging enabled:
sudo modprobe -r mt7610u_sta
sudo modprobe mt7610u_sta debug=1
sudo dmesg | grep mt7
Connection drops frequently: This is common with older MediaTek drivers on newer kernels. Consider using iw to manually configure power management:
sudo iw dev wlan0 set power_save off
Modern alternatives
For new systems, consider these alternatives:
- USB WiFi adapters with RTL8812AU chipset: Better kernel support on recent distributions
- Netgear A6210: Uses MT7612U with better maintained drivers
- Built-in WiFi: If your laptop supports it, internal WiFi is always more reliable than USB adapters
If you’re purchasing a new adapter, check the Linux Wireless wiki for current driver status before buying.