This page is a pretty random patchwork of user contributions. Please help filter out generic information, and delete everything that's redundant.

The sorting has changed to "newest version first".

Resolving dependencies on Ubuntu systems

One of the easiest ways to obtain all packages necessary to build a certain package is using the build-dep feature of apt-get:

$ sudo apt-get build-dep package_name

So to build ffado, the best is to get all whats needed with

$ sudo apt-get build-dep libffado

This will install most of what is needed to build libffado.

Ubuntu Studio 10.04 (Lucid Lynx)

In short: exactly the same as Ubuntu Studio 9.04.

But this is the complete step-by-step procedure to build FFADO and JACK from source on a fresh install of Ubuntu Studio 10.04:

Open a terminal window, and don't exit from your home directory. Install the required packages entering:

$ sudo apt-get build-dep libffado
$ sudo apt-get install build-essential libavc1394-dev python-qt4-dev subversion libtool

Now download FFADO sources, and build FFADO using "scons":

$ svn checkout http://subversion.ffado.org/ffado/trunk/libffado ffado-svn
$ cd ffado-svn
$ scons PREFIX=/usr
$ sudo scons install
$ cd ..

Download and build sources for JACK:

$ svn co http://subversion.jackaudio.org/jack/trunk/jack jack
$ cd jack
$ ./autogen.sh --prefix=/usr
$ ./configure --prefix=/usr --with-default-tmpdir=/dev/shm
$ make
$ sudo make install
$ cd ..

Now, enable access for raw1394 using the included app "Ubuntu Studio Controls" (in Administration menu). Check the related option box, and it will automatically add the required udev rule. Reboot to get it working (see Ubuntu Studio Controls).

That's all. Plug and power on your firewire audio device and test it, opening a terminal window again and entering:

$ ffado-dbus-server &

Check for error messages, to be sure your firewire device is detected. And then open ffado-mixer (in the audio applications menu) to complete the test.

Ubuntu 9.10 (Karmic)

In Karmic, you have already FFADO 2.0 RC2 available in the repository. So, you can intall this packaged version with Synaptic, and use the following command to solve the main dependencies to build a newer FFADO version from source:

$ sudo apt-get build-dep libffado

You need to manually add the following packages:

$ sudo apt-get install build-essential libavc1394-dev python-qt4-dev subversion libtool

That's all you need to build FFADO and JACK.

But FFADO and JACK alone are not very useful if you do not install some other audio related software, like Ardour and Qjackctl.

Read Ubuntu Studio's wiki pages (here and here) to know how to convert your "vanilla" Ubuntu Karmic in a Ubuntu Studio install, according to your own interests.

The minimum install you can use to have Ardour working with FFADO is:

$ sudo apt-get install ardour jackd jack-rack qjackctl

And for low latency, install the real-time kernel, too:

$ sudo apt-get install linux-rt linux-headers-rt

and a new entry will be added to your GRUB menu, to let you choose the standard or the RT kernel on boot.

Now you can proceed to download the sources and start building the new FFADO over the existing one. Read carefully AvoidingParallelInstallations. Once you have FFADO succesfully built, download sources for JACK and build it.

And do not forget to check kernel modules and device permissions. By default, you do not have permissions to access /dev/raw1394 in Karmic, to avoid security risks with firewire hard drives.

Ubuntu Studio 9.10

This distro is the easy way to start from. The default install includes FFADO 2.0 RC2, JACK, Ardour and much more...

To build a new FFADO version from source, install the required dependencies (same as above):

$ sudo apt-get build-dep libffado
$ sudo apt-get install build-essential libavc1394-dev python-qt4-dev subversion libtool

Then you can download the sources and build FFADO and JACK in the same way explained for "vanilla" Ubuntu 9.10.

To enable access for raw1394, you can use the included app "Ubuntu Studio Controls". Check the related option box, and it will automatically add the required udev rule. Reboot to get it working (see Ubuntu Studio Controls).

Ubuntu 8.04.

The following section has been taken from the website docs as submitted by nilux on Wed, 06/18/2008 - 11:37. Please help integrating it into our existing docs structure.

Open a terminal and install the appropriate dependencies :

$ sudo apt-get install scons libiec61883-dev libavc1394-dev libxml++2.6-dev liblo0-dev docbook-utils libexpat-dev libdbus-1-dev \
pyqt-tools python-dbus python-qt3

Compiling errors

...can happen when using source-code directly from the version control. Please either contact the devs at ffado-devel at lists.sourceforge.net or on irc at #ffado. Or commit them as bugs by creating a new ticket.

Gutsy (7.10)

Dependency Runtime package Build package
libxml++2 libxml++2.6c2a libxml++2.6-dev
libraw1394 DevelopmentReleases (libraw1394-8) DevelopmentReleases (libraw1394-dev)
libiec61883 libiec61883-0 libiec61883-dev
libavc1394 libavc1394-0 libavc1394-dev
dbus-1 libdbus-1-3 libdbus-1-dev
expat libexpat1 libexpat1-dev
Qt libqt3-mt libqt3-mt-dev
PyQt? python-qt3 pyqt-tools
dbus-python python-dbus
jackd libjack0 libjack-dev
qjackctl qjackctl
scons scons

For your convenience, here's the commands that will install everything you need for a good build environment (don't copy the $):

$ sudo apt-get build-dep libfreebob
$ sudo apt-get install libtool autoconf automake1.7 automake1.8 automake1.9 gcc g++ libc6-dev
$ sudo apt-get install libxml++2.6-dev libdbus-1-dev libexpat1-dev libqt3-mt-dev pyqt-tools python-qt3 python-dbus

Note that by installing the development packages (*-dev), the runtime packages are automatically included.

Ubuntu Gutsy comes with FreeBoB and Jack packaged, but some tuning is needed.

* Either start with Ubuntu Studio's install and select all the audio options during install.

* Or transform a normal gutsy into Ubuntu Studio by adding the packages ubuntustudio-audio and linux-image-rt - you probably also want ubuntustudio-audio-plugins and add your user to the audio group if not already a member.

what do I do now?

If you've not run jack before, and you just want to know your setup works, install the packages qjackctl alsaplayer-jack alsaplayer-text. While jackd is running, launch qjackctl then press its "connect" button and you should see the ins and outs of your device. Find some sort of sound file on your computer and run a command like

alsaplayer -i text -o jack -d "freebob_pcm:dev1p_Output 1L,freebob_pcm:dev1p_Output 2R" my_sound_file.ogg

qjackctl should show the alsaplayer process connected to your device. Put on your headphones and slowly increase the level till you hear something.

In case of trouble

* Check you have the packages libiec61883 libavc1394 libraw1394 libfreebob installed.

* Install the package gscanbus. Switch on (or off then on) your firewire device. Run gscanbus and see if the firewire device is shown.

* Sometimes having other firewire equipment connected at the same time can cause problems.

* Some firewire adapters just don't work very well. VIA and TI are generally good. Problems have been reported with some RICOH adapters and some combined USB/FireWire cards. Run lshw to discover what you have.

* To check your fire wire adapter, use gscanbus to identify another connected firewire device like a hub or a DV camera.

* Check your firewire audio device, ask someone you know with a Mac or Windows PC to help you. You can usually install the device driver and use the relevant port of Audacity to confirm operation without consuming a licence. See http://audacity.sourceforge.net/

* Check the firewire cable by trying another one.

FFADO

If your PC and audio device can work with FreeBoB, it is worth trying FreeBoB first to confirm all is well with the hardware.

FFADO has to be built from source.

If you have followed the steps so far, you now need to install the following packages:

subversion libiec61883-dev libavc1394-dev libxml++2.6-dev liblo0-dev docbook-utils pyqt-tools python-qt-dev python-qt4-dbus python-qt4-dev

Tips

* The standard Gutsy version of qjackctl cannot show jack-midi devices, as provided by Ffado. The latest version can - go to http://qjackctl.sourceforge.net/

* Any kind of abnormal end to FFADO or FreeBoB can leave your firewire device in an unusable state. Cycle the power off and on again to restore healthy operation.

* Most locally built packages have uninstall build targets so you can clean up later - when a newer version is available. For an easy time remembering what is locally built and installed, it is a good idea to make local software under /usr/local/src and keep the directories and contents as long as they are installed.

* ... but there is no such thing as Too Much RAM.

* You might also look around your system for unnecessary cycle eaters such as beagle, famd or any periodic monitoring services.

Feisty

First of all install the UbuntuStudio packages. Then install a realtime-enabled kernel, provided at https://wiki.ubuntu.com/RealTime (UbuntuStudio installs only a low latency kernel for now). Make sure that your user is a member of the audio group.

more on realtime priorities and tuning at http://tapas.affenbande.org/wordpress/?page_id=40.

The following section has been taken from the website docs as submitted by glurgle on Sat, 05/12/2007 - 22:56.. Please help integrating it into our existing docs structure.

  • db2ps (for libraw1394, provided by docbook-utils)
          $ sudo apt-get install subversion libiec61883-0 libiec61883-dev libavc1394-0 libavc1394-dev libxml++2.6c2a libxml++2.6-dev liblo0 liblo0-dev docbook-utils
    
  • libraw1394 >= 1.3.0 (=> SVN)
          $ svn co svn://svn.linux1394.org/libraw1394/trunk libraw1394-svn
          $ cd libraw1394-svn
          $ autoreconf -f -i -s
          $ ./configure --prefix=YOUR_PREFIX
          $ make
          $ sudo make install
    
  • kernel >= 2.6.21 if you want to use the streaming system. The device control parts will work fine with older kernels. Ubuntu Feisty contains a patched 2.6.20 kernel that should work as well.