I recently upgraded to 12.10. In the process, my laptop, which is a W520 in a dock, connected to 2 external monitors (the same monitors.. Dell U2400). I finally got the nvidia-experimental-310 driver working with both monitors. Everything was glorious for a few weeks, and then the thing decided to upgrade the kernel and I didn't realize it did that when I asked it to do the apt-get upgrade.

After realizing my mistake, I went back and tried reinstalling the nvidia driver, since I assumed it needed to be built against the current kernel again. I couldn't get either the nvidia-current or nvidia-experimental-310 drivers working (they booted into a black screen with a flashing cursor, or, in the case of the 310 driver, wouldn't let me enable my second screen).

I was able to get the nvidia-experimental-304 driver working, though. So, after some trial and error, I updated my xorg.conf file and rebooted. Now, however, I get the following error in my Xorg.0.log file:

[    16.023] (EE) Failed to load module "nvidia-experimental-304" (module does not exist, 0)

But, when I go to a virtual terminal, and run the following:

# modprobe nvidia-experimental-304
# /etc/init.d/lightdm restart

Everything now works as expected, except that the following still shows up in my Xorg.0.log file, even when X starts as I would expect it to:

[    16.023] (EE) Failed to load module "nvidia-experimental-304" (module does not exist, 0)

Can anyone tell me what I'm doing incorrectly? I'd like to get the module to automatically load on startup, so I can boot into X directly, without having to manually modprobe the module.

My xorg.conf file follows.


If I change the Driver "nvidia-experimental-304" to "nvidia" in my xorg.conf file, the system runs in low-graphics mode on reboot, with the following errors in the xorg.conf file:

[    17.147] (**) NVIDIA(0): Enabling 2D acceleration
[    17.163] (EE) NVIDIA(0): Failed to initialize the NVIDIA kernel module. Please see the
[    17.163] (EE) NVIDIA(0):     system's kernel log for additional error messages and
[    17.163] (EE) NVIDIA(0):     consult the NVIDIA README for details.
[    17.163] (EE) NVIDIA(0):  *** Aborting ***
[    17.163] (EE) NVIDIA(0): Failing initialization of X screen 0

syslog now shows:

Dec  3 12:55:03 corellia kernel: [   33.405620] e1000e 0000:00:19.0: irq 50 for MSI/MSI-X
Dec  3 12:55:03 corellia kernel: [   33.431116] nvidia: module license 'NVIDIA' taints kernel.
Dec  3 12:55:03 corellia kernel: [   33.431118] Disabling lock debugging due to kernel taint

# nvidia-settings: X configuration file generated by nvidia-settings
# nvidia-settings:  version 304.64  (buildd@papaya)  Fri Nov  9 10:49:08 UTC 2012

Section "ServerLayout"
    Identifier     "Layout0"
    Screen      0  "Screen0" 0 0
    InputDevice    "Keyboard0" "CoreKeyboard"
    InputDevice    "Mouse0" "CorePointer"
    Option         "Xinerama" "0"

Section "Files"

Section "InputDevice"
    # generated from default
    Identifier     "Mouse0"
    Driver         "mouse"
    Option         "Protocol" "auto"
    Option         "Device" "/dev/psaux"
    Option         "Emulate3Buttons" "no"
    Option         "ZAxisMapping" "4 5"

Section "InputDevice"
    # generated from default
    Identifier     "Keyboard0"
    Driver         "kbd"

Section "Monitor"
    # HorizSync source: edid, VertRefresh source: edid
    Identifier     "Monitor0"
    VendorName     "Unknown"
    ModelName      "DELL U2410"
    HorizSync       30.0 - 81.0
    VertRefresh     56.0 - 76.0
    Option         "DPMS"

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia-experimental-304"
    VendorName     "NVIDIA Corporation"
    BoardName      "Quadro 1000M"

Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    Option         "Stereo" "0"
    Option         "nvidiaXineramaInfoOrder" "DFP-5"
    Option         "metamodes" "DFP-5: nvidia-auto-select +1920+0, DFP-6: nvidia-auto-select +0+0"
    SubSection     "Display"
        Depth       24

Your driver should just be nvidia.

Driver "nvidia"

X doesn't load kernel modules. It loads X modules, which call a device. When that device is not present the kernel loads the module. Reference here, guard your eyes.

So by setting Driver "nvidia-experimental-304" your loading a X module that doesn't exist and it can't tell what kernel device it should load and then the kernel has no idea what module to load. The reason it works if you modprobe first is because the module is loaded. I would suspect that "some" nvidia things would not work that way though. (i.e. the module is loaded but the x driver isn't)

Here is a valid device section, please excuse the formatting.

Section "Device"
Identifier "Device1"
Driver "nvidia"
VendorName "NVIDIA Corporation"
BoardName "GeForce GT 330M"
BusID "PCI:1:0:0"
Screen 1

  • Loading the "nvidia" module produces the same error message, with "nvidia" in place of "nvidia-experimental-304". Previously, when I tried to load the nvidia-experimental-310 driver, I actually needed to put in "nvidia-experimental-310" in the Driver line, as it could never find the "nvidia" driver. – jwir3 Dec 3 '12 at 19:47
  • what source are you installing from? – coteyr Dec 3 '12 at 19:48
  • My mistake, the above isn't actually true. If I put "nvidia" on the Driver line, then it runs in low-graphics mode, and gives me the following error (see edit, above) – jwir3 Dec 3 '12 at 19:53
  • Actually, I'm not sure how to check and see what source I'm using. I think I'm using the ubuntu main package repository, but it could be a PPA. At one point, I remember trying an nvidia package from a PPA, but I'm pretty sure I'm using the canonical repo for this package now. – jwir3 Dec 3 '12 at 19:55
  • ok, now X is loading the nvidia X module, but the kernel module is not auto loading. What errors are in syslog? – coteyr Dec 3 '12 at 19:57

It turns out that after all of the reconfiguration, what was actually needed was a reinstallation of lightdm. The following commands did the trick (note: I had the linux source and headers, but for clarity, I'm adding the steps here in case anyone else has the same problem and might not have them installed):

sudo apt-get remove --purge nvidia-experimental-304 nvidia-settings-experimental-304
sudo apt-get install linux-source linux-headers-($uname -r)
sudo apt-get install nvidia-experimental-304 nvidia-settings-experimental-304
sudo apt-get install --reinstall lightdm

When I booted, this worked fine for me.

  • A quick note: I'm still going to give the answer to coteyr, since he helped me debug a few other things that were problematic. Moreover, I don't really like giving myself credit for something that was somewhat voodoo and random, anyway. :) – jwir3 Dec 4 '12 at 0:42

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.