RTL8188EUS driver for BBB

3,363 views
Skip to first unread message

Tianlan Wang

unread,
Jun 26, 2013, 3:24:25 PM6/26/13
to beagl...@googlegroups.com
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:

Don Miller

unread,
Jun 26, 2013, 4:55:04 PM6/26/13
to beagl...@googlegroups.com
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

On Wednesday, June 26, 2013 3:24:25 PM UTC-4, Tianlan Wang wrote:
...
Message has been deleted

Tianlan Wang

unread,
Jun 27, 2013, 3:37:07 PM6/27/13
to beagl...@googlegroups.com
Thank you Don! 


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

Don Miller

unread,
Jun 30, 2013, 3:55:47 PM6/30/13
to beagl...@googlegroups.com
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

Ken Yang

unread,
Jul 19, 2013, 5:06:27 PM7/19/13
to beagl...@googlegroups.com
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
cd rtl8188eu
make

Now I have the driver compiled, time to copy to the proper location and enable it
1. copy 8188eu.ko to ``/lib/modules/`uname -r`/kernel/driver/net/wireless``
2. depmod -a
3. modprobe 8188eu
4. ifconfig

Now I think I'm getting close but can't get it compile on the BBB.  I'm a linux noob so perhaps I'm missing something.  

Here are some links that I found and think they could be useful:

Getting rtl8192cu on BBB, but in my case I need the 8188eu

Wiki for the v1 driver(rtl8192cu)

A wiki for the v2 driver (8188eu)

All (I think) of the rtl drivers

sekr...@gmail.com

unread,
Oct 1, 2013, 1:23:15 PM10/1/13
to beagl...@googlegroups.com
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.

Ken Yang

unread,
Oct 9, 2013, 1:15:33 PM10/9/13
to beagl...@googlegroups.com, sekr...@gmail.com
Please share your solution.  Appreciated it!  Thanks a lot!!

Nicola Farina

unread,
Oct 10, 2013, 12:08:27 PM10/10/13
to beagl...@googlegroups.com, sekr...@gmail.com
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.

sekr...@gmail.com

unread,
Oct 10, 2013, 8:35:10 PM10/10/13
to beagl...@googlegroups.com, sekr...@gmail.com
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

sekr...@gmail.com

unread,
Oct 11, 2013, 6:24:11 AM10/11/13
to beagl...@googlegroups.com, sekr...@gmail.com
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?


On Thursday, October 10, 2013 11:08:27 PM UTC+7, Nicola Farina wrote:

Ken Yang

unread,
Oct 11, 2013, 1:17:30 PM10/11/13
to beagl...@googlegroups.com, sekr...@gmail.com
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

sekr...@gmail.com

unread,
Oct 14, 2013, 4:31:57 AM10/14/13
to beagl...@googlegroups.com, sekr...@gmail.com
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

Ken Yang

unread,
Oct 15, 2013, 4:12:11 PM10/15/13
to beagl...@googlegroups.com, sekr...@gmail.com
Thanks a lot and will give it a try!
Message has been deleted

jeff....@gmail.com

unread,
Oct 19, 2013, 4:07:51 PM10/19/13
to beagl...@googlegroups.com, sekr...@gmail.com
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,

sekr...@gmail.com

unread,
Oct 21, 2013, 9:46:39 PM10/21/13
to beagl...@googlegroups.com, sekr...@gmail.com, jeff....@gmail.com
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.

Adam Erickson

unread,
Oct 30, 2013, 3:26:27 PM10/30/13
to beagl...@googlegroups.com, sekr...@gmail.com, jeff....@gmail.com
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?

Ken Yang

unread,
Nov 15, 2013, 2:29:39 PM11/15/13
to beagl...@googlegroups.com, sekr...@gmail.com, jeff....@gmail.com
I got mine working as well ... but experiencing some unstable behaviors such as slow connection and when I attempt to ssh, it fails sometimes.

estefaniadesir...@gmail.com

unread,
Mar 5, 2015, 1:24:18 PM3/5/15
to beagl...@googlegroups.com, sekr...@gmail.com
Step 3. gives me fatal error and the modulo cannot be found

estefaniadesir...@gmail.com

unread,
May 8, 2015, 7:29:53 PM5/8/15
to beagl...@googlegroups.com, sekr...@gmail.com, jeff....@gmail.com
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?

doog

unread,
May 11, 2015, 11:26:57 AM5/11/15
to beagl...@googlegroups.com
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

estefania desiree avalos rivera

unread,
May 12, 2015, 9:39:23 AM5/12/15
to beagl...@googlegroups.com

--
For more options, visit http://beagleboard.org/discuss
---
You received this message because you are subscribed to a topic in the Google Groups "BeagleBoard" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/beagleboard/BMhoiGgYVVs/unsubscribe.
To unsubscribe from this group and all its topics, send an email to beagleboard...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

doog

unread,
May 12, 2015, 3:51:45 PM5/12/15
to beagl...@googlegroups.com, estefaniadesir...@gmail.com
On Tuesday, May 12, 2015 at 6:39:23 AM UTC-7, estefania desiree avalos rivera wrote:


no, not Android. it was creating an /etc/wpa_supplicant.conf file, editing /etc/network/interfaces file, loading the driver and starting the interface. Lots of HowTo on standard Linux on that process. Again, it was not Android.

Doug
Reply all
Reply to author
Forward
0 new messages