Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionLast revisionBoth sides next revision | ||
wiki:intel_hda_realtime_howto [2012/01/18 01:27] – quinn_adams | wiki:intel_hda_realtime_howto [2013/09/09 12:23] – [Debian (9 sept 2013)] bas_kooning | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | The paragon of udnesrtadnnig these issues is right here! | + | [[http:// |
+ | ~~META: | ||
+ | ~~META: | ||
- | [[http://e-writer.org/ | + | ====== 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 of / | ||
+ | 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> |