RTL8188EUS driver for BBB

I brought a TP_Link wn725_V2 WIFI dongle. A quick search tells me that it has a 8188eu chipset, which is not officially supported for Linux.

The thing is I dont want to spend too many time on installing Linux on my PC, setting up cross compilation environment, getting confused by the make-file flags and fail in the end. yea! I learnt those by reading tons of tutorial for raspberry pi and getting tired of doing that.

It would be very nice to have someone has done this before and share the driver for newbies like me.I tried pre-compiled driver of raspberry pi but it couldn’t be installed.

Worse case, if I need to compile driver by myself. Can I do it on my beaglebone black, in respect of the memory required?
I think the driver itself is relatively small, but what else do I need? compiler, build essential, kernel header, kernel source? and how can I get them in angstrom?

FYI, here’s the source code of 8188eu driver I found:
https://github.com/Red54/linux-shumeipai2/tree/sunxi-3.0/drivers/net/wireless/rtl8188eu

TW:

Presumably, you would follow the steps in:
http://www.codealpha.net/864/how-to-set-up-a-rtl8192cu-on-the-beaglebone-black-bbb/

…but you would substitute the git-link for the 8188eu, and the driver filename for the 8188eu where appropriate (instead of the 8192cu).

In my experience, I had to do a bit more (see RTL8192CU WIFI — Actual Progress!), but I was told I did not need to do everything that I did in that larger work-flow, so I am trying again with my 2nd BBB.

I think that additionally, you may need to install the rtlwifi firmware in addition to the codealpha procedure above. That firmware seems to be missing from the latest disto. I don’t know if it is because it was not needed, or what.
Anyway, if you find that you need it, you’ll need to do something like: opkg install linux-firmware-rtlwifi (you can confirm by doing: opkg list | grep rtlwifi beforehand.

If you do this build, you will blow away a couple of evenings and the results will not be guaranteed.
That seems to be the nature of the BBB toy.

You will have enough memory to do the task, though you might want to uninstall kernel-dev when you are done to re-claim some space.
Additionally, drm is spewing out lots if irritating messages into the journal in the latest images, so you might want to find the config file for journalctl and limit it to 50M or so. I found that the journal was eating my free space at a frightening clip.
https://wiki.archlinux.org/index.php/Systemd#Journal_size_limit

Don

Thank you Don!

在 2013年6月26日星期三UTC-4下午4时55分04秒,Don Miller写道:

TW:

As it turns out, the 8192cu and 8188 use the same drivers anyway, so you should be able to use the advice on that thread without doing any modifications to it yourself.

Don

Hi Don,

I don’t think that’s the case because I’m using v2 and plugging it in into my Ubuntu PC it didn’t even detect my wifi adapter and I have to checkout the 8188eu driver source from github (https://github.com/lwfinger/rtl8188eu) and compile it to work on a Ubuntu PC.

Here’s what I did to get it working on my Ubuntu PC (x86), however, can’t get it work on the BBB using the same steps.

First clone the source onto my PC and compile it
git clone https://github.com/lwfinger/rtl8188eu.git
cd rtl8188eu
make

Now I have the driver compiled, time to copy to the proper location and enable it

I can get my rtl8188eus(TL-WN723N) to work now. I don’t know if anyone still want to know.
I will post the way I get this to work tomorrow.

If someone read my post here, please show a sign of life.

Please share your solution. Appreciated it! Thanks a lot!!

I’m also interested in your solution as I’m recycling that same dongle from the RaspberryPi and remember I had to fiddle there too.

Hello Ken Yang and Nicola Farina,

Sorry, for now, my friend borrow me my BBB. They will return it back to me in this Sunday.
I will share the solution once I get it back.

I also have my built kernel file. I don’t know will it work on another BBB.

Would you two like to try? (No, I will not warranty any damage to your BBB LOL)

With love,
Sek

Sorry

My friend borrowed my BBB since last monday. But I have a built kernel in tar ball (with 8188eus module).

Would you like to try it?

Thanks so much. Please share what you had. I understand the risk and will not be blaming you if anything happens to my BBB LOL

Hello Ken Yang,

Sorry for very late. Here is link to compiled kernel on Google Drive https://docs.google.com/file/d/0B7PmdsPeTtVOeHpHQ3dNX0pDMk0/edit?usp=sharing.

** USB WiFi adapter must be plugged in before power-on.

  1. extract content to root file system.
    tar -xvf kernel.tar.gz -C /

  2. Rebuild the module list.
    depmod -a

  3. Probe the module.
    modprobe 8188eu

  4. Generate encrypted WiFi pass phrase.

wpa_passphrase <ssid> <passphrase>
ex. My SSID=Sek, passphrase=sekranger
wpa_passphrase Sek sekranger

This command will output something similar to this.

network={
    ssid="Sek"
    #psk="sekranger"
    psk=f5d1c49e15e679bebe385c37648d4141bc5c9297796a8a185d7bc5ac62f954e3
}

5. copy your encrypted pass phrase. For me, it's:
f5d1c49e15e679bebe385c37648d4141bc5c9297796a8a185d7bc5ac62f954e3

6. Use your favorite text editor to edit /var/lib/connman/wifi.config.
If it doesn't exists, create one.

7. Put this into wifi.config.
[service_home]
Type=wifi
Name=<ssid>
Passphrase=<encrypted_passphrase>

ex.
[service_home]
Type=wifi
Name=Sek
Passphrase=f5d1c49e15e679bebe385c37648d4141bc5c9297796a8a185d7bc5ac62f954e3

8.restart your BBB.

9.If you have any issue, please let me know. I may not be to help you. But we can mess everything up together. LOL

Thanks a lot and will give it a try!

I am recently playing ard with WIFI o BBB on WN725 also. I’ll also try this out. Btw anyone is successful in compiling lwfinger driver in ARM architecture? I don’t seem to be able to get it to compile in ARM,

I’ve never tried to compile it on ARM. I cross-compiled them using Arch on my laptop.
Last week, I tried to compile my driver using Arch on BBB. It was made into kernel object. But no interface was shown.
I’m now wonder, if compiling on BBB will works?

Must tried to re-cross-compile it.

Thank you for the kernel. I followed your instructions and had my TP-LINK TL-WN725N working. I think I had to run opkg update and opkg upgrade after following your methods. I was able to finally SSH into the BBB over WiFi, but after setting up x11vnc, my WiFi stopped working. Any idea what would cause this?

I got mine working as well … but experiencing some unstable behaviors such as slow connection and when I attempt to ssh, it fails sometimes.

Step 3. gives me fatal error and the modulo cannot be found

I’m trying to modify Makefile from lwfinger driver to crosscompile it to arm

here’s the makefile:
SHELL := /bin/bash
EXTRA_CFLAGS += $(USER_EXTRA_CFLAGS)
EXTRA_CFLAGS += -O1

EXTRA_CFLAGS += -Wno-unused-variable
EXTRA_CFLAGS += -Wno-unused-value
EXTRA_CFLAGS += -Wno-unused-label
EXTRA_CFLAGS += -Wno-unused-parameter
EXTRA_CFLAGS += -Wno-unused-function
EXTRA_CFLAGS += -Wno-unused

EXTRA_CFLAGS += -Wno-uninitialized

EXTRA_CFLAGS += -I$(src)/include

ccflags-y += -D__CHECK_ENDIAN__

CONFIG_AUTOCFG_CP = n

CONFIG_RTL8188E = y

CONFIG_USB_HCI = y

CONFIG_BT_COEXIST = n
CONFIG_WOWLAN = n

export TopDIR ?= $(shell pwd)

OUTSRC_FILES :=
hal/HalHWImg8188E_MAC.o
hal/HalHWImg8188E_BB.o
hal/HalHWImg8188E_RF.o
hal/HalPhyRf.o
hal/HalPhyRf_8188e.o
hal/HalPwrSeqCmd.o
hal/Hal8188EPwrSeq.o
hal/Hal8188ERateAdaptive.o
hal/hal_intf.o
hal/hal_com.o
hal/odm.o
hal/odm_debug.o
hal/odm_interface.o
hal/odm_HWConfig.o
hal/odm_RegConfig8188E.o
hal/odm_RTL8188E.o
hal/rtl8188e_cmd.o
hal/rtl8188e_dm.o
hal/rtl8188e_hal_init.o
hal/rtl8188e_mp.o
hal/rtl8188e_phycfg.o
hal/rtl8188e_rf6052.o
hal/rtl8188e_rxdesc.o
hal/rtl8188e_sreset.o
hal/rtl8188e_xmit.o
hal/rtl8188eu_led.o
hal/rtl8188eu_recv.o
hal/rtl8188eu_xmit.o
hal/usb_halinit.o
hal/usb_ops_linux.o

RTL871X = rtl8188e

HCI_NAME = usb

_OS_INTFS_FILES :=
os_dep/ioctl_linux.o
os_dep/mlme_linux.o
os_dep/os_intfs.o
os_dep/osdep_service.o
os_dep/recv_linux.o
os_dep/rtw_android.o
os_dep/usb_intf.o
os_dep/usb_ops_linux.o
os_dep/xmit_linux.o

_HAL_INTFS_FILES += $(OUTSRC_FILES)

ifeq ($(CONFIG_AUTOCFG_CP), y)

$(shell cp $(TopDIR)/autoconf_rtl8188e_usb_linux.h $(TopDIR)/include/autoconf.h)
endif

ifeq ($(CONFIG_BT_COEXIST), y)
EXTRA_CFLAGS += -DCONFIG_BT_COEXIST
endif

ifeq ($(CONFIG_WOWLAN), y)
EXTRA_CFLAGS += -DCONFIG_WOWLAN
endif

SUBARCH := $(shell uname -m | sed -e s/i.86/i386/ | sed -e s/ppc/powerpc/ | sed -e s/armv.l/arm/)

ARCH ?= $(SUBARCH)
CROSS_COMPILE ?=
KVER := $(shell uname -r)
KSRC ?= /lib/modules/$(KVER)/build
MODDESTDIR := /lib/modules/$(KVER)/kernel/drivers/net/wireless
INSTALL_PREFIX :=

ifneq ($(KERNELRELEASE),)

rtk_core :=
core/rtw_ap.o
core/rtw_br_ext.o
core/rtw_cmd.o
core/rtw_debug.o
core/rtw_efuse.o
core/rtw_ieee80211.o
core/rtw_io.o
core/rtw_ioctl_set.o
core/rtw_iol.o
core/rtw_led.o
core/rtw_mlme.o
core/rtw_mlme_ext.o
core/rtw_mp.o
core/rtw_mp_ioctl.o
core/rtw_pwrctrl.o
core/rtw_p2p.o
core/rtw_recv.o
core/rtw_rf.o
core/rtw_security.o
core/rtw_sreset.o
core/rtw_sta_mgt.o
core/rtw_wlan_util.o
core/rtw_xmit.o

8188eu-y += $(rtk_core)

8188eu-y += $(_HAL_INTFS_FILES)

8188eu-y += $(_OS_INTFS_FILES)

obj-$(CONFIG_RTL8188EU) := 8188eu.o

else

export CONFIG_RTL8188EU = m

all: modules

modules:
$(MAKE) ARCH=$(ARCH) CROSS_COMPILE=$(CROSS_COMPILE) -C $(KSRC) M=$(shell pwd) modules

strip:
$(CROSS_COMPILE)strip 8188eu.ko --strip-unneeded

install:
install -p -m 644 8188eu.ko $(MODDESTDIR)
@if [ -a /lib/modules/$(KVER)/kernel/drivers/staging/rtl8188eu/r8188eu.ko ] ; then modprobe -r r8188eu; fi;
@echo “blacklist r8188eu” > /etc/modprobe.d/50-8188eu.conf
cp rtl8188eufw.bin /lib/firmware/.
/sbin/depmod -a ${KVER}
mkdir -p /lib/firmware/rtlwifi
cp -n rtl8188eufw.bin /lib/firmware/rtlwifi/.

uninstall:
rm -f $(MODDESTDIR)/8188eu.ko
/sbin/depmod -a ${KVER}
@rm /etc/modprobe.d/50-8188eu.conf

config_r:
@echo “make config”
/bin/bash script/Configure script/config.in

.PHONY: modules clean clean_odm-8192c

clean_odm-8192c:
cd hal/OUTSRC/rtl8192c ; rm -fr *.mod.c *.mod .o ..cmd *.ko

clean: $(clean_more)
rm -fr *.mod.c *.mod .o ..cmd *.ko *~
rm -fr .tmp_versions
rm -fr Module.symvers ; rm -fr Module.markers ; rm -fr modules.order
cd core ; rm -fr *.mod.c *.mod .o ..cmd *.ko
cd hal ; rm -fr *.mod.c *.mod .o ..cmd *.ko
cd os_dep ; rm -fr *.mod.c *.mod .o ..cmd *.ko
endif

Someone who knows about shellscript can tell me please where to modify it?

I have 2 different 8188 based microUSB WiFi dongles and using the 8192cu driver along with setting up WPA Supplicant worked perfectly on BBB, Odroid c1 and on a Ubuntu 14.04 laptop.

YMMV but if not it’s easy peasy.

Doug