Update: 2015-05-01
This post is now out of date! Please see the official documentation for setting up wireless on your raspberry pi.
Why Wi-fi?
What good is a little tiny computer when it always needs to be attached to your router via and ethernet cable? Not very! I like that fact that my raspberry Pi is so small that I sometimes forget where I put them.Literally. I have three and I can't remember where the third one is. It is online, though!
The best way to unwire is to go wireless. Disregard that dumb sentence and read this guide for connecting your raspberry pi to your wireless network using WPA encryption.
You need to get your hands on a linux-compatible wireless adapter. I recommend the Edimax Nano. It's cheap and works well with linux out of the box. No driver installation necessary.
It does have at least one major drawback, and that is that it supports wireless N but not at 5Ghz, making it effectively useless for wireless N networks. If you're fine with wireless G, then it's a decent and cheap solution.
Getting Started
If it's not already installed, install wpa_supplicant.
$ sudo apt-get -y install wpasupplicant
We're going to change the adapter mode to "managed" and assign it an essid.
Managed is probably what you want, which says that the adapter is going to be roaming and connecting to different access points. You can find other options on the iwconfig man page.
$ iwconfig wlan0 mode Managed
$ iwconfig wlan0 essid <your clever router name>
Don't remember what your clever router is called? You can easily run a scan using iwlist scan
$ iwlist scan wlan0 Scan completed : Cell 01 - Address: C0:C1:C0:7B:5A:03 ESSID:"Abraham Linksys" Protocol:IEEE 802.11bgn Mode:Master Frequency:2.412 GHz (Channel 1) Encryption key:on Bit Rates:300 Mb/s Extra:rsn_ie=30180100000fac020200000fac04000fac020100000fac020c00 IE: IEEE 802.11i/WPA2 Version 1 Group Cipher : TKIP Pairwise Ciphers (2) : CCMP TKIP Authentication Suites (1) : PSK Quality=100/100 Signal level=100/100
Ah yes, that's what I called it.
Next up we need to provide wpa_supplicant with a password so it can negotiate the encryption. We'll use the command wpa_passphrase for that.
The utility takes two arguments. The first is your essid, and the second is your password. You can omit your password from the command-line and it will prompt you for it.
The utility takes two arguments. The first is your essid, and the second is your password. You can omit your password from the command-line and it will prompt you for it.
$ wpa_passphrase "Abraham Linksys" "password" network={ ssid="Abraham Linksys" #psk="password" psk=ca863518c2996944d5357729cdca5e6e459c46b05cd285e8600babaf3e76cb09 }
Looks good, let's create a conf file with it. Remember to put your actual password in the "password" field.
$ wpa_passphrase "Abraham Linksys" "password" > /etc/wpa.conf
We're almost done. Now we have a way to negotiate our encryption. The only thing left is to edit our /etc/network/intefaces file with the new stuff. Open it up and make the following changes:
$ sudo vim /etc/network/interfaces
auto lo iface lo inet loopback iface eth0 inet dhcp auto wlan0 iface wlan0 inet dhcp
pre-up wpa_supplicant -B -Dwext -iwlan0 -c /etc/wpa.conf
You'll notice the pre-up command there. That says to load wpa_supplicant as a daemon when you bring up this interface. Here's what the various switches for wpa_supplicant do:
-B
Daemonize, meaning run in the background
-Dwext
Use "wext" as the driver. This is the most common one and works with edimax.
-iwlan0
Our interface.
-c /etc/wpa.conf
The config file to use, which we just created.
Save it and then it's time to fire it up and see if we get an IP.
$ sudo ifup wlan0 $ ifconfig wlan0 wlan0 Link encap:Ethernet HWaddr 80:1f:02:7c:84:08 inet addr:10.0.0.7 Bcast:10.0.0.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:426 errors:0 dropped:506 overruns:0 frame:0 TX packets:189 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:67453 (65.8 KiB) TX bytes:35122 (34.2 KiB)
It sometimes takes a few seconds for your adapter to connect to your access point and get an IP address.
And we're good to go. You've broken the cat5 yoke on your raspberry pi. Now you can put it anywhere in your house. Hook it up to monitor the temperature of your fridge, or put it behind your TV and stream wireless HD video from your PC.
And we're good to go. You've broken the cat5 yoke on your raspberry pi. Now you can put it anywhere in your house. Hook it up to monitor the temperature of your fridge, or put it behind your TV and stream wireless HD video from your PC.
Good luck and feel free to comment if you have any questions or problems.