![]() |
|
|
#1 | |
|
Registered User
Join Date: Jul 2005
Location: Munich
Posts: 851
|
Hi!
For those of you Fedora Core 6 users who like to try out realtime preemption, but are not willing to patch, compile and install a kernel from scratch, Ingo Molnar is now maintaining approptiate kernel RPM packages. However, if you like to use the nvidia linux graphics driver, with the most recent precompiled -rt kernel, then you need to get around a few obstacles. Here is a step-by-step installation instruction: 0. Make sure your installation does 3D acceleration with a standard kernel (i.e. 2.6.19-1.2911.fc6) 1. Install the RT kernel: wget http://people.redhat.com/mingo/realt...9.rt8.i686.rpm wget http://people.redhat.com/mingo/realt...9.rt8.i686.rpm rpm -i kernel-rt-2.6.20-0119.rt8.i686.rpm rpm -i kernel-rt-devel-2.6.20-0119.rt8.i686.rpm 2. Modifiy "modpost" in order to accept non-GPL modules: 2a. Goto to the modpost directory Code:
cd /usr/src/kernels/2.6.20-0119.rt8-i686/scripts/mod Code:
if (!mod->gpl_compatible) check_for_gpl_usage(exp->export, basename, exp->name); Code:
gcc -o modpost modpost.c file2alias.c sumversion.c 3. Unpack, patch and compile the nvidia driver module Code:
cd $PATH_TO_NVIDIA_DRIVER_PACKAGE wget "http://www.nvnews.net/vbulletin/attachment.php?attachmentid=23993&d=1171124108" sh NVIDIA-Linux-x86-1.0-9746-pkg1.run --extract-only cd NVIDIA-Linux-x86-1.0-9746-pkg1/usr/src/nv patch -p1 < ../../../../patch-nv-1.0-9746_realtime-preempt.txt make SYSSRC=/usr/src/kernels/2.6.20-0119.rt8-i686 module saved the nvidia driver package. 4. Manually define the missing symbol entry for "paravirt_ops" Code:
PARAVIRT_OPS=`grep "D paravirt_ops" /boot/System.map-2.6.20-0119.rt8 | colrm 9` ld -m elf_i386 --defsym paravirt_ops=0x$PARAVIRT_OPS -r -o nvidia.ko nvidia.o nvidia.mod.o 5. Install the nvidia kernel module Code:
cp nvidia.ko /lib/modules/2.6.20-0119.rt8/kernel/drivers/video/ depmod -a 2.6.20-0119.rt8 Limitations This instruction has only beed tested with 32-bit FC6. It may work for 64-bit, but make sure to use "colrm 17" instead of "colrm 9" in step 4. Feedback appreciated Bernhard |
|
|
|
|
|
|
#2 |
|
Registered User
Join Date: May 2006
Posts: 13
|
Does 32bit fc6 not use gcc 4.1.1, or did Ingo start compiling with the newer compiler? The reason I ask is that I just went through the process of installing the latest driver on the rt8 kernel on an x86_64 system.
As for my experience on x86_64, I did not have to do most of what you wrote, but I did have to recompile the kernel itself, since the driver warned of being compiled with a different version of gcc than what the kernel was compiled with. I also had to change a couple of flags in nv.c, as described elsewhere on these boards, but I don't see that in your instructions. Since I'm not doing any virtualization or SELinux, I didn't have to do anything else. |
|
|
|
| Sponsored Ads - Guests Only | |
|
|
|
|
#3 | |||
|
Registered User
Join Date: Jul 2005
Location: Munich
Posts: 851
|
Quote:
paravirt_ops and won't run into troubles with GPL-only symbols. However, this post was intended to support Ingo's precompiled RPMs ... Quote:
compiler incompatibilities mostly apply to C++, AFAIK. Otherwise you would be in serious trouble with the nv-kernel.o object file that comes with the driver, or do you know which compiler nvidia used for it? When doing a "cat nv-kernel.o | strings | grep -i gcc", you will see a lot of "GCC: (GNU) 2.95.3 20010315 (release)" so the driver core might have been compiled with that stinking old version of gcc :-) Quote:
above already includes the change from SA_* to IRQF_*. regards Bernhard |
|||
|
|
|
|
|
#4 |
|
Registered User
Join Date: Jan 2003
Posts: 76
|
This seems like a real kluge & PITA.
Any idea when/if nvidia might release *fixed* 9631 binaries?
__________________
Fedora Core6/Linux 2.6.x nVidea driver: 9631 Asus P4PE motherboard Intel P4 2.8GHz 1.5GB PC2700 DDR Kingston Leadtek Ultra A250 GF4 4600 128MB with VIVO/TVO WinFast TV2000XP Deluxe Dell 1901FP 19" LCD Antec 400W Power Supply |
|
|
|
|
|
#5 |
|
Registered User
Join Date: Jul 2005
Location: Munich
Posts: 851
|
Hi!
Just to let you know, it is not anymore necessary to patch the nvidia kernel driver for version 1.0-9755 along with kernel 2.6.20-0119.rt8! The situation is that nvidia replaced the problematic semaphore synchronization method by "completions" some times ago, and the high latency causing "wbinvd" instruction (when PAT support is enabled) has been replaced in 2.6.19 by a fast and interruptible sequence of "clflush" instructions. However, you may still need to manually define missing symbols for pre-compiled kernels (see earlier post for an example). regards Bernhard |
|
|
|
|
|
#6 |
|
Registered User
Join Date: Aug 2004
Posts: 4
|
hallo,
howto use this with Kernel 2.6.21 ? modpost.c looks different: if (!mod->gpl_compatible) check_for_gpl_usage(exp->export, basename, exp->name); check_for_unused(exp->export, basename, exp->name); ' what shall i remove - all 3 lines ? i tested one time and i get this error during compile : scripts/mod/modpost.c:1172: Warning: »check_for_gpl_usage« defined, but not used scripts/mod/modpost.c:1197: Warning: »check_for_unused« defined, but not used Thanks CooSee ' Ya
__________________
" DIE NACKTHEIT IST DIE BESTE TARNUNG " |
|
|
|
|
|
#7 |
|
Registered User
Join Date: Jan 2008
Posts: 1
|
Last edited by crespowu; 01-18-08 at 04:13 AM. |
|
|
|
|
|
#8 | |
|
Registered User
Join Date: Feb 2009
Posts: 1
|
Quote:
Many Thanks Last edited by nathan3011; 03-25-09 at 06:24 AM. |
|
|
|
|
![]() |
| Most Popular NVIDIA Based Graphics Cards | |
|
|
| Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
| Thread Tools | |
|
|