/dev/nvidiactl not found

I have been given a system with a Tesla C870 installed and the required software (note that I did not do the installation myself).

When I try to run code I get the error: NVIDIA: could not open the device file /dev/nvidiactl (No such file or directory).

System: Linux version 2.6.18-92.1.6.el5 (brewbuilder@norob.fnal.gov) (gcc version 4.1.2 20071124 (Red Hat 4.1.2-42)) #1 SMP Wed Jun 25 12:38:37 EDT 2008

I am accessing the system by ssh.

I do not currently have root access (although I can get it if necessary).

I have also tried running it in emulation mode, as currently my main interest is experimenting with CUDA, by compiling using nvcc -deviceemu, but when I try to run the code I get the same error as in non-emu mode.

I am aware these issues have been asked before, however I was unable to find a helpful answer.

I have read that X must have been started at least once since the last time the system was booted in order to load the kernel module, but running startx results in errors (is it possible to run X using this card?).

Thank you.

You do not need to start X, you only need to run the script provided in the CUDA 1.1 release notes. You must be root to run this script.

One way to make the settings permanent is to run the script in rc.local. Another is to search the forums for the RHEL init script that someone kindly contributed.

Thanks for the reply,

I am using CUDA 2.0Beta. There doesn’t seem to be any mention of a script in the 2.0 Release Notes.

Is this this contributed script you referred to?

So there is nothing I can do without root access, not even run in emulation mode?

Yep, that is the startup script I was referring to. It doesn’t matter if you use it for CUDA 1.0, 2.0 or whatever. All the script does is create the device nodes that CUDA uses to access the hardware. Device nodes allow direct access to hardware, so Linux security limits their creation to root only, sorry :(

Emulation mode should work fine without root access.

Thanks again.

I will ask for the script to be run by root, but I would also like to work out how to get emulation mode to work.

As I said, even when I compile with nvcc -deviceemu, when I try to run the output I get ‘NVIDIA: could not open the device file /dev/nvidiactl (No such file or directory).’

Some other people seem to have this problem (eg. 1, eg. 2)

… but then there are others who don’t seem to have any problem. Any ideas for my case?

Just in case anyone else is interested, I have solved this problem. In fact it wasn’t a problem at all - it does display the error, but then it runs the program on the CPU in emulation mode.

I ran the mentioned RHEL Init script, but the output was:

Loading nvidia kernel module: FATAL: Module nvidia not found.

Thanks in advance if you can help me with this

Cd to this directory

cd /lib/modules/`uname -r`/kernel/drivers/video

And check for the existance of the file nvidia.ko. That is the nvidia module. If it is not there, then either NVIDIA drivers have not been installed or the kernel has been upgraded since they were.

Thanks for the reply.

In that directory there is a directory called nvidia containing one file: nvidiafb.ko

I’m not sure, but I think that nvidiafb.ko is the nvidia framebuffer module that is part of the vanilla kernel and thus it has no relation to the nvidia module from the NVIDIA drivers.

A-ha! Great :-)

It turns out that whoever installed the driver on this system seems to have updated the kernel afterwards. I reinstalled it for the new kernel and the init script now works!

The simple programs that I wrote which worked using emulation mode are giving me strange answers now, but I’ll have to look into that further.

Thank again!