Sound only from headphones on laptop

I’ve recently installed Opensuse 13.2 on a new laptop (Gigabyte P35X v3), and most things work fine except for the sound. I’ve tried literally everything, including the Opensuse SDB articles on sound troubleshooting and elsewhere. I’m not exactly a newbie to Linux, and have always managed to solve problems in the past, but this one has me stumped. I get sound from the headphone jack with no issues, but I simply cannot persuade my laptop to give me sound from the speakers. Except by booting into Windows.

In Yast, I see there are two sound devices: Haswell HD and Lynx Point. Changing the default device has no effect. Installing Pavucontrol or using alsa mixer to ensure no channels are muted has no efffect. Fiddling with modprobe.d files has no effect. Nor permissions or anything else.

Any help anyone can give on this would be greatly appreciated!

Its possible the alsa driver is buggy for your laptop (in which case a bug report on openSUSE would get the attention of the SuSE-GmbH sound packager for openSUSE who is also an alsa sound driver developer, and who solves most sound problems quickly), … but before raising a bug report, could you provide some more information so that we can confirm there is not some strange mixer or other sound configuration at issue here ?

Please with your laptop connected to the internet, as a regular user run this diagnostic script in a konsole/xterm :


/usr/sbin/alsa-info.sh

and do not Update if asked, and select the SHARE/UPLOAD option, and let the script run to completion. After it finishes it will put a web-address/URL in the konsole/xterm indicating where it has uploaded your laptop’s audio-configuration information. Please copy the web-address/URL here (just the address), so that we can examine it and maybe sight an issue that can be fixed.

Thanks and good luck.

Thanks for the response, OldCPU. Here’s the link:

http://www.alsa-project.org/db/?f=2350eff7f80c73cbbc201b0b8153d2cf7dee9494

I note this:


!!Aplay/Arecord output
!!--------------------

APLAY

**** List of PLAYBACK Hardware Devices ****
**card 0: HDMI **[HDA Intel HDMI], device 3: HDMI 0 [HDMI 0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
**card 0: HDMI** [HDA Intel HDMI], device 7: HDMI 1 [HDMI 1]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
**card 0: HDMI** [HDA Intel HDMI], device 8: HDMI 2 [HDMI 2]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
**card 1**: PCH [HDA Intel PCH], device 0: ALC282 **Analog** [ALC282 Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
**card 1**: PCH [HDA Intel PCH], device 1: ALC282 **Digital **[ALC282 Digital]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

and this:


!!Loaded ALSA modules
!!-------------------

snd_hda_intel
snd_hda_intel

The problem, as I see it could be because HDMI is identified as card-0 (ie default sound device) and analog/digital sound is card-1. Your audio applications will by default send sound to card-0, the HDMI device. Of course plugging in headphones is not impacted by that.

You noted you tried to change default audio device. In turn I note to you that YaST will fail to do such if both HDMI and analog/digital audio use the same alsa sound module. In your PC’s case they both use “snd_hda_intel” and hence your efforts there likely did not succeed. ie you did not achieve to change the two devices.

You noted you tried fiddling with the 50-sound.conf (I assume) in the modprobe.d directory. My guess is you did not try what I am about to propose, which is I am going to propose forcing HDMI to be card-1 and analog/digital sound to be card-0, by specifying this specifically in the 50-sound.conf file.

I note this:


!!Advanced information - PCI Vendor/Device/Subsystem ID's
!!-------------------------------------------------------

00:03.0 0403: 8086:**0c0c** (rev 06)
    Subsystem: 8086:2010
--
00:1b.0 0403: 8086:**8c20** (rev 05)
    Subsystem: 1458:b556


I assume the 8c20 is your analog/digital sound device, and the 0c0c is the HDMI.

Try either replacing the /etc/modprobe.d/50-sound.conf entire file with the following (or place it at the start of the file) :


options snd_hda_intel index=0 model=auto vid=8086 pid=8c20
options snd_hda_intel index=1 model=auto vid=8086 pid=0c0c

Then save that, reboot and test. (Its possible that ‘model=auto’ is NOT needed in those lines).

I am trying to force index=0 to 8c20 where I think index=0 means card-0 and 8c20 analog/digital sound device. And I am trying to force index=1 to 0c0c where I think index=1 means card-1 and 0c0c is HDMI audio.

If you already tried that , I apologize for wasting your time. It was difficult to discern from your very general “Fiddling with modprobe.d files has no effect” (as I am ignoring that fiddling claim and telling you to try and fiddle some more). < gulp > Hopefully this is ok with you.
.
.

This is one thing I did try previously by directly editing sound.conf, but to no avail. I followed your instructions any way, but still no sound. As you can see, the order of the cards is reversed.

http://www.alsa-project.org/db/?f=8eaca945c35cb4bcaa9625ecc6869f7dec117b92

When you say ‘no sound’ can you help me better understand what test you are doing to come to that conclusion ?

Further, keep that edit in the file for now.

Lets try some other things … In the off chance pulse audio has a bad configuration, blocking sound through the speakers, if your PC has a /~pulse and a /~config/pulse directory, delete those and test.

By “no sound” I mean that I’d tested the sound in KDE’s System Settings. The speaker-test scripts from the “SDB:Audio troubleshooting” article don’t work either, whether as a regular user or superuser.

I deleted the ~.config/pulse directory, but didn’t have a ~/.pulse one, but still no luck.

With the edited 50-sound.conf (as recommended by oldcpu), please run the diagnostic script again for us to review further.

Have you also (with the 50-sound.conf file edit forcing card-0 to be analog sound) tried pavucontrol again ?

Did you try any of the model options from the HD-Audio-Models.txt file ? ie


ALC269/270/275/276/28x/29x
======
  laptop-amic        Laptops with analog-mic input
  laptop-dmic        Laptops with digital-mic input
  alc269-dmic        Enable ALC269(VA) digital mic workaround
  alc271-dmic        Enable ALC271X digital mic workaround
  inv-dmic        Inverted internal mic workaround
  lenovo-dock       Enables docking station I/O for some Lenovos
  dell-headset-multi    Headset jack, which can also be used as mic-in
  dell-headset-dock    Headset jack (without mic-in), and also dock I/O

YOu will have to restart after removing the puleaudio config/cache files

It should only be necessary to restart pulseaudio with ‘pulseaudio -k’ I would have thought?

Yes but that is a resatart.

Gotcha… still not clear to me where the OP is at with all of this.

http://www.alsa-project.org/db/?f=8eaca945c35cb4bcaa9625ecc6869f7dec117b92

I did restart, but no joy, sadly.

I only have short timeframes each day to try things (work all day, kids jumping all over daddy in the evening!), so bear with me when it goes quiet! I’ll be trying OldCPUs suggestions for the model types in sound.conf next.

I understand - I’m in the same boat! :slight_smile: …wouldn’t swap it for the world though! Anyway, at least we know that the sound-card order has taken effect.


!!Soundcards recognised by ALSA
!!-----------------------------

 0 [PCH            ]: HDA-Intel - HDA Intel PCH
                      HDA Intel PCH at 0xf7410000 irq 49
 1 [HDMI           ]: HDA-Intel - HDA Intel HDMI
                      HDA Intel HDMI at 0xf7414000 irq 50


!!PCI Soundcards installed in the system
!!--------------------------------------

00:03.0 Audio device: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor HD Audio Controller (rev 06)
00:1b.0 Audio device: Intel Corporation 8 Series/C220 Series Chipset High Definition Audio Controller (rev 05)


!!Advanced information - PCI Vendor/Device/Subsystem ID's
!!-------------------------------------------------------

00:03.0 0403: 8086:0c0c (rev 06)
	Subsystem: 8086:2010
--
00:1b.0 0403: 8086:8c20 (rev 05)
	Subsystem: 1458:b556


!!Modprobe options (Sound related)
!!--------------------------------

snd_hda_intel: index=0 model=auto vid=8086 pid=8c20
snd_hda_intel: index=1 model=auto vid=8086 pid=0c0c

Yes. I do note that pavucontrol lists the HDMI output first, but I don’t know if that is important or how to reorder it

Did you try any of the model options from the HD-Audio-Models.txt file ? ie

ALC269/270/275/276/28x/29x

laptop-amic Laptops with analog-mic input
laptop-dmic Laptops with digital-mic input
alc269-dmic Enable ALC269(VA) digital mic workaround
alc271-dmic Enable ALC271X digital mic workaround
inv-dmic Inverted internal mic workaround
lenovo-dock Enables docking station I/O for some Lenovos
dell-headset-multi Headset jack, which can also be used as mic-in
dell-headset-dock Headset jack (without mic-in), and also dock I/O

None of these work. The audio tests show the text that they are working, but with no audio output.

I recommend you add the model types while keeping the two lines of code that forced the sound device order (albeit modify those lines). Note when trying model types you will need to replace the model=auto with a different model other than ‘auto’. I don’t know enough to say whether this can be on the same line, or should be relegated to a second line.

Also, where the model assignment works or not, this is now bug reporting territory. This should ‘just work’ and it does not. So I recommend a bug report.

There is guidance here to raise a bug report: https://en.opensuse.org/openSUSE:Submitting_bug_reports and you can use your openSUSE username and password when logging on to bugzilla. Attach to the bug report the text file (don’t link, attach the file) you get from running :


/usr/sbin/alsa-info.sh --no-upload

and in the bug report don’t bother referencing this thread as the SuSE-GmbH sound packager (who is also an alsa sound driver developer) will not read forum threads. Ensure your bug description describes all salient aspects of the problem.

The SuSE-GmbH sound packager is VERY GOOD. If anyone can solve this, they can. If not on vacation they will reply quick and ask for more information and work with you rapidly until this is solved.

Good luck.

I hope you applied only one at a time.

You need to reboot between each one being tried. You also need to remove the model=auto when trying such. I assume you know the syntax. Please advise if you do not.

If you still have the two lines in the 50-sound.conf to force the analog/digital sound first (as card-0), then that could be a problem. It is assignable in the pavucontrol, and removing the /~.pulse and /~.config/pulse should, I had thought, address that.