Click to See Complete Forum and Search --> : Failed to initialise the NVIDIA kernel module
pjo123
07-11-2004, 12:54 PM
HI all
I installed the Nvidia 6106 drivers and set up my XF86Conf-4 file for twinview.
I started X and all worked 100% fine, both monitors worked perfectly etc.
Yes I thought, I'm beginning to grasp this linux at last.
Went to bed, got up today eager to continue in this newly discovered operating system. I booted up, typed startx, alas I got the following error.
------------------------------
(**) NVIDIA(0): TwinView enabled
(--) NVIDIA(0): Linear framebuffer at 0xC0000000
(--) NVIDIA(0): MMIO registers at 0xCE000000
(EE) NVIDIA(0): Failed to initialize the NVIDIA kernel module!
(EE) NVIDIA(0): *** Aborting ***
(II) UnloadModule: "nvidia"
(II) UnloadModule: "vgahw"
(II) Unloading /usr/X11R6/lib/modules/libvgahw.a
(EE) Screen(s) found, but none have a usable configuration.
Fatal server error:
no screens found
-------------------------------
Discided to re-install the pkg. This told me I had the drivers already installed and did I want to uninstall them etc. I selected Y and re-installed etc. Then everything worked fine. Until I shut down and re-booted. Then I got the same error.
Anyone shed any light on this problem please, please note, I'm very new to Linux.
Running Mandrake10 with 2.6.3-15 kernel. FX5200 128mb card.
best
Phil
bwkaz
07-11-2004, 01:15 PM
Read the nVidia README:
Q: My X server fails to start, and my X log file contains the error:
"(EE) NVIDIA(0): Failed to initialize the NVIDIA kernel module!"
A: Nothing will work if the NVIDIA kernel module does not function
properly. If you see anything in the X log file like "(EE)
NVIDIA(0): Failed to initialize the NVIDIA kernel module!" then
there is most likely a problem with the NVIDIA kernel module.
First, you should verify that if you installed from rpm that
the rpm was built specifically for the kernel you are using.
You should also check that the module is loaded ('/sbin/lsmod');
if it is not loaded try loading it explicitly with 'insmod' or
'modprobe' (be sure to exit the X server before installing a new
kernel module). If you receive errors about unresolved symbols,
then the kernel module has most likely been built using header files
for a different kernel revision than what you are running. You can
explicitly control what kernel header files are used when building
the NVIDIA kernel module with the --kernel-include-dir option (see
`sh NVIDIA-Linux-x86-1.0-6106-pkg1.run --advanced-options`
for details).
Please note that the convention for the location of kernel header
files changed approximately at the time of the 2.4.0 kernel release,
as did the location of kernel modules. If the kernel module fails to
load properly, modprobe/insmod may be trying to load an older kernel
module (assuming you have upgraded). cd'ing into the directory with
the new kernel module and doing 'insmod ./nvidia.o' may help.
Another cause may be that the /dev/nvidia* device files may be missing.
Finally, the NVIDIA kernel module may print error messages indicating
a problem -- to view these messages please check /var/log/messages, or
wherever syslog is directed to place kernel messages. These messages
are prepended with "NVRM". Most likely, you don't have the nVidia kernel module loaded at all, or you don't have the proper device nodes available in /dev (you need /dev/nvidiactl and /dev/nvidia0 at least).
pjo123
07-11-2004, 02:02 PM
Many thanks. I did read the readme but missed that bit :)
best
Phil
pjo123
07-11-2004, 05:17 PM
Still having problems.
It's the module not loading. I re-installed the drivers, using the option to force it to use the latest kernel version, shut down, turned the socket off on the wall, then restarted and everything was ok.
Thought it was fixed. Have rebooted numerous times without problems. Booting into win XP a few times to check things like what monitor refresh rate I was running at, rebooted Linux, no problems at all.
Then on one reboot, message re-appeared. Sure enough checking what modules were loaded showed it wasn't there.
Typing: modprobe nvidia
sorted the problem and allowed me to startx.
But am confused as to why it sometimes doesn't get loaded and how I can get around this?
best
Phil
JohnT
07-11-2004, 05:27 PM
Just place the command /sbin/modprobe nvidia in your modules start-up file. I use Slack and its in /etc/rc.d/rc.modules, but it will be different in MDK, location should be similar though.
Try /etc/modules.conf for 2.4 or /etc/modprobe.conf for 2.6
pjo123
07-11-2004, 05:37 PM
Many thanks
best
Phil
JohnT
07-11-2004, 05:40 PM
Your welcome.:D
bwkaz
07-11-2004, 08:20 PM
Driver version 6106 has an alias hardcoded into it so that the nVidia module gets loaded (during hotplug) for any hardware that has a vendor ID of nVidia, and a class ID of VGA. It sounds like this wasn't behaving properly for you on some bootups...
But I'm not sure why it wouldn't work. Unless hotplug or something didn't get run...
pjo123
07-12-2004, 10:16 AM
Odd.
/etc/hotplug directory is there but there's no hotplug module loaded and `ps` reports no hotplug process running.
will investifate further. (but at least nvidia card works as per JohnT's instructions)
Thanks
phil
bwkaz
07-12-2004, 08:50 PM
That's normal.
Hotplug is not a module, it's a yes-or-no-only configuration setting.
There is also no hotplug daemon or anything. The kernel just executes /sbin/hotplug (or whatever filename is stored in /proc/sys/kernel/hotplug), with the environment set up a certain way. /sbin/hotplug inspects that environment and responds to whatever happened in kernel space.
The other thing that hotplug does is, while your boot scripts are running, one of them has it cold-plug all the hardware that exists in your machine at that time (it runs through /sys/somewhere). One of the scripts in /etc/hotplug (it has pci in the name) runs for each PCI device in your system, and loads the proper module based on the built-in alias in each module (actually the aliases are used by depmod to build /lib/modules/<kernel version>/modules.pcimap, which is inspected by the pci hotplug script). The pci hotplug script also uses this same file if you actually have a hotpluggable PCI bus, but most people don't (they just use it for cold-plugging, AKA hardware detection at boot time).