/ Uncategorized

Get Echo Audiofire 2 running in Linux

There exists a list.

A list of 25 people worldwide who successfully managed to run their Firewire audio card on Linux.

Do you want to be one of these people? Then read on...

Most importantly you will need Jack Server.
You should also know that Jack Server on Yast is broken.

Since you need to compile it against FFADO there is no sense in installing the binary package of Jack Server anyway. FFADO gives us access to our firewire device. So let us start by installing FFADO and give dependency hell a warm and healthy welcome.

1.) Load the "raw1394" kernel module. Do this with sudo modprobe raw1394 and if you get a error message use insmode to load the module at runtime.

2.) Install FFADO with its numerous dependencies, these libraries here should be at least the version listed:

libxml++ 2.6.13
libraw1394 1.3.0
libiec61883 1.1.0
Qt 4.0
SIP 4.7.0
PyQt (match version to Qt)

3.) Switch to a realtime Kernel or make your system using shared memory via tmpfs.
To achieve the latter simply put this line into your /etc/fstab

tmpfs   /tmp    tmpfs   defaults,size=128m 0 0

Also set CLEAR_TMP_DIRS_AT_BOOTUP in /etc/sysconfig to yes and reboot. Then you can set it back to no again.

4.) Install the Jack Audio Server, do this from source in order to let it compile with FFADO's Firewire Support build in. Also install qjackctl, the graphical front-end.

5.) Finalize Security and give your non-admin users read and write access with chmod 666 to /dev/raw1394. You might also want to add the line KERNEL=="raw1394", GROUP="disk" to the file /lib/udev/rules.d/50-udev-default.rules or rather 40-permissions.rules. Finally add your user to the group audio, video and disk at /etc/group.

6.) Install a Mediaplayer that can use Jack Audio, for e.g. VLC, then start your audio or videofile, set Jack as default Audio output at VLC, and start qjackctl, go to Connections and manually route Outputs of VLC to your Audiofire inputs, for e.g. vlc_20291 -out_2 into system/playback_1. With VLC I have to do this with every single file, which is a real pain.

Update 03/10/10

After compiling lots of different media players I recommend Aqualung that comes with Jack Support and compiles beautifully compared to XMMS2 front-ends, which are a mess to compile at the present state. For Video I highly recommend Mplayer, which is not nearly as feature rich as VLC, but integrates a lot nicer with Jack Audio than VLC. Most important both Mplayer and Aqualung automatically route their Outputs in the Jack Audio Server. This is quite a comfortable solution and if you add qjackctl to one of Linux' numerous autostart script you basically have Windows7 / MacOSX Feeling where you can click and go.

7.) Fire up ffado-mixer to add some dBgain via the various faders.

8.) If you get dropout issues make sure you use Jack at Realtime under Configurations of Qjackctl. Set Prio to 70. Also go to /etc/security/limits.conf , add and play with these values until the dropouts seize to exist.

@audio -rtprio 99
@audio memlock unlimited
@audio -nice -10

I leave it up to you to decide if all this is worth the effort. It's Linux and it will cost you a lot of time. Gentoo and their  concept of automatically resolving dependencies via emerge isn't easy to handle either. SuSE still cannot deliver a flawless package manager without the possibility of breaking your whole system. I heard that Ubuntu with PPA is a good choice, but for me the fact that setting up a standard audio interface card needs more than 2 days of hard work just won't do anymore.

Get Echo Audiofire 2 running in Linux
Share this