Installation Guide - Compiling Beta 6 for Ubuntu 8.04

Please read the generic installation documentation at http://subversion.ffado.org/wiki/InstallingFfadoFromSource.

Below are only those aspects that are specific to Ubuntu 8.04.

Open a terminal and install the appropriate dependencies :
$ sudo apt-get install scons libiec61883-0 libiec61883-dev libavc1394-0 libavc1394-dev libxml++2.6c2a libxml++2.6-dev liblo0 liblo0-dev docbook-utils libexpat-dev libdbus-1-dev pyqt-tools python-dbus python-qt3

Compiling errors
FFADO should compile well, but the mixer might not : if you get a message telling that 'pyuic', and python-modules 'dbus' and 'qt' could not be found, here is how you can work around this issue :

Open the SConstruct file at the root of the FFADO sources directory with your favorite text editor. Look for this section :
# PyQT checks
if conf.CheckForApp( "which pyuic" ) and conf.CheckForPyModule( 'dbus' ) and conf.CheckForPyModule( 'qt' ):
env['PYUIC'] = True

if conf.CheckForApp( "xdg-desktop-menu --help" ):
env['XDG_TOOLS'] = True
else:
print """
I couldn't find the program 'xdg-desktop-menu'. Together with xdg-icon-resource
this is needed to add the fancy entry to your menu. But the mixer will be installed, you can start it by executing "ffadomixer".
"""

else:
print """
I couldn't find all the prerequisites ('pyuic' and the python-modules 'dbus' and
'qt', the packages could be named like dbus-python and PyQt) to build the mixer.
Therefor the mixer won't get installed.
"""

and replace it with :
env['PYUIC'] = True

Be sure to remove any spaces or indents at the beginning of this line, or the scons script will be broken.

Building JACK
To do so, you first need to install the prerequisites :
$ sudo apt-get install subversion libtool automake

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

errata; additional steps

I followed this procedure on UbuntuStudio 8.04, and jackctl still wouldn't start jackd.

1) It couldn't find jack_firewire.so . Solution: run `sudo ldconfig`.
2) It complained of permission problems. Could not create directory /dev/shm//jack-1000 directory
Solution 1: Recompile jack, removing trailing '/' from ./autogen.sh command line.
3) Still complained, but now pathname is correct.
Solution: sudo chmod go+w /dev/shm
4) Now the driver loads, and appears to discover my device (focusrite saffire pro 26), but stops almost immediately:

loading driver ..
39972420321: (ffado.cpp)[ 99] ffado_streaming_init: libffado 1.999.36- built Oct 10 2008 15:43:31
00:43:21.140 Server configuration saved to "/home/rtg/.jackdrc".
00:43:21.142 Statistics reset.
00:43:21.537 Client activated.
00:43:21.564 JACK connection graph change.
00:43:44.609 JACK connection graph change.
libiec61883 warning: Established connection on channel 0.
You may need to manually set the channel on the receiving node.
libiec61883 warning: Established connection on channel 1.
You may need to manually set the channel on the transmitting node.
00:43:44.771 JACK connection change.
00:43:48.493 XRUN callback (1).
00:43:54.334 XRUN callback (2).
firewire ERR: wait status < 0! (= -1)
DRIVER NT: could not run driver cycle

jackd name for ffado driver

I spent several hours fumbling around trying to figure out why jackd didn't recognize -d ffado before I realized that it calls ffado "firewire".

It might be reasonable to throw in a final line explaining that the software can now be run by typing

jackd -d firewire

Thanks for all the hard work!

PREFIX=/usr?

When I built ffado I used the command:
scons PREFIX=/usr
which worked for me... is that not required?

Dependencies

I think it would be a good idea to put g++ in the first step there. I realize many would already have it but it is very much needed on a clean install of ubuntu studio.

Jamie

Agreed

Yes, please add "build-essential" to the list of deps.