Bug 532814
Summary: | Sound broken due to ConsoleKit not assigning ACLs for current user. | ||||||
---|---|---|---|---|---|---|---|
Product: | [Fedora] Fedora | Reporter: | Peter Robinson <pbrobinson> | ||||
Component: | udev | Assignee: | Harald Hoyer <harald> | ||||
Status: | CLOSED CURRENTRELEASE | QA Contact: | Fedora Extras Quality Assurance <extras-qa> | ||||
Severity: | high | Docs Contact: | |||||
Priority: | medium | ||||||
Version: | 12 | CC: | alex, harald, jmccann, lkundrak, lpoetter, mclasen, richard, wtogami | ||||
Target Milestone: | --- | Keywords: | Reopened, Triaged | ||||
Target Release: | --- | ||||||
Hardware: | All | ||||||
OS: | Linux | ||||||
Whiteboard: | |||||||
Fixed In Version: | Doc Type: | Bug Fix | |||||
Doc Text: | Story Points: | --- | |||||
Clone Of: | Environment: | ||||||
Last Closed: | 2009-12-03 21:27:10 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: | |||||||
Attachments: |
|
D: module-udev-detect.c: /dev/snd/controlC0 is accessible: no PA apparently comes to the conclusion that the audio device is not accessible, either because it is otherwise busy or the permissions are not right. Please reproduce this and provide the output of "getfacl /dev/snd/* /dev/dsp*", "id", "fuser -v /dev/snd/* /dev/dsp*" and "cat /proc/asound/card*/pcm*/sub*/status". All as root please. [root@neo ~]# getfacl /dev/snd/* /dev/dsp* getfacl: Removing leading '/' from absolute path names # file: dev/snd/by-path # owner: root # group: root user::rwx group::r-x other::r-x # file: dev/snd/controlC0 # owner: root # group: audio user::rw- group::rw- other::--- # file: dev/snd/hwC0D0 # owner: root # group: audio user::rw- group::rw- other::--- # file: dev/snd/pcmC0D0c # owner: root # group: audio user::rw- group::rw- other::--- # file: dev/snd/pcmC0D0p # owner: root # group: audio user::rw- group::rw- other::--- # file: dev/snd/pcmC0D1p # owner: root # group: audio user::rw- group::rw- other::--- # file: dev/snd/seq # owner: root # group: audio user::rw- group::rw- other::--- # file: dev/snd/timer # owner: root # group: audio user::rw- group::rw- other::--- getfacl: /dev/dsp*: No such file or directory [root@neo ~]# id uid=0(root) gid=0(root) groups=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 [root@neo ~]# fuser -v /dev/snd/* /dev/dsp* Cannot stat /dev/dsp*: No such file or directory Cannot stat /dev/dsp*: No such file or directory [root@neo ~]# cat /proc/asound/card*/pcm*/sub*/status closed closed closed closed [root@neo ~]# So yes, the logged in user has no access to the audio device, so this behaviour is expected. Note that only the user that is logged in on the currently active session as access to the audio devices, for security reasons, so that other users may not eavesdrop in what you play and what you say. there is (In reply to comment #3) > So yes, the logged in user has no access to the audio device, so this behaviour > is expected. > > Note that only the user that is logged in on the currently active session as > access to the audio devices, for security reasons, so that other users may not > eavesdrop in what you play and what you say. Why or how would this have changed during a yum upgrade from F-11 to F-12? There has been no other change. There is only ever one user logged in on the laptop. There is only one user even configured on the laptop. Even the guest option is removed. Is there a wiki page for how this should be fixed? I couldn't find anything in a quick look through the Fedora wiki (In reply to comment #4) > Why or how would this have changed during a yum upgrade from F-11 to F-12? > There has been no other change. There is only ever one user logged in on the > laptop. There is only one user even configured on the laptop. Even the guest > option is removed. Is there a wiki page for how this should be fixed? I > couldn't find anything in a quick look through the Fedora wiki This hasnt really changed. In fact, since we have ConsoleKit device ACLs follow the currently active user. I think that means since F10 or so things are this way. If you dont want this behaviour you can make yourself a member of the "audio" group in which case you will always have access to the device, regardless if you are logged in or not or your session is active or not. Anyway, there is no bug to fix here, closing. (In reply to comment #5) > (In reply to comment #4) > > > Why or how would this have changed during a yum upgrade from F-11 to F-12? > > There has been no other change. There is only ever one user logged in on the > > laptop. There is only one user even configured on the laptop. Even the guest > > option is removed. Is there a wiki page for how this should be fixed? I > > couldn't find anything in a quick look through the Fedora wiki > > This hasnt really changed. In fact, since we have ConsoleKit device ACLs follow > the currently active user. I think that means since F10 or so things are this > way. > > If you dont want this behaviour you can make yourself a member of the "audio" > group in which case you will always have access to the device, regardless if > you are logged in or not or your session is active or not. That still doesn't tell me how I can fix it properly. If ConsoleKit assigns the permissions why doesn't it do so and how do I fix it for PulseAudio, Lennart as usual you are completely correct yet have provided absolutely no help what so ever. Why isn't ConsoleKit applying the permissions? Ah, so you have been running PA on the active session and CK/HAL failed to set the ACLs right? Are you running a normal GNOME session via gdm or anything special via startx/some other DE? Is your sessoin listed properly in ck-list-sessions? BTW, comments like "as usual ..." are certainly a great way to ensure that I am particularly happy to help I login to standard gnome desktop using GDM. I also occasionally login to a Moblin session via gdm as well but this stopped working before I installed that. not sure if selinux could come into play but I don't see any sealerts. No idea why its called session2 as its the only login I've had since I booted the laptop up. ck-list-sessions reports: [perobinson@neo ~]$ ck-list-sessions Session2: unix-user = '500' realname = 'Peter Robinson' seat = 'Seat1' session-type = '' active = TRUE x11-display = ':0' x11-display-device = '/dev/tty1' display-device = '' remote-host-name = '' is-local = TRUE on-since = '2009-11-05T08:22:53.140185Z' login-session-id = '1' [perobinson@neo ~]$ This looks about correct. So it seems HAL didn't update the ACLs on the device nodes properly to match what CK says. if this is an acl problem, it goes to udev nowadays, no ? See /lib/udev/rules.d/70-acl.rules Oh, I thought this was about F11, but you are right. I have been dealing with a similar issue on F11 on IRC that day, which made me mix things up. Sorry. Please provide the output of "udevadm info -qall -n /dev/snd/controlC0". Have you modified the udev rules in any way? This bug appears to have been reported against 'rawhide' during the Fedora 12 development cycle. Changing version to '12'. More information and reason for this action is here: http://fedoraproject.org/wiki/BugZappers/HouseKeeping (In reply to comment #12) > Oh, I thought this was about F11, but you are right. I have been dealing with a > similar issue on F11 on IRC that day, which made me mix things up. Sorry. > > Please provide the output of "udevadm info -qall -n /dev/snd/controlC0". [root@neo ~]# udevadm info -qall -n /dev/snd/controlC0 P: /devices/pci0000:00/0000:00:1b.0/sound/card0/controlC0 N: snd/controlC0 S: char/116:8 S: snd/by-path/pci-0000:00:1b.0 E: UDEV_LOG=3 E: DEVPATH=/devices/pci0000:00/0000:00:1b.0/sound/card0/controlC0 E: MAJOR=116 E: MINOR=8 E: DEVNAME=/dev/snd/controlC0 E: ID_PATH=pci-0000:00:1b.0 E: ACL_MANAGE=1 E: DEVLINKS=/dev/char/116:8 /dev/snd/by-path/pci-0000:00:1b.0 > Have you modified the udev rules in any way? No. I've been offline for the last 10 or so days and with the various updates that were released in this time (kernel/pulseaudio etc) the sound is now working. I have no idea what fixed it. OK, closing then. Feel free to reopen if the problem resurfaces. |
Created attachment 367366 [details] Dell D630C alsa-info The kernel detects the sound card OK and all the /dev/snd devices are created but I get no sound. It previously worked in F-11. The gnome volume control only reports a Dummy device. Below is the details of running PA from a terminal and attached is the output from alsa-info. [perobinson@neo ~]$ pulseaudio -vvvvv I: main.c: setrlimit(RLIMIT_NICE, (31, 31)) failed: Operation not permitted I: main.c: setrlimit(RLIMIT_RTPRIO, (9, 9)) failed: Operation not permitted D: core-rtclock.c: Timer slack is set to 50 us. D: core-util.c: RealtimeKit worked. I: core-util.c: Successfully gained nice level -11. I: main.c: This is PulseAudio 0.9.19 D: main.c: Compilation host: x86_64-redhat-linux-gnu D: main.c: Compilation CFLAGS: -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -Wall -W -Wextra -pipe -Wno-long-long -Winline -Wvla -Wno-overlength-strings -Wunsafe-loop-optimizations -Wundef -Wformat=2 -Wlogical-op -Wsign-compare -Wformat-security -Wmissing-include-dirs -Wformat-nonliteral -Wold-style-definition -Wpointer-arith -Winit-self -Wdeclaration-after-statement -Wfloat-equal -Wmissing-prototypes -Wstrict-prototypes -Wredundant-decls -Wmissing-declarations -Wmissing-noreturn -Wshadow -Wendif-labels -Wcast-align -Wstrict-aliasing=2 -Wwrite-strings -Wno-unused-parameter -ffast-math -Wp,-D_FORTIFY_SOURCE=2 -fno-common -fdiagnostics-show-option D: main.c: Running on host: Linux x86_64 2.6.31.5-96.fc12.x86_64 #1 SMP Fri Oct 23 19:30:30 EDT 2009 D: main.c: Found 2 CPUs. I: main.c: Page size is 4096 bytes D: main.c: Compiled with Valgrind support: no D: main.c: Running in valgrind mode: no D: main.c: Optimized build: yes D: main.c: All asserts enabled. I: main.c: Machine ID is 939b35b154a92a48f77cba2849371b80. I: main.c: Session ID is 939b35b154a92a48f77cba2849371b80-1257285627.557717-1762728798. I: main.c: Using runtime directory /home/perobinson/.pulse/939b35b154a92a48f77cba2849371b80-runtime. I: main.c: Using state directory /home/perobinson/.pulse. I: main.c: Using modules directory /usr/lib64/pulse-0.9.19/modules. I: main.c: Running in system mode: no I: main.c: Fresh high-resolution timers available! Bon appetit! I: cpu-x86.c: CPU flags: MMX SSE SSE2 SSE3 SSSE3 SSE4_1 I: svolume_mmx.c: Initialising MMX optimized functions. I: remap_mmx.c: Initialising MMX optimized remappers. I: svolume_sse.c: Initialising SSE2 optimized functions. I: remap_sse.c: Initialising SSE2 optimized remappers. I: sconv_sse.c: Initialising SSE2 optimized conversions. D: memblock.c: Using shared memory pool with 1024 slots of size 64.0 KiB each, total size is 64.0 MiB, maximum usable slot size is 65472 D: database-tdb.c: Opened TDB database '/home/perobinson/.pulse/939b35b154a92a48f77cba2849371b80-device-volumes.tdb' I: module-device-restore.c: Sucessfully opened database file '/home/perobinson/.pulse/939b35b154a92a48f77cba2849371b80-device-volumes'. I: module.c: Loaded "module-device-restore" (index: #0; argument: ""). D: database-tdb.c: Opened TDB database '/home/perobinson/.pulse/939b35b154a92a48f77cba2849371b80-stream-volumes.tdb' I: module-stream-restore.c: Sucessfully opened database file '/home/perobinson/.pulse/939b35b154a92a48f77cba2849371b80-stream-volumes'. I: module.c: Loaded "module-stream-restore" (index: #1; argument: ""). D: database-tdb.c: Opened TDB database '/home/perobinson/.pulse/939b35b154a92a48f77cba2849371b80-card-database.tdb' I: module-card-restore.c: Sucessfully opened database file '/home/perobinson/.pulse/939b35b154a92a48f77cba2849371b80-card-database'. I: module.c: Loaded "module-card-restore" (index: #2; argument: ""). I: module.c: Loaded "module-augment-properties" (index: #3; argument: ""). D: cli-command.c: Checking for existance of '/usr/lib64/pulse-0.9.19/modules/module-udev-detect.so': success D: module-udev-detect.c: /dev/snd/controlC0 is accessible: no I: module-udev-detect.c: Found 1 cards. I: module.c: Loaded "module-udev-detect" (index: #4; argument: ""). D: cli-command.c: Checking for existance of '/usr/lib64/pulse-0.9.19/modules/module-bluetooth-discover.so': success D: dbus-util.c: Successfully connected to D-Bus system bus 5e55bde8bbb6202d8b4bb4174af07e87 as :1.194 D: bluetooth-util.c: dbus: interface=org.freedesktop.DBus, path=/org/freedesktop/DBus, member=NameAcquired I: module.c: Loaded "module-bluetooth-discover" (index: #5; argument: ""). D: cli-command.c: Checking for existance of '/usr/lib64/pulse-0.9.19/modules/module-esound-protocol-unix.so': success I: module.c: Loaded "module-esound-protocol-unix" (index: #6; argument: ""). I: module.c: Loaded "module-native-protocol-unix" (index: #7; argument: ""). D: cli-command.c: Checking for existance of '/usr/lib64/pulse-0.9.19/modules/module-gconf.so': success I: module.c: Loaded "module-gconf" (index: #8; argument: ""). I: module-default-device-restore.c: Saved default sink 'auto_null' not existant, not restoring default sink setting. I: module-default-device-restore.c: Saved default source 'auto_null.monitor' not existant, not restoring default source setting. I: module.c: Loaded "module-default-device-restore" (index: #9; argument: ""). I: module.c: Loaded "module-rescue-streams" (index: #10; argument: ""). D: module-always-sink.c: Autoloading null-sink as no other sinks detected. I: module-device-restore.c: Restoring volume for sink auto_null. I: sink.c: Created sink 0 "auto_null" with sample spec s16le 2ch 44100Hz and channel map front-left,front-right I: sink.c: device.description = "Dummy Output" I: sink.c: device.class = "abstract" I: sink.c: device.icon_name = "audio-card" D: core-subscribe.c: Dropped redundant event due to change event. I: source.c: Created source 0 "auto_null.monitor" with sample spec s16le 2ch 44100Hz and channel map front-left,front-right I: source.c: device.description = "Monitor of Dummy Output" I: source.c: device.class = "monitor" I: source.c: device.icon_name = "audio-input-microphone" D: module-null-sink.c: Thread starting up I: module.c: Loaded "module-null-sink" (index: #11; argument: "sink_name=auto_null sink_properties='device.description="Dummy Output"'"). I: module.c: Loaded "module-always-sink" (index: #12; argument: ""). I: module.c: Loaded "module-intended-roles" (index: #13; argument: ""). D: module-suspend-on-idle.c: Sink auto_null becomes idle, timeout in 5 seconds. I: module.c: Loaded "module-suspend-on-idle" (index: #14; argument: ""). I: client.c: Created 0 "ConsoleKit Session /org/freedesktop/ConsoleKit/Session6" D: module-console-kit.c: Added new session /org/freedesktop/ConsoleKit/Session6 I: module.c: Loaded "module-console-kit" (index: #15; argument: ""). I: module.c: Loaded "module-position-event-sounds" (index: #16; argument: ""). I: module.c: Loaded "module-cork-music-on-phone" (index: #17; argument: ""). D: dbus-util.c: Successfully connected to D-Bus session bus 5c738c753ecd7339d5adc6364af0a7fc as :1.179 D: main.c: Got org.pulseaudio.Server! I: main.c: Daemon startup complete. I: module-suspend-on-idle.c: Sink auto_null idle for too long, suspending ... D: sink.c: Suspend cause of sink auto_null is 0x0004, suspending D: core-subscribe.c: Dropped redundant event due to change event. I: client.c: Created 1 "Native client (UNIX socket client)" D: protocol-native.c: Protocol version: remote 16, local 16 I: protocol-native.c: Got credentials: uid=500 gid=500 success=1 D: protocol-native.c: SHM possible: yes D: protocol-native.c: Negotiated SHM: yes D: module-augment-properties.c: Looking for .desktop file for rhythmbox I: module-stream-restore.c: Restoring volume for sink input sink-input-by-media-role:music. I: resampler.c: Forcing resampler 'copy', because of fixed, identical sample rates. I: resampler.c: Using resampler 'copy' I: resampler.c: Using float32le as working format. D: memblockq.c: memblockq requested: maxlength=33554432, tlength=0, base=4, prebuf=0, minreq=1 maxrewind=0 D: memblockq.c: memblockq sanitized: maxlength=33554432, tlength=33554432, base=4, prebuf=0, minreq=4 maxrewind=0 I: sink-input.c: Created input 0 "Playback Stream" on auto_null with sample spec s32le 2ch 44100Hz and channel map front-left,front-right I: sink-input.c: media.name = "Playback Stream" I: sink-input.c: application.name = "Rhythmbox" I: sink-input.c: native-protocol.peer = "UNIX socket client" I: sink-input.c: native-protocol.version = "16" I: sink-input.c: media.role = "music" I: sink-input.c: application.process.id = "5532" I: sink-input.c: application.process.user = "perobinson" I: sink-input.c: application.process.host = "neo" I: sink-input.c: application.process.binary = "rhythmbox" I: sink-input.c: application.icon_name = "rhythmbox" I: sink-input.c: window.x11.display = ":0.0" I: sink-input.c: application.language = "en_GB.UTF-8" I: sink-input.c: application.process.machine_id = "939b35b154a92a48f77cba2849371b80" I: sink-input.c: application.process.session_id = "939b35b154a92a48f77cba2849371b80-1257285627.557717-1762728798" I: sink-input.c: module-stream-restore.id = "sink-input-by-media-role:music" I: protocol-native.c: Requested tlength=200.00 ms, minreq=10.00 ms D: protocol-native.c: Adjust latency mode enabled, configuring sink latency to half of overall latency. D: memblockq.c: memblockq requested: maxlength=4194304, tlength=38808, base=8, prebuf=0, minreq=3528 maxrewind=0 D: memblockq.c: memblockq sanitized: maxlength=4194304, tlength=38808, base=8, prebuf=0, minreq=3528 maxrewind=0 I: protocol-native.c: Final latency 200.00 ms = 90.00 ms + 2*10.00 ms + 90.00 ms D: sink-input.c: Requesting rewind due to uncorking D: sink.c: Suspend cause of sink auto_null is 0x0000, resuming D: module-suspend-on-idle.c: Sink auto_null becomes busy. D: protocol-native.c: Requesting rewind due to rewrite. D: protocol-native.c: Requesting rewind due to rewrite. D: protocol-native.c: Requesting rewind due to rewrite. D: protocol-native.c: Requesting rewind due to rewrite. D: protocol-native.c: Requesting rewind due to rewrite. D: protocol-native.c: Requesting rewind due to rewrite. D: protocol-native.c: Requesting rewind due to rewrite. D: protocol-native.c: Requesting rewind due to rewrite. D: sink-input.c: Requesting rewind due to corking D: module-suspend-on-idle.c: Sink auto_null becomes idle, timeout in 5 seconds. I: module-suspend-on-idle.c: Sink auto_null idle for too long, suspending ... D: sink.c: Suspend cause of sink auto_null is 0x0004, suspending