# Aparent Conflict between a Intel Sound Card and nVidia HDMI

## wpkzz

Hello fellow kernel-compilers:

I have a computer at my new work which is a good not-so-new machine, I guess it must be around 5 years old. It has an Intel Processor with two cores. I cannot make it play tunes while I work. It seems that I cannot get the kernel and alsa straight with the reported hardware: here is the data:

```

helga / # lspci | grep Audio

00:1b.0 Audio device: Intel Corporation NM10/ICH7 Family High Definition Audio Controller (rev 01)

01:00.1 Audio device: NVIDIA Corporation High Definition Audio Controller (rev a1)helga / # 

```

```

aplay -l

**** List of PLAYBACK Hardware Devices ****

card 1: NVidia [HDA NVidia], device 3: HDMI 0 [HDMI 0]

  Subdevices: 1/1

  Subdevice #0: subdevice #0

card 1: NVidia [HDA NVidia], device 7: HDMI 0 [HDMI 0]

  Subdevices: 1/1

  Subdevice #0: subdevice #0

```

```

aplay -L

null

    Discard all samples (playback) or generate zero samples (capture)

pulse

    PulseAudio Sound Server

hdmi:CARD=NVidia,DEV=0

    HDA NVidia, HDMI 0

    HDMI Audio Output

hdmi:CARD=NVidia,DEV=1

    HDA NVidia, HDMI 0

    HDMI Audio Output

```

In my kernel I compiled alsa as module, and then all the avaible HD audio thinguies as modules also.

aplay and speaker-test show both a strange behaviour. 

If I run them without indicating the nVidia card (as -D plughw:1,7) they complain with "file not found" or "cannot count channels". 

If I specify the -D plughw:1,7 (or 1,3) they play nicely... without sound at all.

Alsamixer shows a Intel HD with a single master volume (unmuted both in user and in root) and a nVidia with three S/PDIF unmuted without levels and a 

master volume set at 85. 

I do NOT want to use the HDMI output. I want the sound by the inboard intel sound so as I can use a normal set of headphones in the work. 

I also followed some old threads that suggested modifing .asoundrc  in various ways and also usign pulseaudio, without any better results. Now I unmerged pulseaudio, but it seems that it left some libraries behind.

The threads that I allready consulted:

[url]

https://forums.gentoo.org/viewtopic-t-827888-start-0.html

[/url]

and

[url]

http//forums.gentoo.org/viewtopic-p-7671210.html?sid=f4d98f2149f85e84e771053140052bce 

[/url]

But it seems to me that those people wanted their sound through the hdmi device and not the other way around.Last edited by wpkzz on Wed Feb 18, 2015 5:38 pm; edited 1 time in total

----------

## Yamakuzure

Please fix your code tags.

The intel card doesn't even show up. Is your kernel configuration complete?

This is what I have configured:

```
 # grep SND_HDA /usr/src/linux/.config | grep -v '#'

CONFIG_SND_HDA=m

CONFIG_SND_HDA_INTEL=m

CONFIG_SND_HDA_PREALLOC_SIZE=64

CONFIG_SND_HDA_RECONFIG=y

CONFIG_SND_HDA_INPUT_JACK=y

CONFIG_SND_HDA_CODEC_ANALOG=m

CONFIG_SND_HDA_CODEC_SIGMATEL=m

CONFIG_SND_HDA_CODEC_HDMI=m

CONFIG_SND_HDA_I915=y

CONFIG_SND_HDA_GENERIC=m

CONFIG_SND_HDA_POWER_SAVE_DEFAULT=0
```

And setting the module to list PCH as the primary device can be done via module parameters in /etc/conf.d/modules:

```
 # grep snd /etc/conf.d/modules

module_snd_hda_intel="id=HDMI,PCH index=1,0 enable_msi=1"
```

This places the PCH card at position 1 (index 0) and the HDMI after that.

----------

## wpkzz

Thanks, Yamakuzure:

Sorry for the code tags, they are better now. But something's weird with the url tag, I cannot seem to make it right (even with help from the tools).

The relevant parts of my kernel config are these I suppose:

```

ONFIG_SND=m

CONFIG_SND_TIMER=m

CONFIG_SND_PCM=m

CONFIG_SND_HWDEP=m

CONFIG_SND_COMPRESS_OFFLOAD=m

CONFIG_SND_JACK=y

CONFIG_SND_SEQUENCER=m

CONFIG_SND_SEQ_DUMMY=m

CONFIG_SND_OSSEMUL=y

CONFIG_SND_MIXER_OSS=m

CONFIG_SND_PCM_OSS=m

CONFIG_SND_PCM_OSS_PLUGINS=y

CONFIG_SND_SEQUENCER_OSS=y

CONFIG_SND_HRTIMER=m

CONFIG_SND_SEQ_HRTIMER_DEFAULT=y

CONFIG_SND_SUPPORT_OLD_API=y

CONFIG_SND_VERBOSE_PROCFS=y

CONFIG_SND_VMASTER=y

CONFIG_SND_KCTL_JACK=y

CONFIG_SND_DMA_SGBUF=y

CONFIG_SND_DRIVERS=y

CONFIG_SND_PCI=y

CONFIG_SND_HDA=m

CONFIG_SND_HDA_INTEL=m

CONFIG_SND_HDA_PREALLOC_SIZE=64

CONFIG_SND_HDA_HWDEP=y

CONFIG_SND_HDA_RECONFIG=y

CONFIG_SND_HDA_INPUT_BEEP=y

CONFIG_SND_HDA_INPUT_BEEP_MODE=1

CONFIG_SND_HDA_INPUT_JACK=y

CONFIG_SND_HDA_PATCH_LOADER=y

CONFIG_SND_HDA_CODEC_REALTEK=m

CONFIG_SND_HDA_CODEC_ANALOG=m

CONFIG_SND_HDA_CODEC_SIGMATEL=m

CONFIG_SND_HDA_CODEC_VIA=m

CONFIG_SND_HDA_CODEC_HDMI=m

CONFIG_SND_HDA_CODEC_CIRRUS=m

CONFIG_SND_HDA_CODEC_CONEXANT=m

CONFIG_SND_HDA_CODEC_CA0110=m

CONFIG_SND_HDA_CODEC_CA0132=m

CONFIG_SND_HDA_CODEC_CMEDIA=m

CONFIG_SND_HDA_CODEC_SI3054=m

CONFIG_SND_HDA_GENERIC=m

CONFIG_SND_HDA_POWER_SAVE_DEFAULT=0

CONFIG_SND_SOC=m

CONFIG_SND_SOC_I2C_AND_SPI=m

CONFIG_SND_SIMPLE_CARD=m

```

.

Also here is my lspci -k output on the Audio topics:

```

00:1b.0 Audio device: Intel Corporation NM10/ICH7 Family High Definition Audio Controller (rev 01)

   Subsystem: Dell Device 043e

   Kernel driver in use: snd_hda_intel

   Kernel modules: snd_hda_intel

00:1c.0 PCI bridge: Intel Corporation NM10/ICH7 Family PCI Express Port 1 (rev 01)

   Kernel driver in use: pcieport

00:1c.2 PCI bridge: Intel Corporation NM10/ICH7 Family PCI Express Port 3 (rev 01)

   Kernel driver in use: pcieport

01:00.1 Audio device: NVIDIA Corporation High Definition Audio Controller (rev a1)

   Subsystem: Pegatron Device 9060

   Kernel driver in use: snd_hda_intel

   Kernel modules: snd_hda_intel

```

What does "enable_msi" means?

Thanks again for the interest.

----------

## Yamakuzure

Looks good so far, but please do not enable codecs you do not use anyway. You must have HDMI and GENERIC. I have enabled ANALOG and SIGMATEL on my system when I didn't know which would get used.

But on my first try I had all enabled as modules like you did, and had no sound at all. Something went awry then. Maybe you have the same problem? At least REALTEK and CMEDIA must be disabled on my system or I have no sound, too.

enable_msi allows [M]essage [S]ignaled [I]interrupts. (quote my text to see how I use the url tag  :Wink: )

However, are all modules loaded?

```
 ~ $ lsmod | grep hda

snd_hda_codec_hdmi     37084  1 

snd_hda_codec_generic    51631  1 

snd_hda_intel          20803  4 

snd_hda_controller     18620  1 snd_hda_intel

snd_hda_codec          91104  4 snd_hda_codec_hdmi,snd_hda_codec_generic,snd_hda_intel,snd_hda_controller
```

In my last post I have forgotten to mention two other files for module autoloading you might want to check, too:

```
 ~ $ grep hda /etc/modprobe.d/*

/etc/modprobe.d/alsa.conf:options snd-hda-intel id=HDMI,PCH index=1,0 enable_msi=1

/etc/modprobe.d/snd_hda_intel.conf:options snd-hda-intel id=HDMI,PCH index=1,0 enable_msi=1
```

----------

## wpkzz

Okey Yamakuzure:

 It seems that I have now too much modules enabled, in a similar fashion to what you mention. I have sound, now, and alsamixer states the

default card as "0 HDA Intel", and the other appears as "1 HDA Nvidia", after I followed your previous instructions for the modules loading

( I began to read the article of MSI, but it seems that it is quite an electronic enginering specific thing, isn't it? Thanks for the info!)

Now I have sound, but for some strange reason the maximal volume in "Master" on alsamixer is "14" out of 100 arbitary units. It is okey for me, but I find it

strange. I searched for "alsa forces maximal volume" and similar things, and I just found advice on how to FORCE a lesser maximal volume through pulseaudio.

The output for lsmod | grep snd is as follows:

```
 

snd_hda_codec_hdmi         36237  3 

snd_hda_codec_realtek      54066  1 

snd_hda_codec_generic     50091  1 snd_hda_codec_realtek

snd_hda_intel                   16427  3 

snd_hda_controller            18092  1 snd_hda_intel

snd_hda_codec                 94239  5 snd_hda_codec_realtek,snd_hda_codec_hdmi,snd_hd _codec_generic,snd_hda_intel,snd_hda_controller

snd_hwdep                       6052  1 snd_hda_codec

snd_pcm                          76850  5 snd_hda_codec_hdmi,snd_hda_codec,snd_hda_intel,snd_hda_controller

snd                                  55004  12 snd_hda_codec_realtek,snd_hwdep,snd_timer,snd_hda_codec_hdmi,snd_pcm,snd_hda_codec_generic,snd_hda_codec,snd_hda_intel

```

and  for grep snd /etc/conf.d/modules is only

```

alsa.conf:alias snd-card-0 snd-hda-intel

```

I think I can safelly disable the realtek codec, ne?

Thanks

wpkzz

PD:

 *Quote:*   

> 
> 
> enable_msi allows [M]essage [S]ignaled [I]interrupts. (quote my text to see how I use the url tag ) 
> 
> 

 

 :Question: 

----------

## wpkzz

ooooo

Now I got it!

enable_msi allows [M]essage [S]ignaled [I]interrupts. (quote my text to see how I use the url tag  :Wink: )

----------

## Yamakuzure

Looks good so far.

Did you try to raise the volume in alsamixer with your cursor keys?  :Wink: 

----------

## wpkzz

Ooooh pleaaase----

(No, i did not get offended, i am perfectly aware that those things happen. In mexican spanish there is a saying that even the best hunter misses the rabbit).

Yes, I did try to raise the volume with arrowkeys, and with other keys in alsamixer, both as user and root, with no avail. Also I did try to use amixer command line commands, and also had no effect. I am trying to figure if i did mess around with some alsa configuration files, but I cannot seem to find the culprit. I do not even have a .asoundrc file.

----------

## Yamakuzure

Then I am completely at sea... sorry.  :Sad: 

I googled to find out how to limit the master volume, but didn't find anything useful. The only hint I got is, that your desktop environment might limit that.

----------

## wpkzz

No, no, is not the desktop enviroment. I use a very very minimalistic fluxbox setting, and that happens even from the console, without "startxing".

----------

