PROBLEM: NVidia drivers with 2.5 kernel
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
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
@@ -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
@@ -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);