Dokumentation/ffado und jack-FireWire Audiophile $


Da ich gelegentlich gerne Musik aufnehme, habe ich mir vor einigen Jahren eine M-Audio FireWire Audiophile gekauft. Wie es für solche Produkte üblich ist, liefert der Hersteller nur Treiber für Windows und MacOS. Ich habe die Soundkarte deshalb lange nicht mit Linux zum laufen gebracht. Doch seit der Version 2.2.0 von libffado haben die Entwickler einen Support für meine Soundkarte eingebaut. Ich habe mich gleich daran gemacht meine Audiophile einzurichten.

Abbildung: M-Audio FireWire Audiophile

Über die Paketverwaltung bekomme ich eine zu alte Version der libffado.

$ apt-cache show libffado2
Package: libffado2
Priority: optional
Section: libs
Installed-Size: 5488
Maintainer: Ubuntu Developers
Original-Maintainer: Debian Multimedia Maintainers
Architecture: amd64
Source: libffado
Version: 2.1.0+svn2240-1ubuntu3
.....

Deshalb muss ich die Aktuelle Version aus dem Quellcode installieren.
http://www.ffado.org/?q=node/5
libffado wird mit scons gebaut und deshalb muss dieses Paket installiert sein. Selbstverständlich muss auch build-essential installiert sein.

apt-get install scons
apt-get install build-essential

Da ffado jack verwendet installiere ich diese Pakete auch gleich.

apt-get install jackd2-firewire
apt-get install qjackctl

jetzt die libffado runter laden und entpacken. Ich habe die Version 2.2.1 installiert.

http://www.ffado.org/files/libffado-2.2.1.tgz
tar xvzf libffado-2.2.1.tgz

Bei meinem ersten Versuch bin ich so vorgegangen, dass ich den Buildprozess angestoßen habe und dann nach und nach alle Abhängigkeiten installiert habe. Es kommt manchmal zu einem Fehler, weil noch veraltete Informationen im Cache stehen, deshalb ist es besser diesen bei jedem weiteren Versuch zu löschen.

cd libffado-2.2.1/
rm -rf cache/
rm .sconsign.dblite
scons -c / install

Auf meinem System (Linuxmint 17.2) habe ich diese Abhängigen Pakete installiert. Manche sind über die Paketverwaltung verfügbar, manche musste ich über den Quellcode installieren.

https://launchpad.net/ubuntu/+archive/primary/+files/libraw1394_2.1.1.orig.tar.gz
cd libraw1394-2.1.1/
./configure
make
make install

apt-get install libconfig++
apt-get install libxml++

https://launchpad.net/ubuntu/+archive/primary/+files/libiec61883_1.2.0.orig.tar.gz
cd libiec61883-1.2.0/
./configure
make
make install

apt-get install libdbus-1-3
apt-get install libdbus-c++-1-0
apt-get install libdbus-c++-dev
apt-get install pyqt4-dev-tools
apt-get install alsa
apt-get install dbus-1-dbg
apt-get install libdbus-glib-1-dev
apt-get install exuberant-ctags
apt-get install doxygen

Sobald alle Abhängigkeiten erfüllt sind lässt sich libffado bauen. Danach kannst du die verfügbaren ffado Tools sehen.

$ ffado <tab><tab>

ffado-bridgeco-downloader ffado-set-nickname
ffado-dbus-server ffado-test
ffado-debug ffado-test-isorecv
ffado-diag ffado-test-isoxmit
ffado-dice-firmware ffado-test-streaming
ffado-fireworks-downloader ffado-test-streaming-ipc
ffado-mixer ffado-test-streaming-ipcclient

Das Device sollte mit diesem Befehl erkannt werden:
$ ffado-test ListDevices

Wenn am Device alle LEDs blinken, ist die Firmware noch nicht geladen. Es gibt auch eine Möglichkeit diese mit ffado zu laden, dies war bei mir jedoch nicht nötig. Einfach Linux booten während das Gerät eingeschaltet ist, dann wird beim hochfahren des Systems automatisch die Firmware geladen und das Gerät ist betriebsbereit.

War bei mir nicht erforderlich. Ich habe diesen Befehl deshalb noch nie getestet:
$ ffado-bridgeco-downloader <magicnumber> fwap.bcd

Die Magicnumber siehst du mit
$ ffado-test ListDevices

Die fwap.bcd steht auf der ffado Webseite zum Download bereit.

Wenn das Gerät erkannt wird, kannst du den Mixer starten.

$ ffado-mixer


Der Mixer ist auch im Startmenü unter "Multimedia" eingetragen.
Manchmal zeigt der symbolische Link auf eine falsche libffado. Der Link muss auf libffado.so.2.2.1 zeigen. Ggf. Ist dann noch ein Eintrag in ld.so.conf notwendig.

find / -name libffado.so*
ln -s /usr/local/lib/libffado.so.2.2.1 /usr/local/lib/libffado.so
/etc/ld.so.conf
ldconfig

Wenn der Mixer gestartet ist anschließend noch jack starten. Auch dieser ist im Startmenü unter "Multimedia" oder

$ qjackctl &


Hier müssen jetzt noch Einstellungen vorgenommen werden. Damit auch Pulseaudio Anwendungen über das Device laufen muss noch folgendes Modul installiert werden.

$ apt-get install pulseaudio-module-jack

Anschließend auf <Einstellungen> klicken...
Den Treiber auf "firewire" stellen. Frames/Periode habe ich auf 256 gestellt. Je niedriger der Wert desto niedriger die Latenz. Wird der Wert jedoch zu niedrig eingestellt kann es zu "knacken" kommen. Dann den Wert wieder erhöhen. Im Tab "Optionen" jetzt das Modul eintragen.

Skript nach Start ausführen:
pacmd load-module module-jack-source channels=2; pacmd load-module module-jack-sink channels=2;

Skript nach dem Herunterfahren ausführen:
pulseaudio -k


Anschließend den Startbutton drücken. Wenn alles richtig gemacht wurde sollte der Jackserver starten. Jetzt im ffado-mixer unter dem Tab "Mix" einen Eingang aktivieren. Mit dem mplayer kann ich den Sound direkt über jack ausgeben.

$ mplayer -ao jack <musikdatei>


Damit der pulseaudio sound auch ausgegeben wird muss im Lautstärkeregler noch der Haken bei "Jack sink" gesetzt werden.