FS#24362 - [udev] ALSA /dev/snd/seq: permission denied
Attached to Project:
Arch Linux
Opened by james morris (jwm-art) - Friday, 20 May 2011, 22:20 GMT
Last edited by Tom Gundersen (tomegun) - Saturday, 04 June 2011, 18:10 GMT
Opened by james morris (jwm-art) - Friday, 20 May 2011, 22:20 GMT
Last edited by Tom Gundersen (tomegun) - Saturday, 04 June 2011, 18:10 GMT
|
Details
[testing] /dev/snd/seq is should be in the audio group but
is in root group.
kernel26 2.6.39-1 lsmod|grep '^snd' | column -t snd_ice1712 57822 3 snd_ice17xx_ak4xxx 2364 1 snd_ice1712 snd_ak4xxx_adda 8797 2 snd_ice1712,snd_ice17xx_ak4xxx snd_cs8427 6673 1 snd_ice1712 snd_ac97_codec 110807 1 snd_ice1712 snd_pcm 71032 4 snd_ice1712,snd_ac97_codec snd_timer 18896 1 snd_pcm snd_page_alloc 7017 1 snd_pcm snd_i2c 3865 2 snd_ice1712,snd_cs8427 snd_mpu401_uart 5779 1 snd_ice1712 snd_rawmidi 18826 1 snd_mpu401_uart snd_seq_device 5100 1 snd_rawmidi snd 55336 14 snd_ice1712,snd_ak4xxx_adda,snd_cs8427,snd_ac97_codec,snd_pcm,snd_timer,snd_i2c,snd_mpu401_uart,snd_rawmidi,snd_seq_device ls /dev/snd -lh drwxr-xr-x 2 root root 60 May 20 21:43 by-path crw-rw----+ 1 root audio 116, 4 May 20 21:43 controlC0 crw-rw----+ 1 root audio 116, 3 May 20 21:43 pcmC0D0c crw-rw----+ 1 root audio 116, 2 May 20 21:43 pcmC0D0p crw------- 1 root root 116, 1 May 20 21:43 seq crw-rw----+ 1 root audio 116, 33 May 20 21:43 timer |
This task depends upon
Closed by Tom Gundersen (tomegun)
Saturday, 04 June 2011, 18:10 GMT
Reason for closing: Fixed
Additional comments about closing: udev-171-2 in testing.
Saturday, 04 June 2011, 18:10 GMT
Reason for closing: Fixed
Additional comments about closing: udev-171-2 in testing.
/dev/snd/seq is created a bit before the other nodes in /dev/snd (one sec on my system), but I'm not sure by whom yet.
Loading snd_seq fixes the problem, and the reason it worked before is that snd_seq_oss (that you probably don't need/want) pulls in snd_seq. A workaround is to put snd_seq in your modules array.
I'll let you know when I have found out what's happening.
The kernel creates the static /dev/snd/seq node (hence it is created a bit earlier than the other nodes that are created when the modules are inserted), and as with all kernel created nodes, ownership and permissions are root.root and 0600. Permissions are usually applied by udev when the snd_seq is loaded. However, udev should also apply permissions to the static nodes, which it does not do at the moment.
I submitted the attached patch upstream, please confirm that it works for you. I will add it to udev-170-2 once it has been applied upstream.
If anyone finds more cases like this, let me know.
Thanks for reporting!
James.
Thanks for testing!
-t
drwxr-xr-x 2 root root 60 May 29 09:30 by-path
crw-rw----+ 1 root audio 116, 4 May 29 09:30 controlC0
crw-rw----+ 1 root audio 116, 3 May 29 09:30 pcmC0D0c
crw-rw----+ 1 root audio 116, 2 May 29 09:30 pcmC0D0p
crw------- 1 root audio 116, 1 May 29 09:30 seq
crw-rw----+ 1 root audio 116, 33 May 29 09:30 timer
I reported it and will release a new udev with the correct patch when it appears upstream. In the meantime you could use my original rules file.
Thanks again for reporting!
~> ll /dev/snd | gr -e seq -e timer
crw------- 1 root audio 116, 1 May 31 10:12 seq
crw-rw----+ 1 root audio 116, 33 May 31 10:12 timer
~> pacman -Qo /lib/udev/rules.d/50-udev-default.rules
/lib/udev/rules.d/50-udev-default.rules is owned by udev 171-1
~> sed -n '40,42p' /lib/udev/rules.d/50-udev-default.rules
# sound
SUBSYSTEM=="sound", GROUP="audio", \
OPTIONS+="static_node=snd/seq", OPTIONS+="static_node=snd/timer"