This is an old revision of the document!


Based on this mail on LAU by Nathanael Anderson

Intel-HDA JACK low latency howto

I've seen asked many times on the list how to get intel-hda cards working with low latency, in duplex operation. Here is a full, step by step, on how I got 4ms latency. I'm using a Dell M90 with a Quadro fx 1500, attached to a docking station with a Maudio Delta 66 pci card (secondary card) in it, the binary Nvidia drivers and Compiz. So if you were wondering, it is possible. :)

Kernel

(I'm not going to walk you through how to compile a kernel)

the last kernel before the big kernel lock regression

wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.24.7.tar.bz2
tar xvjf linux-2.6.24.7.tar.bz2
cd linux-2.6.24.7.tar.bz2
wget http://www.kernel.org/pub/linux/kernel/projects/rt/patch-2.6.24.7-rt21.bz2

if you don't see it here look in the projects/rt/older/ directory

bzcat ../patch-2.6.24.7-rt21.bz2

Download this config: config-intel-hda.txt

mv config-intel-hda.txt .config.old
make oldconfig

build and install your kernel

Module Options

Add the following line to the file your distribution has its module options in (in ubuntu it is /etc/modules.d/alsa-base)

options snd-hda-intel model=ref position_fix=1 enable=1 index=0

Mixer Options (VERY IMPORTANT ! ! !)

enable capture/record elements in mixer

without this jack can't play nicely with intel-hda cards

RT Permissions

In most modern distros /etc/security/limits.conf is where realtime permissions are set, I added these 3 lines to it, and added myself to the @audio group in /etc/group

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

Jack options

I use qjackctl to set these

  • put a check in Realtime
  • Priority 89
  • Frames/Period 64
  • Sample Rate 48000
  • Periods/Buffer 3

Comments

Please comment here if this guide worked for you or what you had to do to get it working:

!– Comments end here –!

wiki/intel_hda_realtime_howto.1226698910.txt.gz · Last modified: 2008/11/14 22:41 by holger