FFADO is the Linux Free Firewire audio drivers. This is required when you like to use a Firewire audio interface in Linux such as Saffire Pro 40. Jack is an audio sound server in Linux that would be useful for low latency recording. This tutorial was written for Ubuntu users that would like to install and compile the latest version of FFADO and JACK using Ubuntu 11.10. This tutorial does not include steps on how to get your Firewire audio interface working. It will be covered hopefully in the coming tutorials.
One of the advantages of installing directly from the source (to get the latest FFADO version) is to test if it can now hopefully support your Firewire audio interface (which is not supported in the older FFADO versions). Be warned though that installing from the latest source is not a stable release. So if you have incompatibility issues with your devices or other software, you can revert to an older version.
The Complete Steps
Step1.) Make sure no other FFADO installations or JACK in your system. You should avoid multiple installations as it can result to serious problems. Simply go to Ubuntu Software center and type each of the following items:
a.) libffado
b.) ffado-mixer
c.) jackd
If you see a green check mark on the item, it means they are installed. Simply click the “Remove” button to uninstall. If it shows warnings of other dependent programs, remove them as well.
Step2.) Make sure your Firewire audio interface is turned off (not powered) but connected to your computer via the Firewire port.
Step3.) Install all the required dependencies. Search each one of them in the Ubuntu software center; make sure they are checked (means installed). Install them if they are not checked.
a.) gcc
b.) g++
c.) pkg-config
d.) libraw1394-11
e.) libraw1394-dev
f.) libconfig++8
g.) libconfig++8-dev
h.) libxml++2.6-2
i.) libxml++2.6-dev
j.) libiec61883-0
k.) libiec61883-dev
l.) python
m.) scons
n.) subversion
o.) autoconf
p.) automake
q.) make
r.) libtool
s.) pyqt4-dev-tools
t.) dbus-1-dbg
u.) python-qt4-dbus
v.) dbus.mainloop (7 of them, see screenshot below)
Step4.) Press Control-Alt-T to launch the Terminal. Go to your desktop by issuing the command ($ is your prompt):
$ cd Desktop
And then make sure you are now in your Desktop by issuing the command:
$ pwd
It should give a result like:
/home/emerson/Desktop
Step5.) Now type the subversion command to download the latest FFADO source code from the trunk:
$ svn checkout http://subversion.ffado.org/ffado/trunk/libffado ffado-svn
The above commands would create a new folder called ffado-svn in your Desktop that will contain the downloaded files.
IMPORTANT: To easily uninstall ffado installed using this method, do not delete this folder in your desktop until your firewire interface is fully working (you can record and play).
Step6.) Now go inside the ffado-svn folder by typing this command:
$ cd ffado-svn
Step7.) Build FFADO:
$ scons
The building process would check for dependencies. There are times when it reports for missing dependencies and it fails to build. You need to install it (from Ubuntu software center). Before running scons command again (after you have installed missing dependencies), issue this command first in the terminal.
$ rm -Rf .sconsign.dblite cache
Then run scons until all dependencies are satisfied.
Step8.) Install and Compile FFADO
$ sudo scons install
You are required to enter your Ubuntu password. After installation, type:
$ exit
Step9.) Install JACK for FFADO. First make sure you are in your Ubuntu desktop:
$ pwd
/home/emerson/Desktop
Then enter this command:
$ svn co http://subversion.jackaudio.org/jack/trunk/jack jack
Step10.) Go to downloaded Jack folder and configure it. Run the following commands, ignore all errors:
$ cd jack
$ ./autogen.sh
$ ./configure --prefix=/usr/ --with-default-tmpdir=/dev/shm
Step11.) Login as root:
$ sudo -s -H
IMPORTANT: Do not delete the jack folder (in your desktop) created during the installation so that you can easily uninstall this jack version when its not working.
Step12.) Make and install JACK:
$ make install
Step13.) Update cache:
$ ldconfig
Step14.) Power up your Firewire audio interface (turn it on). Enter the following command:
$ ls -l /dev/fw*
You need to check if your Firewire audio interface is detected in your system. You should see something like:
crw------- 1 root root 251, 0 2012-03-27 12:32 /dev/fw0
crw-rw---- 1 root audio 251, 1 2012-03-27 12:32 /dev/fw1
The /dev/fw1 is your audio interface. If you cannot see it, restart your system and run the above command again.
In some instances, the entire device is owned by root such as this one:
crw------- 1 root root 251, 0 2012-03-27 12:12 /dev/fw0
crw------- 1 root root 251, 1 2012-03-27 12:12 /dev/fw1
You need to make sure that your firewire audio interface would also be owned by “audio” group. Download this script to your Desktop (right click, then save link as). And save it as:
debian_60-ffado.rules
And then login as root and copy that script to /etc/udev/rules.d:
$ cp /home/emerson/Desktop/debian_60-ffado.rules /etc/udev/rules.d
The above copy command assumes you have downloaded the script to the desktop before copying to the rules.d directory. Restart Ubuntu with your Firewire interface on. Run again the command:
$ ls -l /dev/fw*
You should see dev/fw1 is now owned by audio group:
crw-rw---- 1 root audio 251, 1 2012-03-27 12:32 /dev/fw1
Step15.) Finally, check if your Firewire audio interface brand and model and has been recognized:
$ grep . /sys/bus/firewire/devices/fw*/*_name
You should see something like:
/sys/bus/firewire/devices/fw0/model_name:Juju
/sys/bus/firewire/devices/fw0/vendor_name:Linux Firewire
/sys/bus/firewire/devices/fw1.0/model_name:SAFFIRE_PRO_40
/sys/bus/firewire/devices/fw1/model_name:SAFFIRE_PRO_40
/sys/bus/firewire/devices/fw1/vendor_name:Focusrite
In the above example, it shows a Saffire Pro 40 audio interface connected in Ubuntu 11.10 and it was recognized by the system.
Step16.) JACK requires that your username belongs to audio group. You can check that by running this command:
$ id
If you cannot find your name associated with “audio” group, login as root and run this command:
$ usermod -a -G audio USERNAME
Replace USERNAME with your own Ubuntu username. You can get your username by running this command:
$ grep x:1000 /etc/passwd | cut -d: -f1
Finally restart your system and run id command again, you should be able to see your username now belonging to audio group e.g (in #29).
You are now ready to test your FFADO and JACK installation with your Firewire audio interface in Linux.
Uninstallation Procedures of FFADO and JACK
When you decide that the package is not compatible or not working as expected; you can easily uninstall them. Uninstallation is very important before you proceed to install another FFADO or JACK version. Multiple copies of the software in your system would prevent it from working properly. The procedure below is very important for removing FFADO and JACK installed from the source because it cannot be removed with Synaptic package manager.
Refer to the following steps below:
To uninstall FFADO:
1.) Go to your Desktop where the FFADO source code files are located, double check that you are in your Desktop:
$ pwd
/home/emerson/Desktop
2.) Go inside your FFADO folder:
$ cd ffado-svn
3.) Run the uninstallation command:
$ sudo scons -c install
Enter your Ubuntu password. FFADO should be successfully uninstalled after this.
To uninstall JACK:
1.) In your desktop where JACK folder has been downloaded, go inside the folder:
$ cd jack
2.) Run the uninstallation command below:
$ make uninstall
Enter your Ubuntu password to authenticate. Then the jack installation would then be removed from your system.
3.) You can then remove other multiple copies that can be detected in the Synaptic manager. This is optional but it’s recommended that you double check.
4.) When all multiple copies are removed, proceed to install another FFADO or JACK version.
Content last updated on July 23, 2012