| 19 Oct 2025 |
ElvishJerricco | right I'm not saying the rule is the problem | 19:12:47 |
ElvishJerricco | I'm saying I don't understand what has changed here | 19:13:01 |
dramforever | right but point is it's probably something about the uaccess redesign right | 19:13:08 |
ElvishJerricco | because even if /dev/snd/timer isn't tracked by udev, it should (I think?) still have that rule apply to it when any other sound device appears | 19:13:30 |
ElvishJerricco | anyway the fix for the test is probably just to check a different device, since something funky is going on with this one specifically | 19:16:35 |
ElvishJerricco | but I'm still concerned with what's going on with this device specifically | 19:16:45 |
dramforever | the device itself is normal, this is a fake "static node" device | 19:18:19 |
dramforever | when you access it the kernel loads the corresponding kernel module | 19:18:46 |
dramforever | the not normal part is udev not applying the permission to this placeholder device | 19:19:03 |
dramforever | * the device itself is normal, this is a fake, really placeholder "static node" device | 19:19:10 |
dramforever | but if that's the case this is a regression in sd 258, this means users can't trigger the module load anymore | 19:21:54 |
ElvishJerricco | dramforever: I think I'm going to learn something today :P I have never been clear on what "static device nodes" actually are. | 19:24:03 |
dramforever | so | 19:24:32 |
dramforever | you notice how you have /dev/snd/timer but lsmod has no snd-timer, right? | 19:24:45 |
dramforever | go head -c 0 /dev/snd/timer which opens the device, and closes | 19:24:59 |
dramforever | * go head -c 0 /dev/snd/timer which opens the device, and closes it | 19:25:01 |
dramforever | now you magically do have snd-timer loaded | 19:25:10 |
ElvishJerricco | ok | 19:25:50 |
ElvishJerricco | so, what, userspace creates fake device nodes, and the major/minor thing tells the kernel what it's supposed to be, and the kernel knows to load the corresponding module when it's accessed? | 19:26:26 |
dramforever | exactly | 19:26:55 |
ElvishJerricco | interesting | 19:27:01 |
dramforever | userspace knows what placeholders there could be by reading /lib/modules/*/modules.devname | 19:28:19 |
dramforever | and i think it loads module by a device number alias, so snd-timer is char-major-116-33 | 19:29:01 |
ElvishJerricco | so, running on systemd 257.9, I still see that udev doesn't recognize /dev/snd/timer as a device, and snd_timer is not in lsmod | 19:31:38 |
ElvishJerricco | so those things are the same | 19:31:41 |
dramforever | oh, right, https://www.freedesktop.org/software/systemd/man/latest/udev.html#static_node= | 19:31:50 |
dramforever | .... i thought i understood what this is but now i don't anymore | 19:32:33 |
ElvishJerricco | I mean it almost certainly has something to do with the uaccess changes | 19:34:41 |
ElvishJerricco | wat | 19:35:31 |
ElvishJerricco | In [2]: print(machine.execute("ls -lha /run/udev/static_node-tags/uaccess/")[1])
total 0
drwxr-xr-x 2 root root 80 Oct 19 19:34 .
drwxr-xr-x 3 root root 60 Oct 19 19:34 ..
lrwxrwxrwx 1 root root 12 Oct 19 19:34 snd\x2fseq -> /dev/snd/seq
lrwxrwxrwx 1 root root 14 Oct 19 19:34 snd\x2ftimer -> /dev/snd/timer
| 19:35:35 |