Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| wiki:intel_hda_realtime_howto [2012/01/13 03:12] – CpQfMzriXKrkEH 109.230.216.60 | wiki:intel_hda_realtime_howto [2014/03/09 00:28] (current) – j_e_f_f_g | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | The paragon | + | [[http:// |
| + | |||
| + | ~~META: | ||
| + | ~~META: | ||
| + | |||
| + | ====== 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:// | ||
| + | |||
| + | tar xvjf linux-2.6.24.7.tar.bz2 | ||
| + | cd linux-2.6.24.7.tar.bz2 | ||
| + | wget http:// | ||
| + | |||
| + | if you don't see it here look in the [[http:// | ||
| + | |||
| + | bzcat ../ | ||
| + | |||
| + | Download this config: {{: | ||
| + | |||
| + | 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 / | ||
| + | |||
| + | options snd-hda-intel model=ref position_fix=1 enable=1 index=0 | ||
| + | |||
| + | ===== Mixer Options (VERY IMPORTANT ! ! !) ===== | ||
| + | |||
| + | enable capture/ | ||
| + | |||
| + | **without this jack can't play nicely with intel-hda cards** | ||
| + | |||
| + | ===== RT Permissions ===== | ||
| + | |||
| + | In most modern distros / | ||
| + | |||
| + | @audio | ||
| + | @audio | ||
| + | @audio | ||
| + | |||
| + | ===== Jack options ===== | ||
| + | |||
| + | I use qjackctl to set these | ||
| + | |||
| + | * put a check in Realtime | ||
| + | * Priority 89 | ||
| + | * Frames/ | ||
| + | * Sample Rate 48000 | ||
| + | * Periods/ | ||
| + | |||
| + | ===== Debian (9 sept 2013) ===== | ||
| + | * Realtime does not have to be compiled anymore into the kernel: it is already by default. I know at least on " | ||
| + | * On Debian the location of the config file is **/ | ||
| + | * Further config files are located at **~/ | ||
| + | * The ' | ||
| + | * The ' | ||
| + | * Example | ||
| + | Use ' | ||
| + | pcm.!default { # declare the default PCM device | ||
| + | type asym # combine playback and capture devices | ||
| + | playback.pcm { ### Playback object ### | ||
| + | type plug # convert audio to mixer format | ||
| + | slave.pcm { | ||
| + | type dmix # mix multiple audio streams | ||
| + | ipc_key 69569 # shared memory key; must be unique, just make one up | ||
| + | ipc_key_add_uid true # add UID to shared mem key | ||
| + | ipc_perm 0600 # shared mem file permissions | ||
| + | slave { | ||
| + | pcm { | ||
| + | type hw # define the playback hardware | ||
| + | card " | ||
| + | device 1 # YOUR playback device on that card | ||
| + | } | ||
| + | format S32_LE | ||
| + | rate 48000 # YOUR samples per second | ||
| + | channels 2 # number of audio channels | ||
| + | } | ||
| + | } | ||
| + | } | ||
| + | capture.pcm { ### Capture object ### | ||
| + | type plug # convert audio format from the hardware | ||
| + | slave { | ||
| + | pcm { | ||
| + | type hw # define the capture hardware | ||
| + | card " | ||
| + | device 0 # YOUR capture device on that card | ||
| + | } | ||
| + | } | ||
| + | } | ||
| + | } | ||
| + | ===== Comments ===== | ||
| + | |||
| + | Please comment here if this guide worked for you or what you had to do to get it working: | ||
| + | |||
| + | |||
| + | |||
| + | !-- Comments end here --! | ||
| + | {{tag> | ||
