From Bugzilla Helper: User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.2.1) Gecko/20030115 Description of problem: The following error occurs when tyring to compile an nvidia kernel module in Phoebe. Version-Release number of selected component (if applicable): How reproducible: Always Steps to Reproduce: 1. Download and untar http://download.nvidia.com/XFree86_40/1.0-4191/NVIDIA_kernel-1.0-4191.tar.gz 2. Type make Actual Results: In file included from /lib/modules/2.4.20-2.21/build/include/linux/mm.h:22, from /lib/modules/2.4.20-2.21/build/include/linux/slab.h:14, from nv-linux.h:63, from nv.c:14: /lib/modules/2.4.20-2.21/build/include/linux/sched.h:548:1: warning: "cpu_online" redefined In file included from /lib/modules/2.4.20-2.21/build/include/linux/sched.h:25, from /lib/modules/2.4.20-2.21/build/include/linux/mm.h:22, from /lib/modules/2.4.20-2.21/build/include/linux/slab.h:14, from nv-linux.h:63, from nv.c:14: /lib/modules/2.4.20-2.21/build/include/linux/smp.h:87:1: warning: this is the location of the previous definition In file included from /lib/modules/2.4.20-2.21/build/include/linux/vmalloc.h:8, from nv-linux.h:64, from nv.c:14: /lib/modules/2.4.20-2.21/build/include/linux/highmem.h: In function `bh_kmap': /lib/modules/2.4.20-2.21/build/include/linux/highmem.h:20: warning: pointer of type `void *' used in arithmetic nv.c: In function `nv_get_phys_address': nv.c:2250: warning: implicit declaration of function `pte_offset' nv.c:2250: invalid type argument of `unary *' make: *** [nv.o] Error 1 Expected Results: clean compile. Additional info: Others have reported no problems compiling this with the latest gcc so I am assuming it is a kernel header file problem found only in Phoebe.
the nvidia binary only kernel module won't work with phoebe at all. It'll require major modifications to have a remote chance of working. *** This bug has been marked as a duplicate of 73733 ***
erm, excuse me. There is NOTHING closed source or binary only related to this bug!
ehm excuse me but the nvidia binary only kernel module is a wonking huge binary only blob with a thin glue layer. And yes the glue layer will need changing, but also stuff inside the binary only blob.
tkmame: The Nvidia kernel module is comprised as 2 parts as Arjan states. 1) A small glue layer which binds the kernel to 2) a huge blob of binary only kernel code to which the source code is not available. Only Nvidia has this code, and only Nvidia can make changes to the source code of their driver because only Nvidia has the source code. The source code for the glue layer, which is pretty useless. While you may possibly modify it if Nvidia's license allows it, it is ultimately Nvidia's responsibility to decide what operating systems they support, what distribution version, and what kernel versions of that distribution. They will have to modify their kernel code from time to time as the Linux kernel changes, and they are the only ones whom can do so. What does this mean for end users? It means that from time to time, as the Linux kernel changes, the Nvidia binary only kernel modules will break, and will require Nvidia to update their code to work with newer kernels, both from Red Hat, and from other distributions as well, and also the mainstream Linux kernel. This is one of the hazards that a hardware vendor such as Nvidia must deal with when choosing to provide binary only driver modules for Linux, and it is one of the hazards that users of binary only kernel modules must face when choosing to use hardware that requires binary only kernel modules. Binary only kernel modules are not supported by Red Hat. This is not limited to video drivers.
yes I know (now). I was under the mistaken impression that the kernel module part was all open source. However, this does not necessarily mean that there is not a problem with the kernel header files. Looking at the error messages, it appears there is a multiply defined varible in the headers. However, since I was smacked down by Arjan I'll just shut up and trust you guys know what you are talking about. :)