Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Last revisionBoth sides next revision
wiki:intel_hda_realtime_howto [2008/11/14 14:49] – formating holgerwiki:intel_hda_realtime_howto [2013/09/09 12:23] – [Debian (9 sept 2013)] bas_kooning
Line 1: Line 1:
 [[http://lists.linuxaudio.org/pipermail/linux-audio-user/2008-November/056243.html|Based on this mail on LAU by Nathanael Anderson]] [[http://lists.linuxaudio.org/pipermail/linux-audio-user/2008-November/056243.html|Based on this mail on LAU by Nathanael Anderson]]
  
-~~META:title=An intel-hda jack low latency howto~~ +~~META:title=Intel-HDA JACK low latency howto~~ 
-~~META:desc=how to get intel-hda cards working with low latency, in duplex operation~~+~~META:desc=How to get Intel-HDA cards working with low latency, in duplex operation~~
  
-====== An intel-hda jack low latency howto ====== +====== Intel-HDA JACK low latency howto ======
- +
-===== Introduction =====+
  
 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. :) 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. :)
Line 12: Line 10:
 ===== Kernel ===== ===== Kernel =====
  
-(i'm not going to walk you through how to compile a kernel)+(I'm not going to walk you through how to compile a kernel)
  
-(the last kernel before the big kernel lock regression)+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   wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.24.7.tar.bz2
  
Line 21: Line 19:
   wget http://www.kernel.org/pub/linux/kernel/projects/rt/patch-2.6.24.7-rt21.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)+if you don't see it here look in the [[http://www.kernel.org/pub/linux/kernel/projects/rt/older/|projects/rt/older/]] directory
  
   bzcat ../patch-2.6.24.7-rt21.bz2   bzcat ../patch-2.6.24.7-rt21.bz2
  
-  wget http://pastebin.com/pastebin.php?dl=f6ad31838 +Download this config{{:wiki:config-intel-hda.txt}} 
-  mv pastebin.php\?dl\=f6ad31838 .config.old+ 
 +  mv config-intel-hda.txt .config.old
   make oldconfig   make oldconfig
  
-(build and install your kernel)+build and install your kernel
  
 ===== Module Options ===== ===== Module Options =====
Line 62: Line 61:
   * Periods/Buffer 3   * Periods/Buffer 3
  
 +===== 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 "Debian 7.1 //Wheezy// amd64" & latest UbuntuStudio, perhaps more.
 +  * On Debian the location of the config file is **/etc/modprobe.d/alsa-base.conf**
 +  * Further config files are located at **~/.asoundrc** (userwide) and **/etc/asound.conf** (systemwide). Note that ~/.asoundrc works out as /home/CURRENTUSERNAME/.asoundrc so be aware that using ~ while being root (or su in a terminal) works out as /home/root/.asoundrc, which might not be what you want.
 +  * The 'index=' setting seems to not work properly, and give errors during boot about //card not ready for slot// or something ( I will try to reproduce later). The solution is to not use the line with 'index=', but instead use '**options snd slots=snd-hda-intel**'. This will put snd-hda-intel in slot 0. If you have more cards, like me, you can sum them all up, 'options snd slots=snd-ca0106,snd-hda-intel' will assign my SB Audigy (ca0106) to slot 0, and my motherboard audio (hda-intel) to slot 1. You can also keep slot 0 'open', and only assign slot 1: 'options snd slots=,snd-hda-intel' will put the hda-intel in slot 1, keeping slot 0 open for any takers. Note the comma.
 +  * The '**nice**' option is not needed, it is commented out on my setup.
 +  * Example of /etc/asound.conf that will capture sound from device 0 on 'CA0106', and playbacks sound to device 1 on 'Intel':
 +  Use '**aplay -l**' to list all playback devices, and '**arecord -l**' to list all capture devices. Results are like '//card 1: **Intel** [HDA Intel], device 1: ALC1200 Digital [ALC1200 Digital]// ', where the part made bold is the name used. Case sensitive.
 +  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 "Intel"           # YOUR playback card name
 +            device 1               # YOUR playback device on that card
 +          }
 +          format S32_LE            # YOUR bits per sample format
 +          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 "CA0106"            # YOUR capture card name 
 +          device 0                 # YOUR capture device on that card
 +        }
 +      }
 +    }
 +  }
 ===== Comments ===== ===== Comments =====
  
Line 69: Line 108:
  
 !-- Comments end here --! !-- Comments end here --!
-{{tag>intel-hda realtime jack howtos_and_faqs}}+{{tag>Sound_Cards_and_Drivers jack howtos_and_faqs}}
wiki/intel_hda_realtime_howto.txt · Last modified: 2014/03/09 01:28 by j_e_f_f_g