Site icon Audio Recording

Install FFADO & JACK from Source using Subversion in Ubuntu 11.10

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.

Installed programs

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)

dbus mainloop

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).

member of audio group

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

Exit mobile version