Bug 428537
Summary: | Pulseaudio no longer supports M-Audio Audiophile 24/96 | ||
---|---|---|---|
Product: | [Fedora] Fedora | Reporter: | Dennis Jacobfeuerborn <dennisml> |
Component: | pulseaudio | Assignee: | Lennart Poettering <lpoetter> |
Status: | CLOSED CURRENTRELEASE | QA Contact: | Fedora Extras Quality Assurance <extras-qa> |
Severity: | medium | Docs Contact: | |
Priority: | medium | ||
Version: | 9 | CC: | darrellpf, jfrieben, lkundrak, lpoetter, michel, pierre-bugzilla, rpm |
Target Milestone: | --- | ||
Target Release: | --- | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Fixed In Version: | Doc Type: | Bug Fix | |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2008-12-18 14:00:34 UTC | Type: | --- |
Regression: | --- | Mount Type: | --- |
Documentation: | --- | CRM: | |
Verified Versions: | Category: | --- | |
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
Cloudforms Team: | --- | Target Upstream Version: | |
Embargoed: | |||
Bug Depends On: | |||
Bug Blocks: | 235705 |
Description
Dennis Jacobfeuerborn
2008-01-13 00:38:46 UTC
audio device #1 works fine when opened as front:1 audio device #0 is problematic however. This looks like some ALSA issue. None of the normal ALSA devices like "front:0" seem to work. And if we open it as hw:0 ALSA insists in 12 channels, which PA cannot really make any sense of in terms of a channel map. i.e. the greatest thing we know is 8 channel audio where channels are positioned in a 7.1 pattern. 12 channels is just not known, and I have never seen anything like this before. There's something wrong with your ALSA. Try if upgrading ALSA fixes your problems. This should probably be reassigned to ALSA in some way. ALSA is the latest version in rawhide (1.0.15). What has changed in pulseaudio to expose this bug in ALSA? After all things work fine with 0.9.7. This is a "me too" Pulseaudio sound stopped working for me about a week ago. I run daily rawhide updates (eeeks, living on the edge). Gnome System/Admin/SoundCard detection shows Intel ICH6 with snd-intel8x0. Playing a test sound works. However, the sound control panel can't find any devices. padevchooser shows no default source or sink. pavucontrol just dies. Plugging in a USB camera/mic that used to work (but doesn't now) I get Jan 18 19:56:20 localhost kernel: usb 5-1: new full speed USB device using uhci_hcd and address 2 Jan 18 19:56:20 localhost kernel: usb 5-1: configuration #1 chosen from 1 choice Jan 18 19:56:22 localhost pulseaudio[2562]: alsa-util.c: Error opening PCM device hw:7: No such device Jan 18 19:56:22 localhost pulseaudio[2562]: module.c: Failed to load module "module-alsa-source" (argument: "device_id=7 source_name=alsa_input.usb_device_46d_8a9_noserial_if1_sound_card_0_alsa_capture_0"): initialization failed. Another "me too" I'm afraid. I've got the same sound card as #1 but using a x86_64 build and have the exact same problem. Managed to get something working by changing the default.pa file by commenting out: load-module module-hal-detect and uncommenting: load-module module-alsa-sink load-module module-alsa-source device=hw:1,0 This seemed to work but then broke again later so not sure if it was just a fluke so rolled back to 0.9.7 and it all works again. Looks like a kernel bug, not a pulseaudio bug: as with Darrell, my webcam (on a Thinkpad, using linux-uvc) also stopped working with the Rawhide kernel. Sound (Intel HDA) is also not working. Please disregard my comment -- turns out it's an SELinux bug (discussed on fedora-selinux-list already) A couple of corrections related to the last couple of bug entries. First, I can do sound card detection via the gnome control panel and do hear sound via my Intel ICH device. I don't know how that mechanism differs from alsa/pulseaudio, but it works. Second, I have selinux turned off, so it isn't selinux related. I'm now running kernel-2.6.24-2 and self-made 1.0.16rc1 alsa rpms and I still get the same error with pulseaudio. Disabling pulseaudio and using alsa directly works fine. Attempting to reassign to kernel, and see if they can be helpful if this is really ALSA issue. Maybe it would make sense to report this to (ALSA) upstream? (In reply to comment #10) > Maybe it would make sense to report this to (ALSA) upstream? That's why I was asking about the differences about PA 0.9.7 and 0.9.8 above. 0.9.7 worked fine after all so whatever changed there is either causing the problem or revealing it in ALSA. Knowing that would help to file a useful bug report upstream. Dennis: According to release notes: "Rework ALSA surround sound configuration completely" [1]. Sound to me like it would not be easily possible to identify a single change that would be responsible for that. [1] http://pulseaudio.org/milestone/0.9.8 Maybe not, but it should at least be possible to identify the failing ALSA function call, its parameters and the exact error code it returns so that a minimal testcase can be created and filed upstream. Agreed. I tought that comment #1 could be sufficient, but probably Lennart can be even more helpful here. Adding him to Cc list. My sound still doesn't work. There has been some discussion on the fedora-devel list, so I'm adding my pulseaudio -vv output here. As per the discussion on the list, I ensured there was no mention of sound devices in modules.conf I: main.c: PolicyKit refuses acquire-high-priority privilige. N: main.c: Called SUID root and real-time/high-priority scheduling was requested in the configuration. However, we lack the necessary priviliges: N: main.c: We are not in group 'pulse-rt' and PolicyKit refuse to grant us priviliges. Dropping SUID again. N: main.c: For enabling real-time scheduling please acquire the appropriate PolicyKit priviliges, or become a member of 'pulse-rt', or increase the RLIMIT_NICE/RLIMIT_RTPRIO resource limits for this user. I: main.c: High-priority scheduling enabled in configuration but now allowed by policy. Disabling forcibly. W: main.c: setrlimit(RLIMIT_NICE, (31, 31)) failed: Operation not permitted W: main.c: setrlimit(RLIMIT_RTPRIO, (9, 9)) failed: Operation not permitted I: main.c: Page size is 4096 bytes I: main.c: Fresh high-resolution timers available! Bon appetit! D: cli-command.c: Checking for existance of '/usr/lib/pulse-0.9/modules/module-hal-detect.so': success I: module-hal-detect.c: Trying capability alsa D: module-hal-detect.c: Not loaded device /org/freedesktop/Hal/devices/computer_alsa_timer D: module-hal-detect.c: Not loaded device /org/freedesktop/Hal/devices/computer_alsa_sequencer D: module-hal-detect.c: Not loaded device /org/freedesktop/Hal/devices/pci_8086_266e_sound_card_0_alsa_playback_4 D: module-hal-detect.c: Not loaded device /org/freedesktop/Hal/devices/pci_8086_266e_sound_card_0_alsa_capture_3 D: module-hal-detect.c: Not loaded device /org/freedesktop/Hal/devices/pci_8086_266e_sound_card_0_alsa_capture_2 D: module-hal-detect.c: Not loaded device /org/freedesktop/Hal/devices/pci_8086_266e_sound_card_0_alsa_capture_1 D: module-hal-detect.c: Loading module-alsa-sink with arguments 'device_id=0 sink_name=alsa_output.pci_8086_266e_sound_card_0_alsa_playback_0' D: alsa-util.c: Trying front:0... ALSA lib conf.c:3952:(snd_config_expand) Unknown parameters 0 ALSA lib pcm.c:2144:(snd_pcm_open_noupdate) Unknown PCM front:0 I: alsa-util.c: Couldn't open PCM device front:0: Invalid argument D: alsa-util.c: Trying surround40:0... ALSA lib conf.c:3952:(snd_config_expand) Unknown parameters 0 ALSA lib pcm.c:2144:(snd_pcm_open_noupdate) Unknown PCM surround40:0 I: alsa-util.c: Couldn't open PCM device surround40:0: Invalid argument D: alsa-util.c: Trying surround41:0... ALSA lib conf.c:3952:(snd_config_expand) Unknown parameters 0 ALSA lib pcm.c:2144:(snd_pcm_open_noupdate) Unknown PCM surround41:0 I: alsa-util.c: Couldn't open PCM device surround41:0: Invalid argument D: alsa-util.c: Trying surround50:0... ALSA lib conf.c:3952:(snd_config_expand) Unknown parameters 0 ALSA lib pcm.c:2144:(snd_pcm_open_noupdate) Unknown PCM surround50:0 I: alsa-util.c: Couldn't open PCM device surround50:0: Invalid argument D: alsa-util.c: Trying surround51:0... ALSA lib conf.c:3952:(snd_config_expand) Unknown parameters 0 ALSA lib pcm.c:2144:(snd_pcm_open_noupdate) Unknown PCM surround51:0 I: alsa-util.c: Couldn't open PCM device surround51:0: Invalid argument D: alsa-util.c: Trying surround71:0... ALSA lib conf.c:3952:(snd_config_expand) Unknown parameters 0 ALSA lib pcm.c:2144:(snd_pcm_open_noupdate) Unknown PCM surround71:0 I: alsa-util.c: Couldn't open PCM device surround71:0: Invalid argument D: alsa-util.c: Trying hw:0 as last resort... ALSA lib pcm_hw.c:1240:(_snd_pcm_hw_open) Invalid value for card E: alsa-util.c: Error opening PCM device hw:0: No such file or directory E: module.c: Failed to load module "module-alsa-sink" (argument: "device_id=0 sink_name=alsa_output.pci_8086_266e_sound_card_0_alsa_playback_0"): initialization failed. D: module-hal-detect.c: Not loaded device /org/freedesktop/Hal/devices/pci_8086_266e_sound_card_0_alsa_playback_0 D: module-hal-detect.c: Loading module-alsa-source with arguments 'device_id=0 source_name=alsa_input.pci_8086_266e_sound_card_0_alsa_capture_0' D: alsa-util.c: Trying front:0... ALSA lib conf.c:3952:(snd_config_expand) Unknown parameters 0 ALSA lib pcm.c:2144:(snd_pcm_open_noupdate) Unknown PCM front:0 I: alsa-util.c: Couldn't open PCM device front:0: Invalid argument D: alsa-util.c: Trying surround40:0... ALSA lib conf.c:3952:(snd_config_expand) Unknown parameters 0 ALSA lib pcm.c:2144:(snd_pcm_open_noupdate) Unknown PCM surround40:0 I: alsa-util.c: Couldn't open PCM device surround40:0: Invalid argument D: alsa-util.c: Trying surround41:0... ALSA lib conf.c:3952:(snd_config_expand) Unknown parameters 0 ALSA lib pcm.c:2144:(snd_pcm_open_noupdate) Unknown PCM surround41:0 I: alsa-util.c: Couldn't open PCM device surround41:0: Invalid argument D: alsa-util.c: Trying surround50:0... ALSA lib conf.c:3952:(snd_config_expand) Unknown parameters 0 ALSA lib pcm.c:2144:(snd_pcm_open_noupdate) Unknown PCM surround50:0 I: alsa-util.c: Couldn't open PCM device surround50:0: Invalid argument D: alsa-util.c: Trying surround51:0... ALSA lib conf.c:3952:(snd_config_expand) Unknown parameters 0 ALSA lib pcm.c:2144:(snd_pcm_open_noupdate) Unknown PCM surround51:0 I: alsa-util.c: Couldn't open PCM device surround51:0: Invalid argument D: alsa-util.c: Trying surround71:0... ALSA lib conf.c:3952:(snd_config_expand) Unknown parameters 0 ALSA lib pcm.c:2144:(snd_pcm_open_noupdate) Unknown PCM surround71:0 I: alsa-util.c: Couldn't open PCM device surround71:0: Invalid argument D: alsa-util.c: Trying hw:0 as last resort... ALSA lib pcm_hw.c:1240:(_snd_pcm_hw_open) Invalid value for card E: alsa-util.c: Error opening PCM device hw:0: No such file or directory E: module.c: Failed to load module "module-alsa-source" (argument: "device_id=0 source_name=alsa_input.pci_8086_266e_sound_card_0_alsa_capture_0"): initialization failed. D: module-hal-detect.c: Not loaded device /org/freedesktop/Hal/devices/pci_8086_266e_sound_card_0_alsa_capture_0 D: module-hal-detect.c: Not loaded device /org/freedesktop/Hal/devices/pci_8086_266e_sound_card_0_alsa_control__1 I: module-hal-detect.c: Loaded 0 modules. I: module.c: Loaded "module-hal-detect" (index: #0; argument: ""). I: module.c: Loaded "module-esound-protocol-unix" (index: #1; argument: ""). I: protocol-native.c: loading cookie from disk. I: module.c: Loaded "module-native-protocol-unix" (index: #2; argument: ""). I: module-volume-restore.c: starting with empty ruleset. I: module.c: Loaded "module-volume-restore" (index: #3; argument: ""). D: module-default-device-restore.c: No previous default sink setting, ignoring. D: module-default-device-restore.c: No previous default source setting, ignoring. I: module.c: Loaded "module-default-device-restore" (index: #4; argument: ""). I: module.c: Loaded "module-rescue-streams" (index: #5; argument: ""). I: module.c: Loaded "module-suspend-on-idle" (index: #6; argument: ""). D: cli-command.c: Checking for existance of '/usr/lib/pulse-0.9/modules/module-x11-publish.so': success D: module-x11-publish.c: using already loaded auth cookie. I: module.c: Loaded "module-x11-publish" (index: #7; argument: ""). D: cli-command.c: Checking for existance of '/usr/lib/pulse-0.9/modules/module-gconf.so': success I: module.c: Loaded "module-gconf" (index: #8; argument: ""). I: main.c: Daemon startup complete. D: module-hal-detect.c: dbus: interface=org.freedesktop.DBus, path=/org/freedesktop/DBus, member=NameAcquired FWIW I did some debugging to try to figure out why "front:0" can't be opened. The offending code is the following in alsa-util.c: if (require_exact_channel_number) { if ((ret = snd_pcm_hw_params_set_channels(pcm_handle, hwparams, c)) < 0) goto finish; } else { if ((ret = snd_pcm_hw_params_set_channels_near(pcm_handle, hwparams, &c)) < 0) goto finish; } In the case of "front:0" the function snd_pcm_hw_params_set_channels() get called with a value of "2" for the parameter c. This results in the error "Invalid argument" by ALSA. Also filed an ALSA bug here: https://bugtrack.alsa-project.org/alsa-bug/view.php?id=3846 Sound started working for me today with the post-freeze rawhide update pulseaudio-0.9.8-12.fc9.i386 None of the various volume controls (pulse, applet, etc) are working for me, but sound is definitely back. Nothing has changed. Pulseaudio still cannot access the mixer. By the way 0.9.10 is out; also in rawhide -- please look if it's any better. Upgrading to 0.9.10 did not fix the problem. There is progress on this in the upstream bug. Apparently the problem is that PA opens the device "front" which doesn't work but "plug:front" does. speaker-test -Dfront -c 2 -t wav => "invalid argument" speaker-test -Dplug:front -c 2 -t wav => correct sound output The question is how to tell PA to use the correct device or how to change the alsa settings that opening "front" does the RightThing(tm)? Its an issue with ALSA. It lacks any definition of a channel mapping for sound cards with > 8 channels. surround71: is the maximum supported. If PA has no idea about the channel mapping of a device it cannot make use of it. A possible fix is to pass the channel mapping manually via the channel_map argument to module-alsa-sink. However, much better would be if ALSA would learn what to do with 10 and 12ch sound cards and assign a sensible channel mapping so that we can auto detect it. Something like surround91: or surround111 is needed. In short: ALSA doesn't do > 8 channel audio without passing it manual information. PA just uses what ALSA provides. It's a limitation of ALSA, not so much of PA. This should be reported upstream of ALSA. I guess the question I have is why does this card work flawlessly with any other application but PA? I disabled PA and audacious, mplayer, the firefox flash plugin, xine, etc. work out of the box with ALSA but using ALSA directly means I have to live without the nice features PA provides such as app-specific volume control. The PA version in Fedora 8 didn't have problems with this card either. Why can't the current version not fall back to the old behavior when it detects an unsupported channel configuration? I don't really care about the > 8 channels, plain and simple stereo would be just fine and certainly better than having no audio output at all. Adding "load-module module-alsa-sink device=plug:front channels=2 channel_map=front-left,front-right" in /etc/pulse/default.pa seems to work for me. Changing version to '9' as part of upcoming Fedora 9 GA. More information and reason for this action is here: http://fedoraproject.org/wiki/BugZappers/HouseKeeping Lennart, I think I understand what you're saying but Dennis's point in comment #24 is still puzzling: why/how do apps other than PA seem to "do something sensible" notwithstanding ALSA's limitations re channel mapping? Can PA not be made to fall back to whatever behaviour they are using? The latest PA version in rawhide no longer has this problem and now seems to do the right thing. It now seems to work out of the box except for a skipping problem every minute or so but I that's a different issue which I'm planning to file a bug about separately. PA in F10 synthesizes a channel mapping if necessary and should thus support this soundcard just fine again. |