udev seems to create device names and symlinks ok for all the block and class devices such as hda* and tty* and it creates files in /dev/sound/ for snd-pcm-oss and snd-mixer-oss and midi but it doesn't create the symlinks in /dev and it creates those device files with entirely the wrong permissions: root:root 0600 when the default in udev.conf is 0660 and the permissions rule set specifies root:audio 0660 Reproducible: Always Steps to Reproduce: 1. boot 2. ensure snd-pcm-oss has been loaded 3. ls -l /dev/sound/dsp* Actual Results: crw------- 1 root root 14, 3 Jan 1 1970 dsp crw------- 1 root root 14, 19 Jan 1 1970 dsp1 Expected Results: crw-rw---- 1 root audio 14, 3 Jan 1 1970 dsp crw-rw---- 1 root audio 14, 19 Jan 1 1970 dsp1 i'm using udev-030, hotplug-20040401 and gentoo-dev-sources-2.6.7-r14
Why does your /dev entries have the date of 1970? What happens if you unload your module, the entries go away, right? Then load the module. What are the entries then? This works just fine for me here.
unloading the snd-pcm-oss module causes the files in /dev/sound to disappear reloading the module causes them to be recreated, still no sign of the symlinks i can't explain the date on the files - my system clock is correct but these just happen to have a datetime corresponding to '0' (i think).
I just discovered the udevtest program so I tried it on my dsp device. It seems to show that my rules are correct but that doesn't help because udev seems to flagrantly ignore the rules when asked to do it for real. root@dobbin linux # modprobe snd-pcm-oss root@dobbin linux # udevtest /sys/class/sound/dsp version 030 looking at '/class/sound/dsp' configured rule in '/etc/udev/rules.d/50-udev.rules' at line 79 applied, added symlink '%k' configured rule in '/etc/udev/rules.d/50-udev.rules' at line 79 applied, 'dsp' becomes 'sound/%k' creating device node '/dev/sound/dsp', major = '14', minor = '3', mode = '020660', uid = '0', gid = '18' root@dobbin linux # ls -l /dev/sound/dsp crw------- 1 root root 14, 3 Jan 1 1970 /dev/sound/dsp I'm not completely stuck here because of course I can chown and chmod but I really shouldn't have to.
Well i think i've worked out what was going wrong, udevd calls udev to actually create the device node and udev tries to read /dev/.udev.tdb only it isn't present for some reason.
ok, all completely my fault - i'd buggered up my initrd and boot scripts by fiddling around.