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.
sudo apt-get install alsa-utils alsa-oss libasound2 libasound2-plugins alsamixer
sudo apt-get install pulseaudio pulseaudio-utils
Configure PulseAudio to run as a service, so that local logon is not required:
sudo nano /etc/default/pulseaudio
Add/change the following two settings in /etc/default/pulseaudio:
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:
Test that playback is working with the following command:
sudo aplay /usr/share/sounds/alsa/Front_Center.wav
sudo apt-get install git-core
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
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
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:
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
iface wlan0 inet manual
iface default inet dhcp
Issue the following command to bring up the WiFi adapter:
Check to see if you’ve connected and received an IP address with the following command:
Use wavemon and iwconfig to view information about your WiFi connection:
If everything is correct, restart your computer, and make sure that the WiFi network started automatically.