Installation Guide - Compiling RC 1 for Arch Linux

FFADO needs a few libraries along with D-Bus and PyQt for the mixer/controlling part. These are included as dependencies in the PKGBUILD, so they should be installed automatically when running makepkg with the -s switch.

JACK package from the extra repository is not compiled with FFADO support, so you'll have to recompile it as well. You can choose either the 0.115.6 or build from SVN.

Obviously, you also need kernel drivers for your IEEE 1394 controller along with the raw1394 driver and the ALSA sequencer driver. These are compiled in stock kernels by default, but in case you're compiling your own, be sure to have these options set:
CONFIG_IEEE1394=m
CONFIG_IEEE1394_OHCI1394=m
CONFIG_IEEE1394_RAWIO=m
CONFIG_SOUND=m
CONFIG_SND=m
CONFIG_SND_SEQUENCER=m

Also, beware of conflicts between this "old" IEEE 1394 kernel stack (ieee1394, ohci1394, raw1394) and the "new" one (firewire_core, firewire_ohci). If you have both compiled, don't load them both at the same time. (Note: Although libraw1394 2.0.0 supports the new stack, I wasn't able to get libffado working with it -- libiec61883 was complaining about something. To prevent the new stack from loading, update the MOD_BLACKLIST in your /etc/rc.conf, for example like this: MOD_BLACKLIST=(firewire-ohci firewire-core). That way, only the old IEEE 1394 kernel stack will ever be loaded.)

If you've never compiled a package in Arch Linux before, you might want to check out some info about the Arch Build System and the makepkg utility along with the corresponding man pages before carrying on.

  1. Build and install libffado:
    mkdir -p /var/abs/local/libffado
    cd /var/abs/local/libffado
    wget -O PKGBUILD http://ffado.org/files/libffado.PKGBUILD.txt
    makepkg -is
  2. Remove your current installation of JACK:
    sudo pacman -Rd jack-audio-connection-kit
  3. Build and install either the latest JACK release:
    mkdir -p /var/abs/local/jack-audio-connection-kit
    cd /var/abs/local/jack-audio-connection-kit
    wget -O PKGBUILD http://ffado.org/files/jack.PKGBUILD.txt
    makepkg -is

    or a recent development version:
    mkdir -p /var/abs/local/jack-audio-connection-kit-svn
    cd /var/abs/local/jack-audio-connection-kit-svn
    wget -O PKGBUILD http://ffado.org/files/jack-svn.PKGBUILD.txt
    makepkg -is

If everything went fine, you should be able to run JACK with FFADO now:
jack -R -d firewire

If you're not and you have no idea what's wrong, have a look at the Reporting problems article and post the output on the ffado-users mailing list.

Please note, that the PKGBUILD for libffado enables compiler optimizations and disables building of a debug build. If you'd need any assistance from FFADO developers, build a non-optimized debug build of libffado first and tell makepkg to leave all the debug symbols in place. That means:

  • edit the PKGBUILD for libffado and replace options=('!libtool' 'strip') with options=('!libtool' '!strip'),
  • replace DEBUG=no ENABLE_OPTIMIZATIONS=yes with DEBUG=yes ENABLE_OPTIMIZATIONS=no,
  • save and rebuild the package.
AttachmentSize
jack.PKGBUILD.txt595 bytes
jack-svn.PKGBUILD.txt759 bytes
libffado.PKGBUILD.txt942 bytes

Comments

Hi,
I think it might be nice to add 'x86_64' to the arch variable of the pkgbuilds so that everybody on amd64 doesn't have to fix that :)

Also, I think it should be
./autogen.sh
./configure --prefix=/usr --enable-optimization-by-cpu --enable-optimize \
--enable-timestamps --enable-posix-shm --disable-oss
instead of
./autogen.sh --prefix=/usr --enable-optimization-by-cpu --enable-optimize \
--enable-timestamps --enable-posix-shm --disable-oss
otherwise it wouldn't work for me.

Hey, thanks for reminding me both to add the x86_64 flag and to upload the updated JACK PKGBUILD (I've noticed autogen is not calling configure anymore but forgot to upload a new PKGBUILD). Hopefully it's working now.