Bugzilla – Full Text Bug Listing |
Summary: | Sound is not working on my laptop using its FCH Azalia soundcard [1022:780d] | ||
---|---|---|---|
Product: | [openSUSE] openSUSE Distribution | Reporter: | Graham Freeman <graham> |
Component: | Sound | Assignee: | Takashi Iwai <tiwai> |
Status: | RESOLVED FIXED | QA Contact: | E-mail List <qa-bugs> |
Severity: | Major | ||
Priority: | P5 - None | CC: | graham |
Version: | 13.2 | ||
Target Milestone: | --- | ||
Hardware: | x86-64 | ||
OS: | openSUSE 13.2 | ||
Whiteboard: | |||
Found By: | --- | Services Priority: | |
Business Priority: | Blocker: | --- | |
Marketing QA Status: | --- | IT Deployment: | --- |
Attachments: | The output from alsa-info.sh |
The device likely needs some special treatment such as GPIO pins. Try to turn on each GPIO pin. For example, run the below as root: hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_MASK 0x01 hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_DIR 0x01 hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_DATA 0x01 This will turn on the pin 1 (bit 0). If this doesn't change anything, try to pass 0x02 instead of 0x01 in three commands above. It will turn on pin 2 (bit 1). You can try 0x04, 0x08 and 0x10, i.e. up to GPIO bit 4. I installed hda-verb and tried your suggestions. The commands hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_MASK 0x10 hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_DATA 0x10 hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_DIR 0x10 made sound work. This is a miracle. I have used Fedora for many years and reported the problem to them 14 months ago when I bought this new machine. It has been unusable for that whole period. I installed OpenSUSE last week and sound is now working. Thank-you so much. So should I install those commands in a start-up script somewhere, like /etc/profile? Good to hear that my blind shot hits. It's safe to put the stuff into some init script, but I'm going to cook a fix patch soon, and push to upstream and openSUSE 13.2 kernels. One more item that needs to be clarified: is this GPIO pin setup needed also for the headphone output? Or only for the speaker output? Just for completeness: as an easy test, you can run like hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_DATA 0x00 to turn off the pin and hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_DATA 0x01 to turn on the pin dynamically. You don't have to change SET_GPIO_MASK and SET_GPIO_DIR again to turn off. My question was whether the sound from the headphone also disappears if you turn off the GPIO pin (and reappears if you turn on again). If so, we need to keep GPIO pin always up during operation. OTOH, if the GPIO pin doesn't affect the headphone output, we need to turn it on only for the speaker. This would save the power a bit. With pin 4 set, I get sound from either sound source, the speakers or the headphone jack. Both are now working fine. So I need to have the MASK, the DIR and the DATA bits set on pin 4 to get sound from the speakers and from the headphones. So, do I understand correctly that both speaker and headphone are muted when you turn off pin 4? Yes. I can only get sound from the headphones when pin 4 is set. Setting pin 4 enables sound from both speakers and headphones. OK, thanks for confirmation. Now I submitted the fix patch to the upstream and backported it to SUSE openSUSE-13.2 kernel git branch. This will be included in the next update kernel. Meanwhile, you can try the fixed kernel from OBS Kernel:openSUSE-13.2 repo. It'll take some time until the new commit appears in the repo and the package build finishes. Maybe try some time tomorrow. With the fixed kernel, the sound should work without extra workarounds. This bug is closed now. Feel free to reopen if the problem still persists with the newer kernel. openSUSE-SU-2015:0713-1: An update that solves 13 vulnerabilities and has 52 fixes is now available. Category: security (important) Bug References: 867199,893428,895797,900811,901925,903589,903640,904899,905681,907039,907818,907988,908582,908588,908589,908592,908593,908594,908596,908598,908603,908604,908605,908606,908608,908610,908612,909077,909078,909477,909634,910150,910322,910440,911311,911325,911326,911356,911438,911578,911835,912061,912202,912429,912705,913059,913466,913695,914175,915425,915454,915456,915577,915858,916608,917830,917839,918954,918970,919463,920581,920604,921313,922542,922944 CVE References: CVE-2014-8134,CVE-2014-8160,CVE-2014-8559,CVE-2014-9419,CVE-2014-9420,CVE-2014-9428,CVE-2014-9529,CVE-2014-9584,CVE-2014-9585,CVE-2015-0777,CVE-2015-1421,CVE-2015-1593,CVE-2015-2150 Sources used: openSUSE 13.2 (src): bbswitch-0.8-3.6.6, cloop-2.639-14.6.6, crash-7.0.8-6.6, hdjmod-1.28-18.7.6, ipset-6.23-6.6, kernel-docs-3.16.7-13.2, kernel-obs-build-3.16.7-13.7, kernel-obs-qa-3.16.7-13.1, kernel-obs-qa-xen-3.16.7-13.1, kernel-source-3.16.7-13.1, kernel-syms-3.16.7-13.1, pcfclock-0.44-260.6.2, vhba-kmp-20140629-2.6.2, virtualbox-4.3.20-10.2, xen-4.4.1_08-12.2, xtables-addons-2.6-6.2 |
Created attachment 621641 [details] The output from alsa-info.sh No sound comes from the internal speakers or the headphone jack of my laptop. The programs producing the sound (eg. Audacity, Rhythmbox) show a varying sound level, confirming that sound is being produced. Sound is not muted and is at 100%. There are no error messages in dmesg. The problem is not confined to OpenSUSE. I have tried Fedora which has the same problem. When I have searched the web for solutions, many have been suggested but none have solved my problem. I have successfully forced the analog card to be the first in the list by creating a /etc/modprobe.d/alsa-base.conf file: alias snd-card-0 snd-hda-intel alias snd-card-1 snd-hda-intel options snd-hda-intel id=Generic index=0 options snd-hda-intel id=HDMI index=1 This makes no difference to the sound. I have tried disabling pulseaudio, without improvement.