Version 8 (modified by josep v., 14 years ago)
--

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

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

However since there is no libffado in the repository yet, this won't work for FFADO. But applying it to libfreebob can already help a lot:

$ sudo apt-get build-dep libfreebob

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

acspike noted on Thu, 07/03/2008 - 22:32 that you need to add "build-essential" to the list of dependencies.

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.

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-0 libiec61883-dev libavc1394-0 libavc1394-dev libxml++2.6c2a libxml++2.6-dev liblo0 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.

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

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

Ubuntu 9.10 (Karmic)

In Karmic, you have already FFADO 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. Now you can proceed to download the sources and start builing the new FFADO over the existing one. Read carefully AvoidingParallelInstallations. Once you have FFADO succesfully built, download fonts for JACK and build it.