This has been tested on the following distributions:
- Debian Squeeze
- Debian Raspbian Wheezy (15/07/2012)
Note: You do not need to follow this procedure for Debian Raspbian Wheezy (18/09/2012) onwards; the RTL8188CUS WiFi chipset is supported out of the box and can be configured in the GUI. Simply run startx and select “WiFi Config” on the desktop.
The USB WiFi dongle I have is an EDUP EP-N8508. This dongle did not work out of the box and hung the Raspberry Pi during bootup for ages with the following cryptic message:
Waiting for /dev to be fully populated... cfg80211:Calling CRDA to update world regulatory domain
When it did finally allow me to log in it was apparent that the dongle did not work out of the box. Issuing the command lsusb (with the dongle plugged in) produced:
ID 0bda:8176 Realtek Semiconductor Corp. RTL8188CUS 802.11n WLAN
After hitting Google I found a potential solution in this thread:
To get the dongle working I had to connect via Ethernet first. After removing the dongle and connecting the Raspberry Pi to the Internet I made sure that the operating system was up to date:
sudo apt-get update sudo apt-get upgrade
I then installed the standard Realtek firmware drivers,
sudo apt-get install firmware-realtek
I created a Downloads directory:
cd ~ mkdir Downloads cd Downloads
Then downloaded the file 8192cu.tar.gz into it from my website. There are two versions depending upon the distribution you are using, so make sure you download the correct one:
I then blacklisted the standard drivers:
sudo nano /etc/modprobe.d/blacklist.conf
and then added this line at the bottom:
I then installed the precompiled drivers that I’d previously downloaded
tar xf 8192cu.tar.gz sudo install -p -m 644 8192cu.ko /lib/modules/3.1.9+/kernel/drivers/net/wireless/ sudo depmod -a
I then checked that the file /lib/firmware/rtlwifi/rtl8712u.bin is present; it was on my installation. I assume this was because I’d installed the standard firmware earlier.
I then powered down the Pi, inserted the dongle and then rebooted; this looked promising – the system booted quickly (no hangs) and reported the dongle was working. The command ifconfig confirmed that I had a new interface, wlan0.
I then marked the interface as “up” and did a quick scan of our wireless network:
sudo ifconfig wlan0 up sudo iwlist wlan0 scanning
This picked up my network. Now to configure to access the network I followed instructions from this guide (Step 3 onwards):
First, I checked that the package wpasupplicant was installed. This is required to connect to a WPA-EAP secured network.
sudo apt-get install wpasupplicant
Then I edited the network configuration file:
sudo nano /etc/network/interfaces
If you are using a WEP network, add this at the bottom of the file:
auto wlan0 iface wlan0 inet dhcp wireless-essid YOUR-SSID wireless-key YOUR-WEP-KEY wireless-mode managed
If you are using WPA, use this instead:
auto wlan0 iface wlan0 inet dhcp wpa-ssid YOUR-SSID wpa-psk YOUR-WPA-KEY
The WPA example given in the instructions didn’t work for me; the configuration may be for connecting to a WAP-EAP secured network. I think this is a neater solution; one less file to edit!
At this point I restarted the network:
sudo /etc/init.d/networking restart
And after issuing another ifconfig I had confirmed that I had a working wireless network interface. Pulling the Ethernet cable out and rebooting confirmed this.