http://bugzilla.suse.com/show_bug.cgi?id=1000625
http://bugzilla.suse.com/show_bug.cgi?id=1000625#c43
Franck Bui
Franck, I do not understand at all how this hack works. If you try to explain to me what it does and why this works I may consider adding it permanently to the NVIDIA packages.
Sure and sorry for not explaining earlier. udev has support for static devices, see man udev and search for the "static_node" option. I must admit that this part is poorly documented (IMHO). Basically such devices dont trigger any events (like nvidia ones) so regular rules don't apply to them. However when it starts, udev will look at the rules with a "static_node" options defined and will apply the permissions to the static devices/nodes defined by the option. It's also possible to use the "TAG" key for those device. It's pretty useful if you want to define the "uaccess" which is later used by logind to find devices whose accesses need to be granted to the logged in user. IOW using this rule: TAG+="uaccess", OPTIONS+="static_node=foo" allows one to mark the static device /dev/foo with the "uaccess" tag. Since static devices are not part of the udev DB, the fact that the device node has a tag is done by creating symlinks in /run/udev/static_node-tags/tag as it's described in the man page. But things are not so easy when it comes to NVIDIA ;) Indeed nvidia device nodes don't exist when udev is started (since they're not really static nodes after all: they're created manually by something). Therefore udev doesn't acccept to apply the "static" rule to them. And here comes the trick, I used a tmpfile snippet to create the symlinks manually. As I said a rule could be used but the nvidia nodes need to be present when udev is started (so very early). One way to do that would be to create the nodes inside from initrd. But I don't know what creates those nodes so I don't know if that could be doable. -- You are receiving this mail because: You are on the CC list for the bug.