The RTL8188eu wifi chip is not supported on Raspbian Lite “Jessie” out of the box, so we need a few things to make it work, but I’ll show you how.

If you have a powered USB hub, you can use a USB-to-Ethernet adapter and the BY526 8188eu wifi dongle at the same time. I didn’t have a powered USB hub, so I had to take a few extra steps.

1. Connect the USB-OTG cable to the microUSB slot on the Pi Zero. Into that, plug in the USB-to-Ethernet network adapter. To that, connect an Ethernet cable which is connected to your Internet router. If you power the Pi now, it should be reachable on the network, but it’s still wired. SSH to the Pi Zero using the IP which was given to the Pi Zero by your router. (Check in your router’s web interface what that IP is.)

Prepare the wifi settings in advance

Raspbian Lite “Jessie” uses the dhcpcd.conf file to set up static IPs for the network interfaces. Mine looks like this (the impartant part, concerning wlan0 is at the very end)

pi@nulla:~ $ cat /etc/dhcpcd.conf
# A sample configuration for dhcpcd.
# See dhcpcd.conf(5) for details.

# Allow users of this group to interact with dhcpcd via the control socket.
#controlgroup wheel

# Inform the DHCP server of our hostname for DDNS.
hostname

# Use the hardware address of the interface for the Client ID.
clientid
# or
# Use the same DUID + IAID as set in DHCPv6 for DHCPv4 ClientID as per RFC4361.
#duid

# Persist interface configuration when dhcpcd exits.
persistent

# Rapid commit support.
# Safe to enable by default because it requires the equivalent option set
# on the server to actually work.
option rapid_commit

# A list of options to request from the DHCP server.
option domain_name_servers, domain_name, domain_search, host_name
option classless_static_routes
# Most distributions have NTP support.
option ntp_servers
# Respect the network MTU.
# Some interface drivers reset when changing the MTU so disabled by default.
#option interface_mtu

# A ServerID is required by RFC2131.
require dhcp_server_identifier

# Generate Stable Private IPv6 Addresses instead of hardware based ones
slaac private

# A hook script is provided to lookup the hostname if not set by the DHCP
# server, but it should not be run by default.
nohook lookup-hostname
interface eth0

static ip_address=192.168.1.99/24
static routers=192.168.1.254
static domain_name_servers=192.168.1.254

interface wlan0

static ip_address=192.168.1.100/24
static routers=192.168.1.254
static domain_name_servers=192.168.1.254

Then we need to set the SSID and PSK (password) of the WiFi network we wish to connect to. The setting can be edited in the wpa_supplicant.conf file

sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

My wpa_supplicant.conf file looks like this (you need to change the values in bold)

pi@nulla:~ $ sudo cat /etc/wpa_supplicant/wpa_supplicant.conf
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
	ssid="MyWifiNameWhichEveryoneSees"
	psk="Thisisthepassword8188"
}

This would be enough in case my wifi dongle would be supported, but that’s not the case, so we need a driver.

Install the RTL8188eu driver

First we need to determine the kernel version, which will be used to download the proper version of the 8188eu driver. The version and the number will be important in the next step.

pi@nulla:~ $ uname -a
Linux nulla 4.4.13+ #894 Mon Jun 13 12:43:26 BST 2016 armv6l GNU/Linux

Now we’ll download the driver, based on this tutorial from the Raspberry Pi forums.

The kernel version highlighted above and the number has to be changed in the URL, to download the driver needed for you exact kernel version.

cd ~
pi@nulla:~ $ wget https://dl.dropboxusercontent.com/u/80256631/8188eu-4.4.13-894.tar.gz
converted 'https://dl.dropboxusercontent.com/u/80256631/8188eu-4.4.13-894.tar.gz' (ANSI_X3.4-1968) -> 'https://dl.dropboxusercontent.com/u/80256631/8188eu-4.4.13-894.tar.gz' (UTF-8)
--2016-09-24 21:20:29--  https://dl.dropboxusercontent.com/u/80256631/8188eu-4.4.13-894.tar.gz
Resolving dl.dropboxusercontent.com (dl.dropboxusercontent.com)... 108.160.173.69
Connecting to dl.dropboxusercontent.com (dl.dropboxusercontent.com)|108.160.173.69|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 415560 (406K) [application/octet-stream]
Saving to: '8188eu-4.4.13-894.tar.gz'

8188eu-4.4.13-894.tar.gz                        100%[=========================================================================================================>] 405.82K   446KB/s   in 0.9s   

2016-09-24 21:20:31 (446 KB/s) - '8188eu-4.4.13-894.tar.gz' saved [415560/415560]
pi@nulla:~ $ ls
8188eu-4.4.13-894.tar.gz


pi@nulla:~ $ mkdir 8188eu
pi@nulla:~ $ cp 8188eu-4.4.13-894.tar.gz 8188eu/
pi@nulla:~ $ cd 8188eu/
pi@nulla:~/8188eu $ ls -lah
total 416K
drwxr-xr-x 2 pi pi 4.0K Sep 24 21:25 .
drwxr-xr-x 3 pi pi 4.0K Sep 24 21:25 ..
-rw-r--r-- 1 pi pi 406K Sep 24 21:25 8188eu-4.4.13-894.tar.gz
pi@nulla:~/8188eu $ tar xzf 8188eu-4.4.13-894.tar.gz 
pi@nulla:~/8188eu $ ls -lah
total 1.6M
drwxr-xr-x 2 pi pi 4.0K Sep 24 21:26 .
drwxr-xr-x 3 pi pi 4.0K Sep 24 21:25 ..
-rw-r--r-- 1 pi pi 406K Sep 24 21:25 8188eu-4.4.13-894.tar.gz
-rw-r--r-- 1 pi pi  129 Jun 22 09:46 8188eu.conf
-rw-r--r-- 1 pi pi 1.2M Jun 22 09:46 8188eu.ko
-rwxr-xr-x 1 pi pi  656 Jun 22 09:46 install.sh
pi@nulla:~/8188eu $ sudo ./install.sh

The install script runs, and when it finishes, it’ll announce that if you have your wifi set up, it should start working now.

Remove the wired connection from the Pi Zero, so only the Wifi donle is connected to it’s USB.

Reboot the Pi.

SSH to the wlan0 IP we have set up in the /etc/dhcpcd.conf

Success? You have reached the Pi Zero via Wifi!