BeagleBone® Enhanced Developer Tutorial

BeagleBone® Enhanced WiFi Driver Update

How to Download & Install the WiFi driver in 4 Simple Steps

The latest generation of the SanCloud BeagleBone® Enhanced WiFi 512 boards the WiFi module uses the new Realtek 8723DU chip.  

Current releases of the BeagleBone® Debian firmware lack the driver required to use this new module.  Identification is straightforward and is visual:

WiFi module surface mounted on SanCloud BeagleBone Enhanced
There is no need to update if the module looks like this:
WiFi module mounted on SanCloud BeagleBone Enhanced
You will need to update if the module looks like this:

To perform the WiFi driver update:  

1. Ensure WiFi module can be detected

debian@BeagleBone:~$ lsusb

Bus 001 Device 003: ID 0bda:d723 Realtek Semiconductor Corp. 802.11n
WLAN Adapter

Bus 001 Device 002: ID 0424:2514 Microchip Technology, Inc. (formerly
SMSC) USB 2.0 Hub

Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

2. Install Linux headers

Connect the system to a wired network connection to install the Linux header files and clone the driver repository.

Before installing the kernel headers, ensure you update your package’s index list to grab the information about the latest releases using the following command:

debian@BeagleBone:~$ sudo apt update

Then proceed and run the following command that follows to install the Linux kernel headers package for your kernel version

debian@BeagleBone:~$ sudo apt install linux-headers-$(uname -r)

3. Get and Build the WiFi Driver

To get the driver source from Larry Finger’s GitHub repository:

https://github.com/lwfinger/rtl8723du

Use the following commands in the debian home directory (/home/debian):

debian@BeagleBone:~$ git clone https://github.com/lwfinger/rtl8723du.git

debian@BeagleBone:~$ cd rtl8723du

debian@BeagleBone:~$ make

It will take a while to compile the driver and you should see all the files being compiled e.g.:

  CC [M]  /home/debian/rtl8723du/core/rtw_cmd.o

  CC [M]  /home/debian/rtl8723du/core/rtw_security.o

  CC [M]  /home/debian/rtl8723du/core/rtw_debug.o

  CC [M]  /home/debian/rtl8723du/core/rtw_io.o

  CC [M]  /home/debian/rtl8723du/core/rtw_ioctl_set.o

..

  CC [M]  /home/debian/rtl8723du/platform/platform_ops.o

  LD [M]  /home/debian/rtl8723du/8723du.o

  MODPOST /home/debian/rtl8723du/Module.symvers

  CC [M]  /home/debian/rtl8723du/8723du.mod.o

  LD [M]  /home/debian/rtl8723du/8723du.ko

4. Install the WiFi Driver

Once compilation has completed successfully the driver will need to be installed:

debian@BeagleBone:~$ sudo make install

After the driver is installed it can be loaded to test:

debian@BeagleBone:~$ sudo modprobe -v 8723du

The wlan0 interface should then appear in the network interfaces list (ifconfig):

wlan0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500

        ether 2c:d2:6b:f1:07:ea  txqueuelen 1000  (Ethernet)

        RX packets 0  bytes 0 (0.0 B)

        RX errors 0  dropped 0  overruns 0  frame 0

        TX packets 0  bytes 0 (0.0 B)

        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

Check interface:

debian@BeagleBone:~$ sudo iw wlan0 info

Interface wlan0

        ifindex 7

        wdev 0x1

        addr 2c:d2:6b:f1:07:ea

        type managed

        wiphy 0

        txpower 12.00 dBm

Quick scan of available access points:

debian@BeagleBone:~$ sudo iw wlan0 scan | grep SSID

        SSID: Visitor

        SSID: TEST_NET

        SSID: SanCloud

With the driver installed and tested the module should be detected each boot.