SDB:Intel-HDA sound problems

Jump to: navigation, search


Symptom

The Soundcard looks like it was properly configured with YaST but you can't hear any sound, can't use the mixer or the channels are wrongly assigned. This might also help if your Laptop don't switch of the speaker if you plugin a headphone. In this case you should be able after the changes to control the volumes (speaker and headphone) independently.

If the only problem you encounter is that you do not have any sound when plugging headphones then have a look a the "No sound from Headphones" section below.

Cause

There a a lot of different hda-intel soundcards on the market, unfortunately YaST can't always automatically configure them correctly.

Solution

Important Note:

With openSUSE 11.2 the naming scheme for configuration files in /etc/modprobe.d/ has changed.

If you run a version older than openSUSE 11.2, the respective file will be called /etc/modprobe.d/sound.

If you run openSUSE 11.2 or newer, the file will be called /etc/modprobe.d/50-sound.conf.

In a nutshell, for openSUSE 11.2 and newer all configuration files in /etc/modprobe.d/ have to end with .conf, otherwise they will be ignored.

Open a terminal like konsole and login as root. Find out what kind of codec is used for your soundcard:

head -n 1 /proc/asound/card0/codec*

Note: 
If for some reason you don't have a /proc/asound directory, then you are either not using ALSA, or your ALSA config is corrupt.  
Possibly restoring /etc/modprobe.d/sound (openSUSE <= 11.1) or /etc/modprobe.d/50-sound.conf (openSUSE >= 11.2) described below to its original condition may at least get ALSA starting again.

here is an example output:

  ==> /proc/asound/card0/codec#0 <==
  Codec: Realtek ALC883
  
  ==> /proc/asound/card0/codec#1 <==
  Codec: Conexant ID 2c06

In this example the codec for the card is codec#0, ALC883.

The options for the modules are available in the kernel-source.rpm, install this if it's not already on your system.

In the file /usr/src/KERNEL_VERSION/Documentation/sound/alsa/ALSA-Configuration.txt search for the codec, in this example again ACL883.

  ALC883/888
	  3stack-dig	3-jack with SPDIF I/O						
	  6stack-dig	6-jack digital with SPDIF I/O					
	  3stack-6ch    3-jack 6-channel						
	  3stack-6ch-dig 3-jack 6-channel with SPDIF I/O				
	  6stack-dig-demo  6-jack digital for Intel demo board				
	  acer		Acer laptops (Travelmate 3012WTMi, Aspire 5600, etc)		
	  medion	Medion Laptops							
	  medion-md2	Medion MD2							
	  targa-dig	Targa/MSI							
	  targa-2ch-dig	Targs/MSI with 2-channel					
	  laptop-eapd   3-jack with SPDIF I/O and EAPD (Clevo M540JE, M550JE)		
	  lenovo-101e	Lenovo 101E							
	  lenovo-nb0763	Lenovo NB0763							
	  lenovo-ms7195-dig Lenovo MS7195						
	  6stack-hp	HP machines with 6stack (Nettle boards)				
	  3stack-hp	HP machines with 3stack (Lucknow, Samba boards)			
	  auto		auto-config reading BIOS (default)

You have to enter the option into /etc/modprobe.d/sound (openSUSE <= 11.1) or /etc/modprobe.d/50-sound.conf (openSUSE >= 11.2). You can control the values in this file via Yast's Sound module with advanced configuration. The below shows directly editing the config file.

The original file should look like this:

  options snd-hda-intel enable=1 index=0
  # u1Nb.jN8_s9AC_37:82801H (ICH8 Family) HD Audio Controller
  alias snd-card-0 snd-hda-intel

after the change:

  options snd-hda-intel model=6stack-dig enable=1 index=0
  # u1Nb.jN8_s9AC_37:82801H (ICH8 Family) HD Audio Controller
  alias snd-card-0 snd-hda-intel

Add or change only the model= part of the configuration. Now go to the "Restarting the sound server" section below.

Warning! Don't create a backup file of 'sound' in /etc/modprobe.d/ as this would also be read!

Problems with Intel Broadwell CPU and mainboard chipset both using the snd-hda-intel driver

Problem: (with Opensuse Leap 42.2) the audio section on the backplane remains mute when Linux plays audio. It is possible to generate a test tone in the YAST sound config for this jack. This test tone however appears regardless of the configured order of the both audio devices always for the lower entry (second interface). Which is an indicator that the config generated by YAST actually does not affect the order of the interfaces and that the Mainboard Chipset always remains second interface, leaving the HDMI sound as default output.

Also an

aplay -ll

shows HDMI configured as card0 and PCH as card1, regardless of anything done in YAST.


Solution:

Step 1) Find out the exact ID of your audio controllers. Look at the part after the colon in the rectangular brackets:

lspci -nn |grep -i audio
00:03.0 Audio device [0403]: Intel Corporation Broadwell-U Audio Controller [8086:160c] (rev 0a)
00:1b.0 Audio device [0403]: Intel Corporation 9 Series Chipset Family HD Audio Controller [8086:8ca0]

Step 2) Edit the file /etc/modprobe.d/sound.conf which is usually maintained by YAST manually, assign the default / first sound device to the mainboard chipset and the second one to the Broadwell chipset.

options snd-hda-intel index=0 model=auto vid=8086 pid=8ca0 
options snd-hda-intel index=1 model=auto vid=8086 pid=160c

After a reboot the audio signal should be on the audio output on your backplane instead of being defaulted to the HDMI interface. Also most likely the interfaces will look unconfigured in YAST. Ignore this, as reconfiguring the interfaces in YAST will undo your changes to the sound.conf.

No sound from Headphones

If you have an Intel sound card which requires snd-hda-intel driver but do not have any sound when plugging in headphones, you are in the correct section. YaST2 should have created the /etc/modprobe.d/sound (openSUSE <= 11.1) or /etc/modprobe.d/50-sound.conf (openSUSE >= 11.2) file and it should contain the following (or something very similar):

options snd slots=snd-hda-intel
# u1Nb.Iok8MET6hsF:82801FB/FBM/FR/FW/FRW (ICH6 Family) High Definition Audio Controller
alias snd-card-0 snd-hda-intel

The driver problem occurs with every distribution so it is normal. Anyways, you are going to have to modify the options line either by directly editing the file, or using Yast's Sound Module - Advanced Configuration. The new file should look like the following (lines staring with a pound sign # are comments):

options snd-hda-intel model=z71v position_fix=1
# u1Nb.Iok8MET6hsF:82801FB/FBM/FR/FW/FRW (ICH6 Family) High Definition Audio Controller
alias snd-card-0 snd-hda-intel

That should do the trick. Now go to the "Restarting the sound server" section below.

If after restarting the sound you still don't have any output from your headphones, make sure you un-muted the headphones using alsamixer (in command line) or your favorite graphical mixer (such as KMix).

Note! On Sony Vaio FZ21M, you have to insert the following options:

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

On Dell Adamo 13 options line should be:

options snd-hda-intel model=dell-m6 position_fix=1

On Dell Studio 17, you have to use

options snd-pcsp index=-2
alias snd-card-0 snd-hda-intel
alias sound-slot-0 snd-hda-intel
options snd-hda-intel model=dell-m6-amic

Restarting the sound server

Before restarting make sure to change ALSA settings such that Microphone channels are muted to prevent sound loopback and squealing sound. Not doing this might cause high and continuous beep sounds. One can do this using alsamixer.

alsamixer

Save the file /etc/modprobe.d/sound (openSUSE <= 11.1) or /etc/modprobe.d/50-sound.conf (openSUSE >= 11.2) after the changes and restart the soundsystem as root.

rcalsasound restart

You have to restart the mixer you use, so start as user kmix or gmix, depending on what windowmanager you use. Open the mixer and set all channels to medium and check if you can hear sound now.

If you start KMix with a left mouse click, you will see only the main volume slider. Click on Mixer to see all channels.
SigmaTel STAC9271D: Make sure that the master volume is almost maximum. If not, you might have no sound. You should use speaker channel to control the volume.

If this was not successful, use another option in /etc/modprobe.d/sound (openSUSE <= 11.1) or /etc/modprobe.d/50-sound.conf (openSUSE >= 11.2) and restart the procedure.

<keyword>sound,hda-intel,ICH8,ICH7,ICH6,headphone</keyword>