I sent this to the SBo mailing list, but figured that I would get a bit better coverage here.
----------------------------
I just realized a fix for a glitch with the new nvidia-driver and CUDA initialization. Since the slackbuild is already in "approved" and its not fatal unless you run CUDA/OpenCL programs, I'll fix this up on the next update. This issue popped up somewhere in the 331.xx drivers.
For those of you, as I do, who run BOINC, or another CUDA program, you may have wondered about "no usable GPUs found" message in the BOINC log. Turns out, some weird process in the way Nvidia does things now, since the introduction of nvidia-uvm.ko, prevents the creation of a required device node unless you first run your CUDA program as "root." This then creates the device node and all is then well as a regular user. You should see this in order to run CUDA:
Code:
$ ls -l /dev/nvidia-uvm
crw-rw-rw- 1 root root 248, 0 Jul 13 01:45 /dev/nvidia-uvm
A quick test program, as well as possible fixes, are in the References below. The question now is, how best to handle this in the slackbuild?
1. put this in doinst.sh
Code:
mknod -m 666 /dev/nvidia-uvm c 249 0
chgrp video /dev/nvidia-uvm
(or maybe 660?)
2. udev rule?
Code:
KERNEL=="nvidia_uvm", RUN+="/usr/bin/bash -c '/usr/bin/mknod -m 666 /dev/nvidia-uvm c $(grep nvidia-uvm /proc/devices | cut -d \ -f 1) 0; /usr/bin/chgrp video /dev/nvidia-uvm'"
3. Compile nvidia-modprobe by default (optional now) so that X userland can make the node, or invoke via doinst.sh if not.
Any comments and advice is appreciated.
References:
- https://devtalk.nvidia.com/default/t...-cuinit-cuda-/
- http://us.download.nvidia.com/XFree8...EADME/faq.html