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
Steps to Reproduce:
2. ensure snd-pcm-oss has been loaded
3. ls -l /dev/sound/dsp*
crw------- 1 root root 14, 3 Jan 1 1970 dsp
crw------- 1 root root 14, 19 Jan 1 1970 dsp1
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
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.