Drivers for the rtl8192eu chipset for wireless adapters (D-Link DWA-131 rev E1 included!)
Go to file
2019-10-05 23:53:32 +03:00
core Fix indentation that produced warnings 2019-07-08 03:31:19 +03:00
hal Enable power management (hopefully). 2019-08-22 02:02:40 +03:00
include Enable power management (hopefully). 2019-08-22 02:02:40 +03:00
os_dep linux-5.3: adding vendor command policy (#141) 2019-09-19 21:30:52 +02:00
platform Updated to 4.4.1 2017-05-11 20:49:39 +02:00
.gitignore Add gitignore 2019-10-05 23:53:32 +03:00
.travis.yml linux-5.3: adding vendor command policy (#141) 2019-09-19 21:30:52 +02:00
clean The official RTL8192EU linux driver from D-Link Australia 2015-08-18 21:03:11 +02:00
dkms.conf Edit dkms.conf to use correct kernel version 2017-05-27 15:03:28 +02:00
ifcfg-wlan0 The official RTL8192EU linux driver from D-Link Australia 2015-08-18 21:03:11 +02:00
Kconfig The official RTL8192EU linux driver from D-Link Australia 2015-08-18 21:03:11 +02:00
Makefile Merge pull request #118 from xmatko/rpi_ioctl_cfg80211 2019-09-05 12:20:42 +02:00
README.md add aarch64 info and a tested tp-link device to the README 2019-06-09 15:42:22 +03:00
runwpa The official RTL8192EU linux driver from D-Link Australia 2015-08-18 21:03:11 +02:00
wlan0dhcp The official RTL8192EU linux driver from D-Link Australia 2015-08-18 21:03:11 +02:00

rtl8192eu linux drivers

NOTE: This branch is based on Realtek's driver versioned 4.4.1. master is based on 4.3.1.1 originally.

The official drivers for D-Link DWA-131 Rev E, with patches to keep it working on newer kernels. Also works on Rosewill RNX-N180UBE v2 N300 Wireless Adapter and TP-Link TL-WN821N V6.

NOTE: This is just a "mirror". I have no knowledge about this code or how it works. Expect no support from me or any contributors here. I just think GitHub is a nicer way of keeping track of this than random forum posts and precompiled binaries being sent by email. I don't want someone else to have to spend 5 days of googling and compiling with random patches until it works.

Source for the official drivers

Official drivers were downloaded from D-Link Australia. D-Link USA and the european countries I checked only lists revision A and B. Australia lists all three.

In addition, you can find the contents of this version in the initial commit of this repo: 1387cf623d54bc2caec533e72ee18ef3b6a1db29

Patches

You can see the applied patches, their sources and/or motivation by looking at the commits. The master branch will mostly be kept clean with a single commit per patch, except for Pull Requests. You can review commit by commit and then record the SHA in order to get a safe reference to use. As long as the SHA stays the same you know that what you get has been reviewed by you.

Note that updates to this README will show up as separate commits. I will not mix changes to this file with changes to the code in case you want to mirror this without the README.

Building and installing using DKMS

This tree supports Dynamic Kernel Module Support (DKMS), a system for generating kernel modules from out-of-tree kernel sources. It can be used to install/uninstall kernel modules, and the module will be automatically rebuilt from source when the kernel is upgraded (for example using your package manager).

  1. Install DKMS and other required tools

    • for normal Linux systems
    $ sudo apt-get install git linux-headers-generic build-essential dkms;
    
    • for Raspberry Pi
    $ sudo apt-get install git raspberrypi-kernel-headers build-essential dkms;
    
  2. Clone this repository and change your directory to cloned path.

    $ git clone https://github.com/Mange/rtl8192eu-linux-driver;
    
    $ cd rtl8192eu-linux-driver;
    
  3. The Makefile is preconfigured to handle most x86/PC versions. However, if you are compiling for something other than an intel x86 architecture, you need to first select the platform.

    • for the Raspberry Pi, you need to set the I386 to n and the ARM_RPI to y:
    ...
    CONFIG_PLATFORM_I386_PC = n
    ...
    CONFIG_PLATFORM_ARM_RPI = y
    
    • for arm64 devices (e.g. Orange Pi PC 2):
    ...
    CONFIG_PLATFORM_I386_PC = n
    ...
    CONFIG_PLATFORM_ARM_AARCH64 = y
    
  4. 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 .;
    
  5. Build and install the driver.

    $ sudo dkms install rtl8192eu/1.0;
    
  6. Distributions based on Debian & Ubuntu have RTL8XXXU driver present & running in kernelspace. To use our RTL8192EU driver, we need to blacklist RTL8XXXU.

    $ echo "blacklist rtl8xxxu" | sudo tee /etc/modprobe.d/rtl8xxxu.conf;
    
  7. Force RTL8192EU Driver to be active from boot.

    $ echo -e "8192eu\n\nloop" | sudo tee /etc/modules;
    
  8. Newer versions of Ubuntu has weird plugging/replugging issue (Check #94). This includes weird idling issues, To fix this:

    $ echo "options 8192eu rtw_power_mgnt=0 rtw_enusbss=0" | sudo tee /etc/modprobe.d/8192eu.conf;
    
  9. Update changes to Grub & initramfs

    $ sudo update-grub; sudo update-initramfs -u;
    
  10. Reboot system to load new changes from newly generated initramfs.

    $ systemctl reboot -i;
    
  11. Check that your kernel has loaded the right module:

    $ sudo lshw -c network;
    

You should see the line driver=8192eu

If you wish to uninstall the driver at a later point, use sudo dkms uninstall rtl8192eu/1.0. To completely remove the driver from DKMS use sudo dkms remove rtl8192eu/1.0 --all.

Submitting patches

  1. Fork repo
  2. Do your patch in a topic branch
  3. Open a pull request on GH, or send it by email to Magnus Bergmark <magnus.bergmark@gmail.com>.
  4. I'll squash your commits when everything checks out and add it to master.

The original code is copyrighted, but I don't know by whom. The driver download does not contain license information; please open an issue if you are the copyright holder.

Most C files are licensed under GNU General Public License (GPL), version 2.