Motu Ultralite e Linux

In questo post faccio un uso comune delle Q, perchè magari questo post può essere utile a qualcuno.

UPDATE: in questi giorni (13/12/2007) possiamo prendere l’ultima versione SVN; Inoltre, aggiunte alcune impostazioni per far girare il tutto non da utente root.

Siccome la MOTU è stronza e non vuole collaborare con il mondo open, per gli utenti linux è un casino cercare di utilizzare questa scheda.
Fortunatamente esiste un progetto, ffado (ex freebob), che a forza di reverse engineering cerca di far funzionare qualcosina.
Nota: questi driver sono instabilissimi, mi crashano il 60% delle volte inspiegabilmente non supportano per ora la UltraLite, tuttavia per altre interfacce quali la MkII, MkI, Traveler sembra funzionare.

Orbene: muniamoci di tanta pazienza e attenzione, visto che è un processo un po’ complesso.

L’installazione è testata su Ubuntu Gutsy 7.10, sulle altre potrebbe benissimo non andare una ceppa.
Inoltre è tutto software completamente instabile, provenendo dai vari repository SVN (di sviluppo).
Potrebbero benissimo non compilare da un giorno all’altro.

Innanzitutto installiamo i seguenti pacchetti:

sudo apt-get install scons libiec61883-dev libavc1394-dev liblo0-dev libxml++2.6-dev libasound2-dev

Poi posizioniamoci in una cartella, tipo ~/drivermotu/ e diamo:

svn co svn://svn.linux1394.org/libraw1394/trunk/ libraw1394
cd libraw1394
./autogen
./configure --prefix=/usr
make
sudo make install

Poi installiamo i drivers veri e propri, la libreria libffado:

cd ..
svn co http://subversion.ffado.org/ffado/trunk ./

Nel repository al momento c’è la versione 716, che però non si compila correttamente. Quindi preleviamo la versione 685, che sembra compilarsi hanno corretto i problemi di compilazione, siamo alla 758 e si compila correttamente.

cd libffado
scons ENABLE_MOTU=yes PREFIX=/usr
sudo scons install

Può darsi che dia un errorino, che al momento non ricordo, ma ignoriamolo bellamente.

Ora impostiamo i permessi per utilizzare il modulo raw1394, in modo da non essere root per farla funzionare:

sudo gedit /etc/udev/rules.d/40-permissions.rules

cerchiamo la riga contenente raw1394, e modifichiamola in:

KERNEL=="raw1394",                      GROUP="video"

Carichiamo i moduli per la firewire:

sudo modprobe ieee1394 raw1394

Verifichiamo che funzioni dando:

tests/test-ffado Discover --verbose=6

Dovrebbe citare, nell’output, la nostra Motu Ultralite!

Ora preleviamo la versione SVN di Jack, in modo da poter utilizzare i driver ffado.

cd..
svn co http://subversion.jackaudio.org/jack/trunk/jack jack
cd jack
./autogen.sh
./configure --prefix=/usr
make
sudo make install

Già che ci siamo, installiamo anche qjackctl, un’interfaccia grafica per jack, che è abbastanza comoda. Anche qui dobbiamo prendere la versione da SVN, perchè altrimenti non possiamo utilizzare il driver firewire.

sudo apt-get install libqt4-dev
cd ..
cvs -d:pserver:anonymous@qjackctl.cvs.sourceforge.net:/cvsroot/qjackctl login
cvs -z3 -d:pserver:anonymous@qjackctl.cvs.sourceforge.net:/cvsroot/qjackctl co -P qjackctl
cd qjackctl
make -f Makefile.cvs
./configure --prefix=/usr
make
sudo make install

Fatto questo, apriamo qjackctl:

qjackctl

Andiamo in Setup, e impostiamo:

  • Driver: firewire
  • Non abilitiamo Realtime (a meno che non abbiate un kernel realtime installato, in tal caso la configurazione sarebbe più complessa)
  • Frames/period: 128 (bassa latenza)
  • Periods/buffer: 2 (come mai non è possibile impostare a 1? sotto windows ci riesco…)
  • Sample rate: 44100 (o 48, come preferite, io mi accontento per ora :-) )

Otterremo comunque una latenza buonina di 5.8 msec.

Salviamo, e clickiamo prima su Messages, in modo che si apra la finestrella con il lungo (issimo!) scroll, per monitorare i vari blocchi, e poi su Start.
Dopo qualche secondo, se tutto è andato bene, dovrebbe comparire la scritta connected.
Diamogli un altro paio di secondi (altrimenti si arrabbia e crasha!) e clickiamo su Connect.
Lì se tutto è andato per il verso giusto, dovremo vedere le varie porte, per i canali in ingresso e quelli in uscita.

Troubleshooting:
– Crasha/Non si connette al server Jack!
Bene, sai che novità! Prova ad eseguire questo comando:

sudo killall jack qjackctl -9

Controlla che jack non sia più in esecuzione con:

ps aux | grep jack

Se compare ancora nella lista, prova a scollegare il cavo firewire ed a ripetere il comando precedente (più volte, non si sa mai, e non fa del male).
Ricontrolla che sia effettivamente morto, e una volta fatto questo fai:

sudo rmmod raw1394 && sudo modprobe raw1394

Poi prova a riavviare qjackctl e vediamo se funziona un po’ meglio!
A volte (casualmente) va meglio di altre, a volte non si avvia, a volte boh.

Appena ho tempo porterò degli aggiornamenti “operativi”! :-)

6 pensieri su “Motu Ultralite e Linux”

  1. Ciao, ho seguito la tua guida ma ho qualche domanda da farti, se puoi aiutarmi.
    Riesco a compilare ed installare correttamente libraw1394 e libffado, ma eseguendo “tests/test-ffado Discover” non vedo nessun dispositivo.
    Inoltre non riesco a compilare jack perché mi dà i seguenti errori:
    1) ffado_driver.c:94: error: ‘ffado_audio_datatype_float’ undeclared
    2) ffado_driver.c:308: error: ‘ffado_wait_response’ undeclared
    In ogni caso, grazie per la tua preziosa guida.
    Paolo

  2. @paolo Ciao :-)
    Dunque, ho notato che nel frattempo hanno modificato il test Discover, ora devi aggiungere il parametro –verbose=6 per vedere la tua UltraLite. Comunque ho aggiornato la guida in proposito.
    Per ora sembra non andare comunque niente, a quanto pare dovrebbe di default riprodurre un segnale di un’onda a 1kHz sul canale sinistro dell’output 1, ma dai meters non vedo nulla.
    Visto che ho SOLO ORA scoperto l’esistenza della mailing list degli utenti, (era ora!) provero’ a porre i quesiti agli sviluppatori, eventualmente proponendomi come beta tester :-)
    A presto! :-)

  3. Ciao, anche io ho contattato la mailing list di ffado (ho letto anche i tuoi messaggi). Per il momento possiamo solo aspettare perché altri dispositivi hanno la priorità.
    Tu però puoi contattare sia il tech support di MOTU sia il customer service, come ho fatto io.
    Anche se sappiamo già che Linux non è supportato, magari se siamo in tanti ad insistere qualcosa cambierà.
    ciao

  4. Ciao, anche io ho letto i tuoi sulla ML :-)
    Seguo costantemente sia quella degli utenti che quella dei developers, Jonathan si occupa di tutto il backend per le MOTU, ma purtroppo non possiede una Ultralite.
    Il problema è che per sniffare i pacchetti sul bus firewire si dovrebbe avere un altro pc con una scheda firewire con più connettori, e con un determinato tipo di chipset (piu’ costoso dei modelli consumer)..
    Vedremo quando Jonathan avrà tempo, in caso acquisterei molto volentieri una scheda di questo tipo, sperando di riuscire a cavare un ragno dal buco :-)

    A presto!

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *