Jump to content

NVidia drivers and the new kernels


liquidzoo
 Share

Recommended Posts

Ok, I upgraded to kernel-2.6.8.1-8mdk recently. This is the kernel that comes with 10.1 RC1 for those that don't know. Now I have a problem....The nvidia drivers won't install. Not only that, but when I boot into my older kernel (source is still installed) the drivers won't install there either (and they seem to have been uninstalled) due to a supposedly missing kernel.h file.

 

Ok, on to the nitty-gritty, so to speak. Here's the last few lines from my /var/log/nvidia-installer.log:

 

/root/tmp/selfgz7502/NVIDIA-Linux-x86-1.0-6111-pkg1/usr/src/nv/nv.c: In func

   tion `nv_acpi_event':

   /root/tmp/selfgz7502/NVIDIA-Linux-x86-1.0-6111-pkg1/usr/src/nv/nv.c:3697: er

   ror: `PM_SAVE_STATE' undeclared (first use in this function)

   /root/tmp/selfgz7502/NVIDIA-Linux-x86-1.0-6111-pkg1/usr/src/nv/nv.c:3697: er

   ror: (Each undeclared identifier is reported only once

   /root/tmp/selfgz7502/NVIDIA-Linux-x86-1.0-6111-pkg1/usr/src/nv/nv.c:3697: er

   ror: for each function it appears in.)

   make[4]: *** [/root/tmp/selfgz7502/NVIDIA-Linux-x86-1.0-6111-pkg1/usr/src/nv

   /nv.o] Error 1

   make[3]: *** [_module_/root/tmp/selfgz7502/NVIDIA-Linux-x86-1.0-6111-pkg1/us

   r/src/nv] Error 2

   make[2]: *** [modules] Error 2

   NVIDIA: left KBUILD.

   nvidia.ko failed to build!

   make[1]: *** [module] Error 1

   make: *** [module] Error 2

-> Error.

 

Can anyone help? These are the 6111 drivers, but it's the same message with the 6106 drivers.

 

[moved from Software by spinynorman]

Link to comment
Share on other sites

I don't think it is possible for a driver to spontanously uninstall :D. Do you still have the nvidia-installer command? If yes the driver should still be installed.

 

Try nvidia-installer -K. That way the driver isn't build

 

-K, --kernel-module-only

  Install a kernel module only, and don't uninstall the existing driver.  This

  is intended to be used to install kernel modules for additional kernels (in

  cases where you might boot between several different kernels).  To use this

  option, you must already have a driver installed, and the version of the

  installed driver must match the version of this kernel module.

 

Good luck

Link to comment
Share on other sites

1Try passing 'pci=routeirq' to the kernel at boot time. (by typing it in at the boot prompt without the quote marks)

 

2 Try installing the nvida driver from run level 1 (type: init 1 <as root>)

Make sure it is not already loaded using lsmod to check

 

 

3 If that does not work there is a patch that nvidia posted to the lkml by Terence Ripperda on Mon, 23 Aug 2004...

 

nv_enable_pci.patch

                                                                                                                                                                                                                                                               
--- nv/nv.c 2004-08-23 13:58:15.000000000 -0500
+++ nv.new/nv.c 2004-08-23 13:58:35.000000000 -0500
@@ -1225,6 +1225,7 @@
        {
            nv_state_t *nv = NV_STATE_PTR(&nv_linux_devices[i]);
            release_mem_region(nv->bar.regs.address, nv->bar.regs.size);
+            pci_disable_device(nv_linux_devices[i].dev);
        }
    }

@@ -3516,6 +3517,28 @@
        return -1;
    }

+    // enable io, mem, and bus-mastering in pci config space
+    if (pci_enable_device(dev) != 0)
+    {
+        nv_printf(NV_DBG_ERRORS,
+            "NVRM: pci_enable_device failed, aborting\n");
+        return -1;
+    }
+
+    // request ownership of our bars
+    // keeps other drivers from banging our registers.
+    // only do this for registers, as vesafb requests our framebuffer and will
+    // keep us from working properly
+    if (!request_mem_region(dev->resource[0].start,
+                            dev->resource[0].end - dev->resource[0].start + 1,
+                            "nvidia"))
+    {
+        nv_printf(NV_DBG_ERRORS,
+            "NVRM: pci_request_regions failed, aborting\n");
+        goto err_disable_dev;
+    }
+    pci_set_master(dev);
+
    /* initialize bus-dependent config state */
    nvl = &nv_linux_devices[num_nv_devices];
    nv  = NV_STATE_PTR(nvl);
@@ -3545,7 +3568,7 @@
        nv_printf(NV_DBG_ERRORS, "NVRM: Please check your BIOS settings.         \n");
        nv_printf(NV_DBG_ERRORS, "NVRM: [Plug & Play OS   ] should be set to NO  \n");
        nv_printf(NV_DBG_ERRORS, "NVRM: [Assign IRQ to VGA] should be set to YES \n");
-        return -1;
+        goto err_zero_dev;
    }

    /* sanity check the IO apertures */
@@ -3569,39 +3592,9 @@
                nv->bar.fb.address, nv->bar.fb.size);
        }

-        /* Clear out the data */
-        os_mem_set(nvl, 0, sizeof(nv_linux_state_t));
-
-        return -1;
-    }
-
-    // request ownership of our bars
-    // keeps other drivers from banging our registers.
-    // only do this for registers, as vesafb requests our framebuffer and will
-    // keep us from working properly
-    if (!request_mem_region(nv->bar.regs.address, nv->bar.regs.size, "nvidia"))
-    {
-        nv_printf(NV_DBG_ERRORS,
-            "NVRM: pci_request_regions failed, aborting\n");
-
-        /* Clear out the data */
-        os_mem_set(nvl, 0, sizeof(nv_linux_state_t));
-
-        return -1;
+        goto err_zero_dev;
    }

-    // enable io, mem, and bus-mastering in pci config space
-    if (pci_enable_device(dev) != 0)
-    {
-        nv_printf(NV_DBG_ERRORS,
-            "NVRM: pci_enable_device failed, aborting\n");
-
-        pci_release_regions(dev);
-        os_mem_set(nvl, 0, sizeof(nv_linux_state_t));
-
-        return -1;
-    }
-    pci_set_master(nvl->dev);

#if defined(NV_BUILD_NV_PAT_SUPPORT)
    if (nvos_find_pci_express_capability(nvl->dev))
@@ -3618,13 +3611,7 @@
    if (nv->bar.regs.map == NULL)
    {
        nv_printf(NV_DBG_ERRORS, "NVRM: failed to map registers!!\n");
-
-        pci_release_regions(dev);
-
-        /* Clear out the data */
-        os_mem_set(nvl, 0, sizeof(nv_linux_state_t));
-
-        return -1;
+        goto err_zero_dev;
    }
    nv->flags |= NV_FLAG_MAP_REGS_EARLY;
#endif
@@ -3641,6 +3628,15 @@
    num_nv_devices++;

    return 0;
+
+err_zero_dev:
+    os_mem_set(nvl, 0, sizeof(nv_linux_state_t));
+    release_mem_region(dev->resource[0].start,
+                       dev->resource[0].end - dev->resource[0].start + 1);
+
+err_disable_dev:
+    pci_disable_device(dev);
+    return -1;
}

int NV_API_CALL nv_no_incoherent_mappings

Edited by thinkliberty
Link to comment
Share on other sites

Ok, I found that for some reason I had the kernel source from 2.6.8.1.2mdk downloaded. I'm not sure why, but I installed it (rpm -ivh), booted back into that kernel and everything's fine now...

 

But this brings me to an interesting point and I'll make a post in Everything Linux about it.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

×
×
  • Create New...