TP-Link TL-WN725N in Arch Linux ARM


EDIT 2013-11-24: As of kernel 3.12, the driver has been included in the staging area of the Linux kernel [1]. Upgrading your kernel to get the included driver may be easier than compiling your own kernel module.


So I recently bought a TP-Link TL-WN725N wireless adapter to use together with my Raspberry Pi. The main reason to buy this particular model was that it should work out of the box together with the Linux kernel in Raspberry Pi.

It did not.

As it turns out, I have got the second version of the wireless dongle, which featured another chip – RTL8188EU. This chip does require another kernel module to be compiled and loaded into the kernel. Compiling kernel modules isn’t exactly my favourite way to spend my free time, so I looked desperately for some pre-compiled versions, but did not find any. Tough luck, eh?

Anyhow, here are the steps to produce a working kernel module for the dongle:

  • First install the kernel headers, which will be required later on.

# pacman -S linux-headers-raspberrypi

  • Then clone the git repo with source code for the rtl8188eu chip.

$ git clone

  • For me the module worked very unreliable (80 % packet loss) when power saving was enabled, so I disabled it before compiling. Go into the cloned git repo and open the Makefile.
$ cd rtl8188eu
$ vim Makefile
  • Change the following line. Last time I cloned the repo it was at line 22, your mileage may vary. CONFIG_POWER_SAVING = y to CONFIG_POWER_SAVING = n
  • Finally the code is ready to be compiled! This will compile the code as a kernel module for the currently running kernel. It assumes the kernel headers are installed as described in the first step!

$ CONFIG_RTL8188EU=m make -C /usr/src/linux-`uname -r` M=`pwd`

  • Finally the kernel module can be copied into the kernel module directory and be loaded into the kernel.
    # install -p -m 644 8188eu.ko /lib/modules/`uname -r`/kernel/drivers/net/wireless/
    # depmod -a
    # modprobe 8188eu

Good luck!

comments powered by Disqus