The D-Link DWA-131 is a USB WiFi adapter, which supports wireless connections according to IEEE 802.11n standard. The stick exists in two versions, each one using a different chipset. Unfortuantely, the two chipsets are not equally supported by Linux.
Version A1: 07d1:3303
The version A1 can be recognized by its USB ID 07d1:3303
Bus 001 Device 007: ID 07d1:3303 D-Link System
Bus 001 Device 002: ID 07d1:3303 D-Link System DWA-131 802.11n Wireless N Nano Adapter(rev.A1) [Realtek RTL8192SU]
This version of the DWA-131 bases on the Realtek RTL8191SU chipset, which is fully supported by the kernel module r8712u (e.g. since Ubuntu 13.10).
Version B1: 2001:330D
The second version of the DWA-131 has the USB ID 2001:330D
Bus 001 Device 003: ID 2001:330d D-Link Corp.
and uses the Realtek RTL8192CU chipset. The support for this chipset is provided by the kernel module rtl8192cu, but requires a Linux kernel of version 3.8 or later to work.
However, the USB ID of the DWA-131 might not be known to the kernel module. Therefore, the module is not automatically loaded. To make the rtl8192cu feel responsible for the DWA-131 one has to use the command:
sudo modprobe rtl8192cu
to load the module and the command
echo "2001 330D" | sudo tee /sys/bus/usb/drivers/rtl8192cu/new_id
to add the USB ID to the driver.
In order to have the kernel module loaded automatically at system start this command has to be added to the file /etc/rc.local:
# Declare DWA-131 USB ID to rtl8192cu module
echo "2001 330D" | tee /sys/bus/usb/drivers/rtl8192cu/new_id
A firmware file rtl8192cufw.bin is needed by the kernel to access the DWA-131. This file needs to be located at /lib/firmware/rtlwifi/. In Ubuntu this firmware can be installed by the command:
sudo apt-get install linux-firmware linux-firmware-nonfree
Furthermore, it is recommended to deactivate the hardware based encryption, because it causes failing of the wireless connection for several Linux users. The software encryption can be enforced by the kernel module option “swenc=1″:
sudo modprobe rtl8192cu swenc=1
The option can be set permanently in one of the configuration files at /etc/modprobe.d/, e.g. by:
options rtl8192cu swenc=1
Afterwards, the driver will be loaded automatically if the stick is plugged in:
usb 1-5: new high-speed USB device number 4 using ehci_hcd
usb 1-5: New USB device found, idVendor=2001, idProduct=330d
usb 1-5: New USB device strings: Mfr=1, Product=2, SerialNumber=3
usb 1-5: Product: 802.11n WLAN Adapter
usb 1-5: Manufacturer: Realtek
usb 1-5: SerialNumber: 00xxxxxxxx
rtl8192cu: MAC address: 11:22:33:44:55:66
rtl8192cu: Board Type 0
usb 1-5: firmware: agent loaded rtlwifi/rtl8192cufw.bin into memory
rtlwifi: rx_max_size 15360, rx_urb_num 8, in_ep 1
ieee80211 phy0: Selected rate control algorithm ‘rtl_rc’
udevd: renamed network interface wlan0 to wlan1
rtl8192cu: MAC auto ON okay!
rtl8192cu: Tx queue select: 0×05
rtl8192c_common: Loading firmware file rtlwifi/rtl8192cufw.bin
ADDRCONF(NETDEV_UP): wlan1: link is not ready
The loading of the rtl8192cu driver can be blocked, if the Linux kernel already loads other WiFi drivers (e.g. the kernel modul r8712u). This can be found out by investigating the output of
To subpress the loading of the r8712u driver this module needs to be blocked by adding it to /etc/modprobe.d/blacklist.conf file:
Alternatively, the DWA-131 can also be used by the Linux driver which is provided by Realtek. However, this driver needs to be compiled and installed per hand.
Version E1: 2001:3319
A new version of the DWA-131 was identified with USB ID 2001:3319
Bus 001 Device 003: ID 2001:3319 D-Link Corp
and seems to be based on the Realtek RTL8192eu chipset.
This version of the DWA-131 is recognized by the kernel:
usb 1-1.5: new high-speed USB device number 6 using dwc_otg
usb 1-1.5: New USB device found, idVendor=2001, idProduct=3319
usb 1-1.5: New USB device strings: Mfr=1, Product=2, SerialNumber=3
usb 1-1.5: Product: Wireless N Nano USB Adapter
usb 1-1.5: Manufacturer: Realtek
usb 1-1.5: SerialNumber: 00e04c00xxxx
but currently no driver is loaded automatically.
A driver for the Realtek RTL8192eu chipset can be found at the DLink support site. It can be downloaded and unpacked by:
tar zxvf 20140812_rtl8192EU_linux_v220.127.116.11_11320.tar.gz
The unpacked file also contains an installation instruction (although it seems for the RTL8192cu chipset instead).
The compilation of the driver is started by:
This creates the kernel module 8192eu.ko which can be loaded by
sudo insmod 8192eu.ko
There is a second driver for the rtl8192eu chipset available at github: https://github.com/Mange/rtl8192eu-linux-driver. This driver was reported to be usable under Ubuntu 15.10. The driver can be installed in the following way:
sudo apt-get install git build-essential
git clone https://github.com/Mange/rtl8192eu-linux-driver.git
sudo make install
This hardware component was used by Linux users under the following system configurations. These results were collected by our