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.