The steps in this tutorial are designed to allow an old laptop with Ubuntu server – without any desktop environment installed – to output audio through the headphone jack, while acting as an AirPlay receiver for iPhones, iPads, and Macs.
The steps in this tutorial work with newer versions of Ubuntu server, all the way back to the 10.04.4 LTS release. The 10.04.4 release may be a good choice if your laptop is very old, since it’s lightweight and runs well on older hardware with little RAM. However, be aware that support for this version will be dropped in 2015.
You don’t need to select any additional packages during the installation, such as server or desktop – all the following commands work no matter how you configured your installation.
You’ll need to have an Ethernet cable connected to the laptop during the initial installation steps. If you would like to use the laptop with WiFi once the initial configuration is done, there are additional steps at the end of this tutorial describing how to enable the WiFi adapter to automatically connect to your WiFi network upon startup.
First, download a server version of Ubuntu from the Ubuntu website.
Enable the Audio Hardware
To get audio working, the Alsa libraries have to be installed, and then PulseAudio has to be installed and configured.
Alsa:
sudo apt-get install alsa-utils alsa-oss libasound2 libasound2-plugins alsamixer
PulseAudio:
sudo apt-get install pulseaudio pulseaudio-utils
Configure PulseAudio to run as a service, so that local logon is not required:
Edit /etc/default/pulseaudio:
sudo nano /etc/default/pulseaudio
Add/change the following two settings in /etc/default/pulseaudio:
PULSEAUDIO_SYSTEM_START=1 DISALLOW_MODULE_LOADING=0
Start the PulseAudio service (or reboot):
sudo service pulseaudio start
Run the following command to set the volume levels for the sound devices in the system:
alsamixer
Test that playback is working with the following command:
sudo aplay /usr/share/sounds/alsa/Front_Center.wav
Install ShairPort
Install git:
sudo apt-get install git-core
OR
sudo apt-get install git
Install the perl libraries in order to build perl SDP extensions:
sudo apt-get install avahi-utils libmodule-build-perl libio-socket-inet6-perl libao-dev libssl-dev libcrypt-openssl-rsa-perl libwww-perl pkg-config
Use git to clone the perl-net-sdp project:
git clone https://github.com/njh/perl-net-sdp.git perl-net-sdp perl perl-net-sdp/Build.PL sudo perl-net-sdp/Build sudo perl-net-sdp/Build test sudo perl-net-sdp/Build install
Use git to clone the Shairport project:
git clone https://github.com/hendrikw82/shairport.git cd shairport sudo make install sudo cp shairport.init.sample /etc/init.d/shairport sudo chmod a+x /etc/init.d/shairport sudo update-rc.d shairport defaults
Edit the /etc/init.d/shairport file with the name you want your AirPlay receiver to have:
sudo nano /etc/init.d/shairport
Find the following line in /etc/init.d/shairport and add -a name:
DAEMON_ARGS=”-w $PIDFILE -a AirPlayName”
Start the Shairport service with the following command (or simply restart):
sudo service shairport start
Check your AirPlay options on your iPhone, iPad, or Mac. You should see your laptop listed!
If you have any trouble getting the sound to work, check the Ubuntu documentation pages here (older versions) and here (newer versions).
OPTIONAL: WiFI network configuration for Ubuntu server
These steps configure your laptop to connect to your WiFi network at boot, so that you don’t have to have an Ethernet cable connected for AirPlay functionality.
You will need to have drivers installed for your WiFi card. They may already be included in Ubuntu, but if necessary, more information is available in the Ubuntu documentation.
Install wifi tools, wavemon, and the wpa_supplicant package:
sudo apt-get install wpasupplicant wireless-tools wavemon
Create the wpa_supplicant.conf file containing a hashed version of your WiFi network password:
sudo wpa_passphrase <NetworkNameSSID> <Password> >> /etc/wpa_supplicant/wpa_supplicant.conf
Edit the /etc/wpa_supplicant/wpa_supplicant.conf file:
sudo nano /etc/wpa_supplicant/wpa_supplicant.conf
It should look something like the following – the values below are for a WPA2 network. Check the wpa_supplicant.conf documentation for connections to other kinds of WiFi networks:
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev network={ ssid="YourSSID" scan_ssid=1 proto=WPA2 key_mgmt=WPA-PSK pairwise=CCMP TKIP group=CCMP TKIP priority=5 psk=ThisIsTheHashedPasswordGeneratedEarlier }
Edit /etc/network/interfaces with values for your WiFi adapter. The example below uses wlan0 – if you have more than one WiFi adapter, you may have to specify wlan1 or wlan2 instead of wlan0.
# The wireless network interface auto wlan0 iface wlan0 inet manual wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf iface default inet dhcp
Issue the following command to bring up the WiFi adapter:
ifup wlan0
Check to see if you’ve connected and received an IP address with the following command:
ifconfig
Use wavemon and iwconfig to view information about your WiFi connection:
wavemon iwconfig
If everything is correct, restart your computer, and make sure that the WiFi network started automatically.
Hi,
I followed every step of your Tutorial closely, but I can’t get it to work. The Shairport does not show up in my iOs Devices 🙁
Oh no! Try running the Shairport.pl script directly instead of as a service, and see if it shows up. First, make sure the shairport service is not running with this command:
service shairport stop
Next, cd to the directory where you downloaded Shairport. This is most likely in your home directory in the shairport folder. Run this command:
./shairport.pl -a NameOfDevice
Does your laptop show up then on your iOS devices?
Hey,
I followed along with everything but couldn’t get it working. it shows up and when I select it, it will connect but disconnects when I click play
please help,
Chris