https://bugzilla.redhat.com/show_bug.cgi?id=1121719
Please describe the problem and give information here in this bugzilla. Also, give alsa-info.sh outputs on both working and non-working cases. Run the script with --no-upload option and attach the outputs.
Description of problem: There is no sound with kernel 3.15.5,3.15.6 and 3.15.7 Version-Release number of selected component (if applicable): 3.15.5 3.15.6 3.15.7 How reproducible: Always Steps to Reproduce: 1. Boot 3.15.5,3.15.6 or 3.15.7 kernel 2. 3. Actual results: No sound. Expected results: Sound should be ok. Additional info: With kernel 3.14.8 there is no problem
Created attachment 145271 [details] alsa info for kernel 3.14.8
Created attachment 145281 [details] alsa info for kernel 3.15.7
The speaker volume is zero by some reason. Try to adjust it. % amixer -c1 set Speaker 100%
Thank you Takashi, % amixer -c1 set Speaker 100% Invalid card number. However % amixer -c0 set Speaker 100% is working until next reboot.
So someone resets the speaker volume wrongly. Is it PulseAudio?
How can I find out ? Why this is not happening for kernel 3.14.8 ?
(In reply to Ionut Radu from comment #8) > How can I find out ? Try to boot without PulseAudio. There can be other mixer state initialization (e.g. some udev rules does it). They are usually just calling alsactl restore, so you'd need to adjust the mixer once, then save it via "alsactl store" as root, and retest. > Why this is not happening for kernel 3.14.8 ? The old kernel didn't give the information that volume = 0 is mute. The newer driver tells it, and it *might* confuse something.
I wasn't able to boot without pulseaudio. I've uninstalled it but got no sound volume icon in the panel and got skype unistalled too. Have no sound with pulseaudio uninstalled. "alsactl store" doesn't fix the issue. I'll stick with kernel 3.14.8
I've also tried to add the line to "/etc/rc.local" but it hasn't worked.
You can boot in runlevel 3 without graphics, and login as root. There should be no PulseAudio running there. Then you can check whether the speaker volume is set up properly. If not, adjust, store and retest. Once after it's confirmed, you can start PulseAudio manually there. Invoke with verbose options and log the PA messages to a file. Then check whether the speaker volume is set to zero by PA. If yes, analyze the PA log.
Thank you Takashi, I've done that but it looks alsa is no longer working : % alsamixer ALSA lib dlmisc.c:252:(snd1_dlobj_cache_get) Cannot open shared library /usr/lib64/alsa-lib/libasound_module_ctl_pulse.so cannot open mixer: No such device or address I've also tried % mp3-cmdline -a alsa file.mp3 and it didn't work. It said there is no audio device that it can use. It looks like I have an alsa-pulse plugin, not the real alsa: % rpm -qa | grep alsa alsa-plugins-pulseaudio-1.0.27-2.fc20.i686 alsa-lib-1.0.27.2-2.fc20.i686 alsa-utils-1.0.27.2-4.fc20.x86_64 alsa-lib-1.0.27.2-2.fc20.x86_64 alsa-lib-devel-1.0.27.2-2.fc20.x86_64 alsa-tools-firmware-1.0.27-3.fc20.x86_64 alsa-firmware-1.0.27-2.fc20.noarch
I've also noticed that with the working kernel there are 3 devices in alsa-info : **** List of PLAYBACK Hardware Devices **** card 0: Intel [HDA Intel], device 0: CONEXANT Analog [CONEXANT Analog] Subdevices: 1/1 Subdevice #0: subdevice #0 card 0: Intel [HDA Intel], device 1: Conexant Digital [Conexant Digital] Subdevices: 1/1 Subdevice #0: subdevice #0 card 0: Intel [HDA Intel], device 3: HDMI 0 [HDMI 0] Subdevices: 1/1 Subdevice #0: subdevice #0 While with not-working kernel the Conexant Digital device is missing. Maybe this is the problem: **** List of PLAYBACK Hardware Devices **** card 0: Intel [HDA Intel], device 0: CX20561 Analog [CX20561 Analog] Subdevices: 1/1 Subdevice #0: subdevice #0 card 0: Intel [HDA Intel], device 3: HDMI 0 [HDMI 0] Subdevices: 1/1 Subdevice #0: subdevice #0
Created attachment 145601 [details] alsamixer kernel 3.14.8
Created attachment 145611 [details] alsamixer kernel 3.15.7
When I've uninstalled PulseAudio I've also uninstalled alsa-plugins-pulseaudio-1.0.27-2.fc20.x86_64 and that was the reason of alsamixer not working on both runlevel 3 and 5. For kernel 3.14.8 the alsamixer is missing the "speaker". See the images attached.
The behavior on 3.14 kernel isn't interesting any more. It works, we know. And the missing "Speaker" mixer on 3.14 is also the intentional behavior; 3.14 has a completely different driver implementation. So, let's concentrate on the behavior with 3.15.x kernel.
Ok, Notes: - I can't use alsamixer as root in runlevel 3 or 5, I get : # alsamixer ALSA lib pulse.c:243:(pulse_connect) PulseAudio: Unable to connect: Connection refused cannot open mixer: Connection refused - However as root I can use amixer and alsactl store, but after reboot speaker volume is again 0 - I've manually changed volume in /var/lib/alsa/asound.state but it didn't work, probably when using "reboot" the file gets overridden. The only solution I can think now is to autostart "amixer" on Mate Desktop load. Don't know how to do that yet.
The issue above is happening on a Lenovo laptop used by my wife, I have noticed that on my Lenovo laptop from work I have the same problem, but didn't notice until now because of using the headphones.
Created attachment 145671 [details] alsa info kernel 3.15.7 for the laptop from work
You need to pass -c0 option to alsamixer, otherwise it accesses via pulse plugin. If /var/lib/alsa/asound.state contains the speaker volume zero (and suppose it's non-zero after "alsactl store"), something must have written it at shutdown/reboot. Check whether it's the case.
Yes, by default alsamixer accesses pulse plugin but pressing F6 allows to choose HDA Intel I did more testing on laptop from work. Un-installed PulseAudio, set speaker volume to 100% through alsamixer and rebooted and the volume remained at 100% after reboot, so it looks like PulseAudio is the culprit.
OK, thanks. Then the next step is to get a verbose log from PulseAudio at its startup. The mute of speaker is usually done by PA when it finds the jack detection for the headphone, etc. But, in this case, the jack state is "false" according to alsa-info.sh output. So, I wonder what triggers it at all. Let's see.
Created attachment 145751 [details] pulse audio log for the laptop from work Please check this PA log. Note that I've killed it to do more testing
Unfortunately the audio issue of the laptop from work is different from the issue of the other laptop. Laptop from work : - if booted with headphones plugged, speaker volume is set to 0. There is no sound when headphones are unplugged - if booted with headphones u-plugged, speaker volume is 100 but headphone volume is 0. When the headphones are plugged, the volumes levels are swapped between headphone and speaker. The same happens if the headphones are now unplugged (volumes are swapped) The other laptop: - never had headphones plugged, still headphone volume is 100 and speaker volume is 0. I recommend to concentrate on the other laptop issue which is worst.
Try to logout and go to runlevel 3, then remove once ~/.config/pulse/* and/or ~/.pulse* files/directories. The old PA configuration might conflict with the new driver. The fact that speaker=0% while headphone=100% is normal behavior of PA. PA turns on/off the volume depending on the jack state. Also, the patch below is a blind shot. It sets the missing TLV_DB_SCALE_MUTE bit for the master volume. It shouldn't matter much, but who knows...
Created attachment 145761 [details] Patch to fix missing vmaster TLV mute bit for cx5051
PA is really messed up. Why to turn on/off the volume depending on the jack state ? Sound won't come from headphone and speaker in the same time anyway even-though both volumes are 100%
0.069| 0.000) D: [pulseaudio][modules/alsa/module-alsa-card.c:374 report_jack_state()] Jack 'Headphone Jack' is now plugged in ( 0.069| 0.000) D: [pulseaudio][pulsecore/device-port.c:82 pa_device_port_set_available()] Setting port analog-output-speaker to status no ( 0.069| 0.000) D: [pulseaudio][pulsecore/core-subscribe.c:244 pa_subscription_post()] Dropped redundant event due to change event. ( 0.069| 0.000) D: [pulseaudio][modules/module-switch-on-port-available.c:165 port_available_hook_callback()] finding port analog-output-speaker ( 0.069| 0.000) D: [pulseaudio][modules/alsa/module-alsa-card.c:374 report_jack_state()] Jack 'Speaker Phantom Jack' is now plugged in ( 0.069| 0.000) D: [pulseaudio][modules/alsa/module-alsa-card.c:374 report_jack_state()] Jack 'Headphone Jack' is now plugged in ( 0.069| 0.000) D: [pulseaudio][pulsecore/device-port.c:82 pa_device_port_set_available()] Setting port analog-output-headphones to status yes seem headphone is plugged, you have to use hda-jack-sense-test to check whether Jack dectection is correct or inverted
Yes, there are 2 laptops with problems. That's the laptop from work. Please ignore that for now.
Created attachment 145911 [details] pulse audio log for cx5051 I've tried to use hda-jack-sense-test but there is none for Fedora 20: % sudo yum provides */hda-jack-sense-test Loaded plugins: fastestmirror, langpacks, refresh-packagekit Loading mirror speeds from cached hostfile * fedora: mirror2.hs-esslingen.de * rpmfusion-free: rpmfusion.famillecollet.com * rpmfusion-free-updates: rpmfusion.famillecollet.com * rpmfusion-nonfree: rpmfusion.famillecollet.com * rpmfusion-nonfree-updates: rpmfusion.famillecollet.com * updates: mirror2.hs-esslingen.de updates/20/x86_64/filelists_db | 17 MB 00:00:05 No matches found
I've plugged-in the headphone for cx5051 and observed that headphone volume is set to 100% while the speaker volume is set to 0%. When the headphone is un-plugged the speaker volume is set to 100% and headphone volume is 0% "So an workaround to this issue is to plug and then un-plug a headphone" The problem is only the initial state which is incorectly detected as "headphone plugged-in".
Takashi, I've tried your patch but it doesn't work. There is a lot of code for this exact sound card. Did you put the code in a proper place ? Please find the kernel with your patch here: https://www.dropbox.com/sh/8etif1hiljc56eb/AAAbp08q3B743_2CxRX2OLk_a Your patch_conexant.c file is much different from the one in kernel 3.15.8.
control.7 { iface MIXER name 'Headphone Playback Volume' value.0 74 value.1 74 comment { access 'read write' type INTEGER count 2 range '0 - 74' dbmin -9999999 dbmax 0 dbvalue.0 0 dbvalue.1 0 } } control.8 { iface MIXER name 'Headphone Playback Switch' value.0 true value.1 true comment { access 'read write' type BOOLEAN count 2 } } it rather strange that mindB of those headphone/speaker volume control is set to alsa -inf when there is a playback switch
That's alsa-info. The problem is with PulseAudio not alsa.
I've disabled jack detection through "Early Patching" but still headphone volume is 100% and speaker volume is 0% after reboot. However now plugging/unplugging the headphone has no effect, so the patching was applied successfully.
seem driver only use audio output node 0x10 in working version as stream=0 at node 0x11 you have to find out whether both audio output are working by swapping dac Node 0x10 [Audio Output] wcaps 0xc1d: Stereo Amp-Out R/L Control: name="Master Playback Volume", index=0, device=0 ControlAmp: chs=3, dir=Out, idx=0, ofs=0 Device: name="CONEXANT Analog", type="Audio", device=0 Amp-Out caps: ofs=0x4a, nsteps=0x4a, stepsize=0x03, mute=0 Amp-Out vals: [0x29 0x29] Converter: stream=8, channel=0 PCM: rates [0x560]: 44100 48000 96000 192000 bits [0xe]: 16 20 24 formats [0x1]: PCM Power states: D0 D1 D2 D3 Power: setting=D0, actual=D0 Node 0x11 [Audio Output] wcaps 0xc1d: Stereo Amp-Out R/L Amp-Out caps: ofs=0x4a, nsteps=0x4a, stepsize=0x03, mute=0 Amp-Out vals: [0x4a 0x4a] Converter: stream=0, channel=0
if your Lenovo really have spdif, you need to fixup pin default of node 0x1c Node 0x1c [Pin Complex] wcaps 0x400701: Stereo Digital Pincap 0x00000010: OUT Pin Default 0x400001f0: [N/A] Line Out at Ext N/A Conn = Unknown, Color = Unknown DefAssociation = 0xf, Sequence = 0x0 Misc = NO_PRESENCE Pin-ctls: 0x40: OUT Power states: D0 D1 D2 D3 Power: setting=D0, actual=D0 Connection: 1 0x12
as both HP and speaker are connected to node 0x10 in 3.14 but the use different node at 3.15 this may be regression of using generic parser https://git.kernel.org/cgit/linux/kernel/git/tiwai/sound.git/log/sound/pci/hda/patch_conexant.c Node 0x16 [Pin Complex] wcaps 0x400581: Stereo Pincap 0x0000001c: OUT HP Detect Pin Default 0x01214040: [Jack] HP Out at Ext Rear Conn = 1/8, Color = Green DefAssociation = 0x4, Sequence = 0x0 Pin-ctls: 0x00: Unsolicited: tag=37, enabled=1 Power states: D0 D1 D2 D3 Power: setting=D0, actual=D0 Connection: 2 0x10* 0x11 Node 0x1a [Pin Complex] wcaps 0x400501: Stereo Pincap 0x00010010: OUT EAPD EAPD 0x2: EAPD Pin Default 0x92170110: [Fixed] Speaker at Int Front Conn = Analog, Color = Unknown DefAssociation = 0x1, Sequence = 0x0 Misc = NO_PRESENCE Pin-ctls: 0x40: OUT Power states: D0 D1 D2 D3 Power: setting=D0, actual=D0 Connection: 2 0x10* 0x11
(In reply to Ionut Radu from comment #37) > I've disabled jack detection through "Early Patching" but still headphone > volume is 100% and speaker volume is 0% after reboot. However now > plugging/unplugging the headphone has no effect, so the patching was applied > successfully. How did you disable it? Passing "jack_detect = false" hint? One thing that would be helpful is to check whether the fake mute of cx5051 triggers the problem. Try to comment out the contents of add_cx5051_fake_mutes() in patch_conexant.c Does it make difference?
(In reply to Raymond from comment #40) > as both HP and speaker are connected to node 0x10 in 3.14 > but the use different node at 3.15 > > this may be regression of using generic parser No. Some conexant devices on 3.14 doesn't use the generic parser.
it is still possible to force the driver to use only node 0x10 by hacking spec->num_all_dacs=1 it is using generic parser as there are jack detection control and phantom jack Node 0x16 [Pin Complex] wcaps 0x400581: Stereo Control: name="Headphone Jack", index=0, device=0 Pincap 0x0000001c: OUT HP Detect Pin Default 0x01214040: [Jack] HP Out at Ext Rear Conn = 1/8, Color = Green DefAssociation = 0x4, Sequence = 0x0 Pin-ctls: 0xc0: OUT HP Unsolicited: tag=01, enabled=1 Power states: D0 D1 D2 D3 Power: setting=D0, actual=D0 Connection: 2 0x10* 0x11 Node 0x1a [Pin Complex] wcaps 0x400501: Stereo Control: name="Speaker Phantom Jack", index=0, device=0 Pincap 0x00010010: OUT EAPD EAPD 0x2: EAPD Pin Default 0x92170110: [Fixed] Speaker at Int Front Conn = Analog, Color = Unknown DefAssociation = 0x1, Sequence = 0x0 Misc = NO_PRESENCE Pin-ctls: 0x40: OUT Power states: D0 D1 D2 D3 Power: setting=D0, actual=D0 Connection: 2 0x10 0x11*
(In reply to Takashi Iwai from comment #41) > How did you disable it? Passing "jack_detect = false" hint? > Yes, actually I have used "jack_detect = no" hint. > One thing that would be helpful is to check whether the fake mute of cx5051 > triggers the problem. Try to comment out the contents of > add_cx5051_fake_mutes() in patch_conexant.c Does it make difference? Yes, it makes a difference. Now I have speaker volume 100% and headphone volume 0% on boot. You can find the new kernel on the same path as the previous, 3.15.8_2 folder. thank you, Ionut.
The removal of fake mutes had influence casually, just because it removes the mute switches. Just to be sure, try the following: - Enable add_cx5051_fake_muteS() and jack detection again - Go to runlevel 3, login, and make sure that pulseaudio is all killed - Start "alsamixer -c0", raise Headphone and Speaker to full and unmute. - Remove ~/.config/pulse - Login on another VT, and start pulseaudio manually there - Change to the previous VT and check the mixer status via "alsamixer -c0"
(In reply to Takashi Iwai from comment #45) > - Login on another VT, and start pulseaudio manually there > - Change to the previous VT and check the mixer status via "alsamixer -c0" Do you mean like an ssh session ? I don't have another computer to try that.
No, just go to Linux console without X graphics. Switch between VTs via alt-F1, alt-F2, etc.
>- Enable add_cx5051_fake_muteS() and jack detection again I have booted original 3.15.8 kernel and added a '#' before options snd-hda-intel patch=hda-init.fw in /etc/modprobe.d/snd_hda_intel.conf >- Go to runlevel 3, login, and make sure that pulseaudio is all killed >- Start "alsamixer -c0", raise Headphone and Speaker to full and unmute. >- Remove ~/.config/pulse There was no file here. Probably previously removed. Still I have used rm ~/.config/pulse/* just in case >- Login on another VT, and start pulseaudio manually there >- Change to the previous VT and check the mixer status via "alsamixer -c0" Speaker volume changed to 0%
I did that again because I was in a hurry and didn't remember if "changed back to previous VT" and now headphone volume changed to 0% and I even booted the original kernel 3.15.8 in runlevel 5 and no longer having audio issues.
Hrm, so the problem is gone somehow? It can be really a weird problem of PA that tried to restore / initialize the old status incompletely.
Probably, but where is the PA saving the old status ? There is no file in ~/.config/pulse ever.
Or do you have ~/.pulse/* ? It's the old config directory.
There is no ~/.pulse directory.
Check the pulseaudio log. At least, the log you attached contains the line: ( 0.130| 0.000) I: [pulseaudio][daemon/main.c:971 main()] Using state directory /home/ionut/.pulse.
You are right: ll ~/.pulse total 64 -rw-r--r--. 1 ionut ionut 32768 Aug 12 20:00 38369430fdca454486b998a252e8b9e7-card-database.tdb -rw-r--r--. 1 ionut ionut 43 Aug 12 20:20 38369430fdca454486b998a252e8b9e7-default-sink -rw-r--r--. 1 ionut ionut 42 Aug 12 20:20 38369430fdca454486b998a252e8b9e7-default-source -rw-r--r--. 1 ionut ionut 12288 Aug 13 18:58 38369430fdca454486b998a252e8b9e7-device-volumes.tdb lrwxrwxrwx. 1 ionut ionut 23 Jul 13 13:45 38369430fdca454486b998a252e8b9e7-runtime -> /tmp/pulse-d4krMmdgOMxU -rw-r--r--. 1 ionut ionut 12288 Jul 27 15:44 38369430fdca454486b998a252e8b9e7-stream-volumes.tdb The link that is pointing to /tmp is broken.
I'll wait for the next kernel release and if no longer having sound issue then you can resolve this bug.
It solved itself.