How to install WiFi driver for D-Link DWA 131 (USB Dongle)

I’m listing down the exact steps I followed to get my wifi dongle working. This is mostly based on the readme given at this GitHub repo

Step 0: Install dkms and headers. (linux-lts-headers or linux-headers, or both, depending on your kernel)

sudo pacman -S linux-headers dkms

Step 1: Clone the repository and change your directory to cloned path.

git clone https://github.com/Mange/rtl8192eu-linux-driver
cd rtl8192eu-linux-driver

Step 2: Add the driver to DKMS. This will copy the source to a system directory so that it can used to rebuild the module on kernel upgrades.

sudo dkms add .

Step 3: Build and install the driver.

sudo dkms install rtl8192eu/1.0

This step can take some time. Also, you may get a message like this

Error! Module version v5.6.4_35685.20191108_COEX20171113-0047 for 8192eu.ko.xz
is not newer than what is already found in kernel 5.4.46-1-lts (v5.6.4_35685.20191108_COEX20171113-0047).
You may override by specifying --force.

You can safely ignore this.

Step 4: Blacklist the existing rtl8xxxu driver

echo "blacklist rtl8xxxu" | sudo tee /etc/modprobe.d/rtl8xxxu.conf

This is an important step, which I wasn’t doing, and hence facing the problem.

@2000 also wrote

Step 5: Force RTL8192EU Driver to be active from boot.

echo -e "8192eu\n\nloop" | sudo tee /etc/modules

Step 6: Update the grub config. You may need to modify this command.

sudo grub-mkconfig -o /boot/grub/grub.cfg

Step 7: Reboot

After the reboot, you should be able to connect to networks.

To verify that the right module is loaded, run

sudo lshw -c network

(You may need to install the package lshw)

Sample output of the about command:

  *-network
       description: Ethernet interface
       product: RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller
       vendor: Realtek Semiconductor Co., Ltd.
       physical id: 0
       bus info: pci@0000:03:00.0
       logical name: enp3s0
       version: 06
       serial: 94:de:80:e5:03:2b
       capacity: 1Gbit/s
       width: 64 bits
       clock: 33MHz
       capabilities: pm msi pciexpress msix vpd bus_master cap_list ethernet physical tp mii 10bt 10bt-fd 100bt 100bt-fd 1000bt 1000bt-fd autonegotiation
       configuration: autonegotiation=on broadcast=yes driver=r8169 firmware=rtl8168e-3_0.0.4 03/27/12 latency=0 link=no multicast=yes port=MII
       resources: irq:16 ioport:d000(size=256) memory:f2104000-f2104fff memory:f2100000-f2103fff
  *-network
       description: Wireless interface
       physical id: 2
       bus info: usb@2:1.2
       logical name: wlan0
       serial: 62:1f:ac:28:ba:4e
       capabilities: ethernet physical wireless
       configuration: broadcast=yes driver=rtl8192eu multicast=yes wireless=unassociated

In the very last entry, in the configuration details, you can see driver=rtl8192eu. This confirms that the right driver was loaded. Note that it need not be the last entry on your system.

Uninstalling the driver
Run

sudo dkms uninstall rtl8192eu/1.0

to remove the driver.

To completely remove the driver, and its sources with dkms, run:

sudo dkms uninstall rtl8192eu/1.0 -all

Edit: I have used the GitHub repo, because it is recently updated. If you prefer to use the aur, then install 8192eu-dkms and blacklist the existing driver (step 4). Reboot and the wifi chip will now work.

5 Likes