Skip to contentSkip to conversation

PROBLEM: NVidia drivers with 2.5 kernel

DISCUSSION Brian Davids 2 participants 2 messages May 30, 2002

lore
Share & tools
lore
#0 lore raw
Quoted 5 lines

Is there any method to compile NVidia drivers with linux kernel 2.5.18?
When I begin to compile them, they write
"error This driver does not support 2.5.x development kernels!" Is there any solution to make it work?

There was a patch to nVidia's v.2880 drivers tested on kernel 2.5.15 posted on May 13 which you can find here:
http://www.uwsg.iu.edu/hypermail/linux/kernel/0205.1/1034.html

Brian Davids

#1 lore raw
Quoted 3 lines

There was a patch to nVidia's v.2880 drivers tested on kernel 2.5.15 posted on May 13 which you can find here:
http://www.uwsg.iu.edu/hypermail/linux/kernel/0205.1/1034.html

Attached is a version forward ported for:

o linux kernel 2.5.19
o NVIDIA_kernel-1.0-2960

I'm running it on a Dell Inspiron 8000. Besides 2.5.19 being sluggish as hell and that the HDIO_SET_32BIT ioctl seem not to work, quake2 runs like hell ;)

Cheers,
Roberto Nibali, ratz

Signature · 1 line
echo '[q]sa[ln0=aln256%Pln256/snlbx]sb3135071790101768542287578439snlbxq'|dc
nv-linux.h +1 -1
diff -ur NVIDIA_kernel-1.0-2960/nv-linux.h NVIDIA_kernel-1.0-2960-2.5.19/nv-linux.h
@@ -38,7 +38,7 @@
 #elif LINUX_VERSION_CODE < KERNEL_VERSION(2, 5, 0)
 #  define KERNEL_2_4
 #elif LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 0)
-#  error This driver does not support 2.5.x development kernels!
+//#  error This driver does not support 2.5.x development kernels!
 #  define KERNEL_2_5
 #else
 #  error This driver does not support 2.6.x or newer kernels!
nv.c +52 -2

115 lines not on this page · raw message

os-interface.c +27 -8
diff -ur NVIDIA_kernel-1.0-2960/os-interface.c NVIDIA_kernel-1.0-2960-2.5.19/os-interface.c
@@ -1458,9 +1458,14 @@
     uaddr = *priv;
 
     /* finally, let's do it! */
-    err = remap_page_range( (size_t) uaddr, (size_t) paddr, size_bytes, 
+    
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 5, 0)
+    err = remap_page_range( (size_t) uaddr, (size_t) paddr, size_bytes,
+                           PAGE_SHARED);
+#else
+    err = remap_page_range( kaddr, (size_t) uaddr, (size_t) paddr, size_bytes,
                             PAGE_SHARED);
-
+#endif
     if (err != 0)
     {
         return (void *) NULL;
@@ -1485,10 +1490,14 @@
 
     uaddr = *priv;
 
-    /* finally, let's do it! */
-    err = remap_page_range( (size_t) uaddr, (size_t) start, size_bytes, 
+    /* finally, let's do it! */ 
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 5, 0)
+    err = remap_page_rage( (size_t) uaddr, (size_t) start, size_bytes,
+                          PAGE_SHARED);    
+#else
+    err = remap_page_range( *priv, (size_t) uaddr, (size_t) start, size_bytes, 
                             PAGE_SHARED);
-
+#endif
     if (err != 0)
     {
         return (void *) NULL;
@@ -2032,15 +2041,25 @@
         return RM_ERROR;
 
     agp_addr = agpinfo.aper_base + (agp_data->offset << PAGE_SHIFT);
-
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 5, 0)
     err = remap_page_range(vma->vm_start, (size_t) agp_addr, 
                            agp_data->num_pages << PAGE_SHIFT,
 #if defined(IA64)
                            vma->vm_page_prot);
 #else
                            PAGE_SHARED);
-#endif
-        
+#endif /* IA64 */
+
+#else
+    err = remap_page_range(vma,
+                          vma->vm_start, (size_t) agp_addr, 
+                           agp_data->num_pages << PAGE_SHIFT,
+#if defined(IA64)
+                           vma->vm_page_prot);
+#else
+                           PAGE_SHARED);
+#endif /* IA64 */
+#endif /* LINUX_VERSION_CODE */
     if (err) {
         printk(KERN_ERR "NVRM: AGPGART: unable to remap %lu pages\n",
                (unsigned long)agp_data->num_pages);