D-Link DWA-131 (N300, USB, WiFi Adapter)

Network 802.11n, D-Link, USB, WiFi, Wireless

D-Link DWA-131 (N300, USB, WiFi Adapter)
Linux compatibility:
14 votes, average: 3.1 out of 514 votes, average: 3.1 out of 514 votes, average: 3.1 out of 514 votes, average: 3.1 out of 514 votes, average: 3.1 out of 5
  ( 3.1 with 14 ratings)

Price: $ 15.00 (on stock)
(without shipping costs)

 Buy from Amazon.com



Price trend
D-Link DWA-131 
-
Minimum: $ 12.80 
Maximum: $ 36.17  
Updated: 24/02/2016 17:54

Review of Linux Compatibility

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

exit 0

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[573]: 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

lsmod

To subpress the loading of the r8712u driver this module needs to be blocked by adding it to /etc/modprobe.d/blacklist.conf file:

blacklist r8712u

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:

cd /tmp/
mkdir DWA-131
cd DWA-131/
wget ftp://files.dlink.com.au/products/DWA-131/REV_E/Drivers/DWA-131_Linux_driver_v4.3.1.1.zip
unzip DWA-131_Linux_driver_v4.3.1.1.zip
tar zxvf 20140812_rtl8192EU_linux_v4.3.1.1_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:

cd 20140812_rtl8192EU_linux_v4.3.1.1_11320/
make

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
cd rtl8192eu-linux-driver
sudo make
sudo make install

Identified Hardware Configurations (5 Results)

This hardware component was used by Linux users under the following system configurations. These results were collected by our LHG Scan Tool:
Distribution
Kernel
Rating
Scan Date
Ubuntu 16.04.1 LTS 4.4.0-43-generic - 14/10/2016
Fedora release 23 (Twenty Three) 4.2.5-300.fc23.x86_64 - 01/06/2016
Arch Linux 4.5.1-1-ARCH - 02/05/2016
Korora release 23 (Coral) 4.2.6-301.fc23.x86_64 - 09/01/2016
Linux Mint 17 Qiana 3.13.0-24-generic - 29/09/2015

Similar Linux Hardware

scroll left scroll right

 26 Comments

  • Anushesh on said:

    I have DWA-131E1 and I followed the above procedure (source driver from AU site). As soon as I insert the kernel module my system hangs forever. I am using F23 (kernel 4.2.6-300.fc23)

    • Atitudes on said:

      I know the feeling :( Still haven’t managed to get it to work in any way.

  • Atitudes on said:

    Hi,

    I am also having problems with the E1 2001:3319 version.

    I followed the above mentioned steps with no errors at all.
    Right after installation, lsmod shows the 8192eu entry, but soon as I plug the usb adapter it sort of “crashes” all my connections including wired. Terminal wont accept any command and I have to hard reboot. After reboot, lsmod only shows 8192eu entry if I plug the adapter but once again I need to hard reboot and remove the adapter.

    I can see some bugs pointed by dmesg related to 8192eu driver and also information about the rtl8192eu driver which regardless having it blacklisted or not under modprobe.d/blacklist.conf, the exact same issue happens.

    From the replies below, it’s said it might not be compatible with kernel version 3.13 which is my case. Unfortunately, I do not have any older version installed… Would an upgrade be advisable and if yes, which version?

    Unfortunately, my knowledge here is very limited. Is it possible to get any help?

    Thanks in advance.

    p.s. dmesg output attached

  • dushyanth on said:

    Hi,

    I am using Version E1.

    I have followed above instructions, But it does not seem to help.
    D-link adaptor is still not working.

    Below is the output of lsusb after i followed above procedure.

    lsusb output:
    Bus 002 Device 002: ID 2001:3319 D-Link Corp.
    Bus 002 Device 003: ID 0846:9030 NetGear, Inc. WNA1100 Wireless-N 150 [Atheros AR9271]
    Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
    Bus 008 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
    Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
    Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
    Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
    Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
    Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
    Bus 003 Device 002: ID 045e:00cb Microsoft Corp. Basic Optical Mouse v2.0
    Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

    dmesg is attached.

    Please help

    • admin on said:

      Hello dushyanth,

      Some steps to allow easier support:
      1) Your dmesg upload did not work. Please send it to webmaster@linux-hardware-guide.com
      2) Did the compilation of the kernel module (i.e. the “make” command) succeed without error? Was there an error when you tried to load the module (i.e. after “sudo insmod 8192eu.ko”)
      3) Is the kernel module loaded, i.e. what is the output of “lsmod | grep 819″
      4) You can also perform a hardware scan (see http://www.linux-hardware-guide.com/add-hardware) and leave us the session ID that was returned by the scan. We could extract additional information from the scan results.

    • dushyanth on said:

      Hi,

      Thanks for the response.

      I have sent my dmesg log to webmaster@linux-hardware-guide.com

      Compilation of the kernel module succeeded without error.

      There was there no error when i ran the command “sudo insmod 8192eu.ko”

      The driver is getting loaded after i run the insmod command,
      but dmesg log after i load the driver shows a null pointer dereference.

      [ 977.684821] RTL871X: module init start
      [ 977.684826] RTL871X: rtl8192eu v4.3.1.1_11320.20140505
      [ 977.684827] RTL871X: build time: Sep 29 2015 08:07:48
      [ 977.684848] BUG: unable to handle kernel NULL pointer dereference at 00000028
      [ 977.684905] IP: [] rtw_ndev_notifier_call+0×17/0x5d [8192eu]
      [ 977.684995] *pdpt = 000000002fe4a001 *pde = 0000000000000000
      [ 977.685035] Oops: 0000 [#1] SMP
      [ 977.685060] Modules linked in: 8192eu(OF+) ctr ccm arc4 ath9k_htc ath9k_common ath9k_hw ath mac80211 cfg80211 ndiswrapper(OF) rfcomm bnep bluetooth binfmt_misc gpio_ich dm_multipath scsi_dh intel_powerclamp coretemp snd_hda_codec_hdmi kvm_intel kvm snd_hda_codec_realtek snd_hda_intel snd_hda_codec snd_hwdep snd_pcm serio_raw snd_page_alloc snd_seq_midi snd_seq_midi_event lpc_ich snd_rawmidi snd_seq snd_seq_device snd_timer snd mei_me soundcore mei mac_hid parport_pc ppdev lp parport dm_mirror dm_region_hash dm_log pata_acpi hid_generic i915 video r8169 i2c_algo_bit usbhid mii drm_kms_helper hid pata_jmicron drm
      [ 977.685491] CPU: 2 PID: 4608 Comm: insmod Tainted: PF O 3.13.0-24-generic #46-Ubuntu

      After i reboot the machine, i see that driver is not loaded
      “lsmod | grep 819″ gives me no output

      the output of my hardware scan is here
      http://www.linux-hardware-guide.com/hardware-profile/scan-75e3a1cf676ce5da56e18364f8d670

    • admin on said:

      I attached your dmesg output and also extracted some data from your hardware scan at the end of this post.

      Did you also check if there is already some other WiFi driver loaded automatically, which might interfere with the 8192eu driver? Please check the “lsmod” output if there is any suspicious line. It might be necessary to block this automatically loaded kernel module.

      A different driver for the 8192eu chipset is also available from StarTech. However, this driver (in version 4.2.2) is only compatible with kernels up to 3.12 and will need a patch for kernels of version 3.13: http://users.telenet.be/x86_64/Patches/rtl8192eu-k3.13.patch

      Futhermore, it might be that this driver will not recognize the USB ID of the DWA-131 since it is intended for D-Link sticks. It might be necessary to add the USB ID to the source code.

      This could also be the reason why your D-Link driver does not work. It might be not compatible with kernel version 3.13. Is there any possibility to start your system with an older kernel version for testing?

      lsb_release:
      Linux Mint 17 Qiana

      cat /proc/version:
      Linux version 3.13.0-24-generic (buildd@roseapple) (gcc version 4.8.2 (Ubuntu 4.8.2-19ubuntu1) ) #46-Ubuntu SMP Thu Apr 10 19:08:14 UTC 2014

      lsusb -v:
      Bus 002 Device 002: ID 2001:3319 D-Link Corp.
      Device Descriptor:
      bLength 18
      bDescriptorType 1
      bcdUSB 2.10
      bDeviceClass 0 (Defined at Interface level)
      bDeviceSubClass 0
      bDeviceProtocol 0
      bMaxPacketSize0 64
      idVendor 0x2001 D-Link Corp.
      idProduct 0x3319
      bcdDevice 2.00
      iManufacturer 1
      iProduct 2
      iSerial 3
      bNumConfigurations 1
      Configuration Descriptor:
      bLength 9
      bDescriptorType 2
      wTotalLength 53
      bNumInterfaces 1
      bConfigurationValue 1
      iConfiguration 0
      bmAttributes 0xe0
      Self Powered
      Remote Wakeup
      MaxPower 500mA
      Interface Descriptor:
      bLength 9
      bDescriptorType 4
      bInterfaceNumber 0
      bAlternateSetting 0
      bNumEndpoints 5
      bInterfaceClass 255 Vendor Specific Class
      bInterfaceSubClass 255 Vendor Specific Subclass
      bInterfaceProtocol 255 Vendor Specific Protocol
      iInterface 2
      Endpoint Descriptor:
      bLength 7
      bDescriptorType 5
      bEndpointAddress 0x84 EP 4 IN
      bmAttributes 2
      Transfer Type Bulk
      Synch Type None
      Usage Type Data
      wMaxPacketSize 0x0200 1x 512 bytes
      bInterval 0
      Endpoint Descriptor:
      bLength 7
      bDescriptorType 5
      bEndpointAddress 0x05 EP 5 OUT
      bmAttributes 2
      Transfer Type Bulk
      Synch Type None
      Usage Type Data
      wMaxPacketSize 0x0200 1x 512 bytes
      bInterval 0
      Endpoint Descriptor:
      bLength 7
      bDescriptorType 5
      bEndpointAddress 0x06 EP 6 OUT
      bmAttributes 2
      Transfer Type Bulk
      Synch Type None
      Usage Type Data
      wMaxPacketSize 0x0200 1x 512 bytes
      bInterval 0
      Endpoint Descriptor:
      bLength 7
      bDescriptorType 5
      bEndpointAddress 0x87 EP 7 IN
      bmAttributes 3
      Transfer Type Interrupt
      Synch Type None
      Usage Type Data
      wMaxPacketSize 0x0040 1x 64 bytes
      bInterval 3
      Endpoint Descriptor:
      bLength 7
      bDescriptorType 5
      bEndpointAddress 0x08 EP 8 OUT
      bmAttributes 2
      Transfer Type Bulk
      Synch Type None
      Usage Type Data
      wMaxPacketSize 0x0200 1x 512 bytes
      bInterval 0

  • Ragnar on said:

    I have the E version (Bus 001 Device 003: ID 2001:3319 D-Link Corp. ) and it gets NULL pointer dereference when I try to load the module (see the dmesg).

    I have Ubuntu 15.04 with 3.19.0-26-generic kernel.


    [ 837.829178] RTL871X: module init start
    [ 837.829180] RTL871X: rtl8192eu v4.3.1.1_11320.20140505
    [ 837.829187] BUG: unable to handle kernel NULL pointer dereference at 0000000000000050
    [ 837.829189] IP: [] rtw_ndev_notifier_call+0xc/0x65 [8192eu]
    [ 837.829200] PGD 0
    [ 837.829201] Oops: 0000 [#1] SMP
    [ 837.829202] Modules linked in: 8192eu(OE+) pci_stub vboxpci(OE) vboxnetadp(OE) vboxnetflt(OE) vboxdrv(OE) cfg80211 binfmt_misc joydev hid_generic usbhid uas usb_storage fglrx(POE) mxm_wmi snd_hda_codec_realtek snd_hda_codec_generic snd_hda_codec_hdmi intel_rapl iosf_mbi x86_pkg_temp_thermal intel_powerclamp coretemp snd_hda_intel kvm_intel snd_hda_controller snd_hda_codec kvm snd_hwdep crct10dif_pclmul crc32_pclmul ghash_clmulni_intel aesni_intel aes_x86_64 lrw gf128mul glue_helper ablk_helper cryptd snd_soc_rt5640 snd_soc_rl6231 snd_soc_core serio_raw snd_compress snd_pcm_dmaengine snd_seq_midi snd_seq_midi_event snd_pcm mei_me amd_iommu_v2 lpc_ich mei shpchp snd_rawmidi snd_seq 8250_fintek snd_seq_device tpm_infineon snd_timer dw_dmac wmi dw_dmac_core snd_soc_sst_acpi video 8250_dw snd i2c_hid
    [ 837.829220] hid soundcore i2c_designware_platform acpi_pad spi_pxa2xx_platform i2c_designware_core intel_smartconnect mac_hid parport_pc ppdev lp parport autofs4 psmouse ahci alx libahci mdio sdhci_acpi sdhci
    [ 837.829226] CPU: 5 PID: 5478 Comm: insmod Tainted: P OE 3.19.0-26-generic #28-Ubuntu
    [ 837.829227] Hardware name: MSI MS-7917/Z97 GAMING 5 (MS-7917), BIOS V1.0 04/08/2014
    [ 837.829228] task: ffff8803f5e8a740 ti: ffff8800b86d8000 task.ti: ffff8800b86d8000
    [ 837.829228] RIP: 0010:[
    ] [] rtw_ndev_notifier_call+0xc/0x65 [8192eu]
    [ 837.829238] RSP: 0018:ffff8800b86dbc90 EFLAGS: 00010206
    [ 837.829239] RAX: 0000000000000000 RBX: ffffffffc12af080 RCX: 0000000000000009
    [ 837.829240] RDX: ffff8800b86dbcb0 RSI: 0000000000000005 RDI: ffffffffc12af080
    [ 837.829240] RBP: ffff8800b86dbce8 R08: 00000000000177c0 R09: ffffffff813b755d
    [ 837.829241] R10: ffff88041ed577c0 R11: ffffea000fd78000 R12: ffff88040be22000
    [ 837.829241] R13: 0000000000000000 R14: ffffffff81ce54d8 R15: ffffffff81ce5400
    [ 837.829242] FS: 00007f1be757b700(0000) GS:ffff88041ed40000(0000) knlGS:0000000000000000
    [ 837.829243] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    [ 837.829244] CR2: 0000000000000050 CR3: 00000000ba493000 CR4: 00000000001407e0
    [ 837.829244] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
    [ 837.829245] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
    [ 837.829245] Stack:
    [ 837.829246] ffffffff816babb2 ffffffffc0415000 ffff880000000000 ffff8800b86dbce8
    [ 837.829247] ffff88040be22000 ffff8800b86dbce8 ffffffff81c1a080 ffff8803f0fd2800
    [ 837.829248] 0000000000000000 ffffffffc0415000 ffff8800b86dbef8 ffff8800b86dbcf8
    [ 837.829249] Call Trace:
    [ 837.829253] [] ? register_netdevice_notifier+0x92/0x1d0
    [ 837.829254] [] ? 0xffffffffc0415000
    [ 837.829256] [
    ] ? 0xffffffffc0415000
    [ 837.829266] [] rtw_ndev_notifier_register+0x15/0x17 [8192eu]
    [ 837.829271] [] rtw_drv_entry+0x6a/0x1000 [8192eu]
    [ 837.829273] [] do_one_initcall+0xd8/0x210
    [ 837.829276] [] ? kmem_cache_alloc_trace+0x189/0x200
    [ 837.829278] [] ? load_module+0x15b8/0x1d00
    [ 837.829280] [] load_module+0x15f2/0x1d00
    [ 837.829281] [] ? store_uevent+0x40/0x40
    [ 837.829283] [] SyS_finit_module+0x86/0xb0
    [ 837.829285] [] system_call_fastpath+0x16/0x1b
    [ 837.829285] Code: 02 48 81 c7 e8 3a 00 00 ba 06 00 00 00 e8 27 f4 ff ff b8 00 00 00 00 5d c3 b8 00 00 00 00 c3 0f 1f 44 00 00 48 8b 82 e8 01 00 00 <48> 81 78 50 ee 1a 25 c1 75 49 55 48 89 e5 41 54 53 48 89 d3 49
    [ 837.829297] RIP [] rtw_ndev_notifier_call+0xc/0x65 [8192eu]
    [ 837.829306] RSP
    [ 837.829307] CR2: 0000000000000050
    [ 837.829308] ---[ end trace 96b1b59d12928441 ]---

  • Wilson on said:

    How can I manage to turn, in the case of Version B1: 2001:330D, the detection & load of the device and driver, respectively, fully automatic?

  • Anthony Rooney on said:

    What about the latest version of the DWA-131 H/W ver E1 and firmware 5.00 device ID 2001:3319? None of these instructions will work for that device.

    You purchase thinking it will work for Lunix and subsequently discover that D-Link have changed the firmware to the point that it is a dead device as far as Ubuntu 14.04 or 14.10 can see?

  • this doesnt works for me!!

    i dont know why

    when i do everything it loads the wifi and works perfectly for a while…

    After 2 or 5 minutes without any network load.. it just stop working… I mean… it seems to be connected but it doesn’t have any network connection

    Also… after i edit the rc.local file it does even the test.txt.. But even it have “modprobe rtl8192cu” it doesnt load the driver…

    Thanks for your help!!

  • Khalid on said:

    Hi There,
    I went through this guide and the process was successful and I could connect to wifi network with my Dlink dwa 131 external wifi. BUT
    when I rebooted my pc the configurations goes and external wifi card is not usable.
    I did check rc.local file if it really execute commands in it and it works
    but I don’t know now to fix this

    one thing more how can I make the system to load both modules of internal wifi and external so I could be able to use both of the NICs.

    Thanks

  • Carlos on said:

    Firts of all, thank you for this.

    When i execute:

    echo “2001 330D” | sudo tee /sys/bus/usb/drivers/rtl8192cu/new_id

    I’m getting:

    tee: /sys/bus/usb/drivers/rtl8192cu/new_id: No such file or directory

    Also, dmesg shows this:

    [ 65.624142] usb 3-1: new high-speed USB device number 2 using xhci_hcd
    [ 65.641808] usb 3-1: New USB device found, idVendor=2001, idProduct=330d
    [ 65.641816] usb 3-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
    [ 65.641820] usb 3-1: Product: 802.11n WLAN Adapter
    [ 65.641823] usb 3-1: Manufacturer: Realtek
    [ 65.641826] usb 3-1: SerialNumber: 00e04c000001
    [ 70.362283] r8169 0000:07:00.0 eth0: link up

    Any help?

  • Comments

    Please use the comment section to submit corrections to the article as well as relevant excerpts of lspci, lsusb, lshw, dmesg e.t.c. Furthermore, use the section for the exchange of experiences with this hardware component or search for configuration help from other owners of this hardware.
     
    Email address will not be published.
    Submitting comment...