[ardour-users] Problems with Jack and Ardour/Rosegarden

Florian Schmidt mista.tapas at gmx.net
Thu Dec 2 03:28:36 PST 2004


On Thu, 02 Dec 2004 11:42:08 +0200
Aapo Ville Antrea Romu <aapo.romu at exitium.com> wrote:

> Hi all!
> 
> I have been tweaking Jack 0.99 and Ardour up from source for my AMD
> Athlon 64 bok running Fedora Core 2 x86_64 for a while. I'm getting a
> huge amount of XRuns so I decided to try realtime-lsm-0.1.1. So I had to
> compile my kernel to enable that module to load up.
> 
> Everything compiled fine after a bit of a struggle but the XRuns are
> still there. Also if I tweak the Jack settings with qjackctl so that my
> latency is 5,9ms I get 89% of CPU usage just running Jack.
> 
> If the realtime module is loaded then the Ardour can't connect to Jack.
> Jack reports unability to create a thread.
> 
> If you have time I would really appreciate your help. There's a forum
> thread going on at
> http://www.linuxquestions.org/questions/showthread.php?s=&threadid=261015 where I have tried to explain and solve the problem. Thank You in advance.

Ok, first of all i assume you use a 2.6.x kernel. You do not need
--enable-capabilities on the jackd configure line in this case. The
capabilities thing was a 2.4.x hack. So i'd suggest configuring jackd with

./configure --with-default-tmpdir=/mnt/ramfs --enable-ensure-mlock

This is of course assuming that you have a tmpfs or ramfs mounted at
/mnt/ramfs.

I also do not know what the --first-time switch on the realtime lsm
does. I never needed it. I usually load it like this:

modprobe realtime gid=1002 

And i have my user in the group "priv" which has the GID 1002 on my
system. you might alternatively use

modprobe realtime any=1

to allow all users to make threads SCHED_FIFO and mlock memory.

Anyways, when having the realtime lsm loaded, make sure you run jackd
with the -R option to enable SCHED_FIFO scheduling. Can you show us the
exact command you ran jackd with and the output? Do not use jackstart.
It was for 2.4.x kernels with the capabilities hack. On my 2.6.x system
i run jackd like this:

jackd -R -P 60 -d alsa -p 512

and it works like a charm :)

Now, on a vanilla 2.6.x kernel with Preemptible kernel this should
probably allow you to use a periodsize of around 1024 frames without
dropouts.

When using a Realtime Preemptive kernel (Ingo Molnar's patches), you can
also go lower.

Have a look at this page for more (although a little outdated already)
info on the RP patches:

http://affenbande.org/~tapas/linux-2.6.x-ll.html

Also, the LD_ASSUME_KERNEL trick is not to be used when configuring
jackd, but rather when running it and its clients. It helps with some
buggy NPTL implementations in libc. Above page (and also the jack faq)
has some info on it..

Flo



More information about the Ardour-Users mailing list