Airport Express: Linux and Mac
Sunday, April 6th, 2008Knox got an Airport Express for his Mac. For now, we’ll use it as our music streaming solution, though my eventual goal is to get something like a Squeezebox or Sonos.
Setting up the AEX to work with the Mac was mostly simple, with one caveat: to get onto our existing wireless network, we had to provide the hex version of our 64-bit ASCII WEP key as the 40-bit WEP key the Mac dialog was asking for.
For Linux, it’s slightly more involved. I found out about raop_play, a simplistic music client that, most importantly, includes a driver such that ALSA applications can stream music to a virtual audio card which actually gets streamed to the AEX. Pretty nifty.
I followed Nils Winkler’s instructions for setting up raop_play. Here’s the additional stuff I had to do to get this to work:
Before compiling, install the following packages
libsamplerate-devel fltk fltk-devel libid3tag-devel fltk-fluidDelete the line
#include <linux/config.h>indrivers/alsa_raoppcm.cCreate Nils’s suggested scripts:
load_airport_express_driver,start_airport_express, andstop_airport_express. Modifystart_airport_expressto have the IP address of the AEX.
At this point, the basic infrastructure was working:
Run
start_airport_expressVerify the sound “card” is installed:
cat /proc/asound/cardsPlay some music:
sudo mplayer -ao alsa:device=hw=1.0 some_song.mp3
Unfortunately, I couldn’t run as non-root. My devices on /dev/snd look like this:
drwxr-xr-x 2 root root 180 2008-04-06 07:44 .
drwxr-xr-x 14 root root 5200 2008-04-06 07:44 ..
crw-rw----+ 1 root root 116, 6 2008-04-06 07:42 controlC0
crw-rw---- 1 root root 116, 8 2008-04-06 07:44 controlC1
crw-rw----+ 1 root root 116, 5 2008-04-06 07:42 pcmC0D0c
crw-rw----+ 1 root root 116, 4 2008-04-06 07:42 pcmC0D0p
crw-rw---- 1 root root 116, 7 2008-04-06 07:44 pcmC1D0p
crw-rw----+ 1 root root 116, 3 2008-04-06 07:42 seq
crw-rw----+ 1 root root 116, 2 2008-04-06 07:42 timer
The C1 entries are used raop_play, but you’ll notice they don’t have a + in the permissions column. Why is that? What does the + mean? Tell me if you know!
On a hunch, though, I chowned controlC1 and pcmC1d0p to my user group—and I could play as non-root.
Well, mostly. I can stream music from applications that let me select the ALSA device, such as mplayer and xmss. Unfortunately, I don’t see how to configure rhythmbox to use raop_player. (Tell me if you know!)
