nV News Forums

 
 

nV News Forums (http://www.nvnews.net/vbulletin/index.php)
-   NVIDIA Linux (http://www.nvnews.net/vbulletin/forumdisplay.php?f=14)
-   -   2.6.20-rt8 kernel patch (http://www.nvnews.net/vbulletin/showthread.php?t=87378)

Boomer 03-02-07 02:52 AM

2.6.20-rt8 kernel patch
 
I'm trying to install the nvidia driver on the kernel patched with this patch but it fails:

Code:

-> Building kernel module:
  executing: 'cd ./usr/src/nv; make module SYSSRC=/usr/src/kernels/linux-2.6.2
  0-rt8rt/ SYSOUT=/usr/src/kernels/linux-2.6.20-rt8rt/'...
 
  NVIDIA: calling KBUILD...
  make CC=cc  KBUILD_VERBOSE=1 -C /usr/src/kernels/linux-2.6.20-rt8rt/ SUBDIRS
  =/tmp/selfgz3570/NVIDIA-Linux-x86-1.0-9631-pkg1/usr/src/nv modules
  test -e include/linux/autoconf.h -a -e include/config/auto.conf || (                \
          echo;                                                                \
          echo "  ERROR: Kernel configuration is invalid.";                \
          echo "        include/linux/autoconf.h or include/config/auto.conf are mis
  sing.";        \
          echo "        Run 'make oldconfig && make prepare' on kernel src to fix it
  .";        \
          echo;                                                                \
          /bin/false)
  mkdir -p /tmp/selfgz3570/NVIDIA-Linux-x86-1.0-9631-pkg1/usr/src/nv/.tmp_vers
  ions
  rm -f /tmp/selfgz3570/NVIDIA-Linux-x86-1.0-9631-pkg1/usr/src/nv/.tmp_version
  s/*
  make -f scripts/Makefile.build obj=/tmp/selfgz3570/NVIDIA-Linux-x86-1.0-9631
  -pkg1/usr/src/nv
  echo \#define NV_COMPILER \"`cc -v 2>&1 | tail -n 1`\" > /tmp/selfgz3570/NVI
  DIA-Linux-x86-1.0-9631-pkg1/usr/src/nv/nv_compiler.h
    cc -Wp,-MD,/tmp/selfgz3570/NVIDIA-Linux-x86-1.0-9631-pkg1/usr/src/nv/.nv.o
  .d  -nostdinc -isystem /usr/lib/gcc/i386-redhat-linux/4.1.1/include -D__KERN
  EL__ -Iinclude  -include include/linux/autoconf.h -Wall -Wundef -Wstrict-pro
  totypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Os -pipe -msoft-flo
  at -mpreferred-stack-boundary=2  -march=athlon -mregparm=3 -ffreestanding -m
  accumulate-outgoing-args -DCONFIG_AS_CFI=1 -DCONFIG_AS_CFI_SIGNAL_FRAME=1 -I
  include/asm-i386/mach-default -fomit-frame-pointer  -fno-stack-protector -Wd
  eclaration-after-statement -Wno-pointer-sign -I/tmp/selfgz3570/NVIDIA-Linux-
  x86-1.0-9631-pkg1/usr/src/nv -Wall -Wimplicit -Wreturn-type -Wswitch -Wforma
  t -Wchar-subscripts -Wparentheses -Wpointer-arith  -Wno-multichar  -Werror -
  O -fno-common -msoft-float -MD  -Wsign-compare -Wno-cast-qual -Wno-error -D
  _LOOSE_KERNEL_NAMES -D__KERNEL__ -DMODULE  -DNVRM -DNV_MAJOR_VERSION=1 -DNV_
  MINOR_VERSION=0 -DNV_PATCHLEVEL=9631  -UDEBUG -U_DEBUG -DNDEBUG -DNV_SIGNAL_
  STRUCT_RLIM -DNV_MULTIPLE_BRIDGE_AGPGART_PRESENT -DNV_PCI_GET_CLASS_PRESENT
  -DNV_SYSCTL_MAX_MAP_COUNT_PRESENT -DNV_PM_MESSAGE_T_PRESENT -DNV_PCI_CHOOSE_
  STATE_PRESENT -
  DNV_VM_INSERT_PAGE_PRESENT -DNV_OLD_MM_KGDB_BREAKPOINT_PRESENT -DNV_REMAP_PF
  N_RANGE_PRESENT -DNV_CHANGE_PAGE_ATTR_PRESENT -DNV_VMAP_4_PRESENT  -DMODULE
  -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(nv)"  -D"KBUILD_MODNAME=K
  BUILD_STR(nvidia)" -c -o /tmp/selfgz3570/NVIDIA-Linux-x86-1.0-9631-pkg1/usr/
  src/nv/.tmp_nv.o /tmp/selfgz3570/NVIDIA-Linux-x86-1.0-9631-pkg1/usr/src/nv/n
  v.c
  In file included from include/linux/list.h:8,
                    from include/linux/plist.h:77,
                    from include/linux/rtmutex.h:16,
                    from include/linux/rt_lock.h:13,
                    from include/linux/spinlock.h:116,
                    from include/linux/capability.h:45,
                    from include/linux/sched.h:46,
                    from include/linux/utsname.h:35,
                    from /tmp/selfgz3570/NVIDIA-Linux-x86-1.0-9631-pkg1/usr/src
  /nv/nv-linux.h:19,
                    from /tmp/selfgz3570/NVIDIA-Linux-x86-1.0-9631-pkg1/usr/src
  /nv/nv.c:14:
  include/linux/prefetch.h: In function ‘prefetch_range’:
  include/linux/prefetch.h:62: warning: pointer of type ‘void *’ used in a
  rithmetic
  /tmp/selfgz3570/NVIDIA-Linux-x86-1.0-9631-pkg1/usr/src/nv/nv.c: At top level
  :
  /tmp/selfgz3570/NVIDIA-Linux-x86-1.0-9631-pkg1/usr/src/nv/nv.c:110: warning:
  ‘kmem_cache_t’ is deprecated
  /tmp/selfgz3570/NVIDIA-Linux-x86-1.0-9631-pkg1/usr/src/nv/nv.c: In function
  ‘nv_kern_open’:
  /tmp/selfgz3570/NVIDIA-Linux-x86-1.0-9631-pkg1/usr/src/nv/nv.c:1849: error:
  ‘SA_INTERRUPT’ undeclared (first use in this function)
  /tmp/selfgz3570/NVIDIA-Linux-x86-1.0-9631-pkg1/usr/src/nv/nv.c:1849: error:
  (Each undeclared identifier is reported only once
  /tmp/selfgz3570/NVIDIA-Linux-x86-1.0-9631-pkg1/usr/src/nv/nv.c:1849: error:
  for each function it appears in.)
  /tmp/selfgz3570/NVIDIA-Linux-x86-1.0-9631-pkg1/usr/src/nv/nv.c:1849: error:
  ‘SA_SHIRQ’ undeclared (first use in this function)
  make[3]: *** [/tmp/selfgz3570/NVIDIA-Linux-x86-1.0-9631-pkg1/usr/src/nv/nv.o
  ] Error 1
  make[2]: *** [_module_/tmp/selfgz3570/NVIDIA-Linux-x86-1.0-9631-pkg1/usr/src
  /nv] Error 2
  NVIDIA: left KBUILD.
  nvidia.ko failed to build!
  make[1]: *** [module] Error 1
  make: *** [module] Error 2
-> Error.

Any idea if/how I can get it to work?

th0rgal 03-02-07 10:47 AM

Re: 2.6.20-rt8 kernel patch
 
sure :)

replace SA_SHIRQ by IRQF_SHARED
replace SA_INTERRUPT by IRQF_DISABLED

Boomer 03-02-07 11:17 PM

Re: 2.6.20-rt8 kernel patch
 
Thanks!

Boomer 03-08-07 04:10 AM

Re: 2.6.20-rt8 kernel patch
 
Ok, now I get an error with this output:

Code:

Building kernel module:
-snip-

  Building modules, stage 2.
  make -f /usr/src/kernels/linux-2.6.20-rt/scripts/Makefile.modpost
    scripts/mod/modpost -m -a -i /usr/src/kernels/linux-2.6.20-rt/Module.symve
  rs -I /home/nooq/fairu/Downloads/NVIDIA-Linux-x86-1.0-9631-pkg1/usr/src/nv/M
  odule.symvers -o /home/nooq/fairu/Downloads/NVIDIA-Linux-x86-1.0-9631-pkg1/u
  sr/src/nv/Module.symvers -w vmlinux /home/nooq/fairu/Downloads/NVIDIA-Linux-
  x86-1.0-9631-pkg1/usr/src/nv/nvidia.o
  WARNING: could not find /home/nooq/fairu/Downloads/NVIDIA-Linux-x86-1.0-9631
  -pkg1/usr/src/nv/.nv-kernel.o.cmd for /home/nooq/fairu/Downloads/NVIDIA-Linu
  x-x86-1.0-9631-pkg1/usr/src/nv/nv-kernel.o
  FATAL: modpost: GPL-incompatible module nvidia.ko uses GPL-only symbol 'page
  fault_disable'
  make[4]: *** [__modpost] Error 1
  make[3]: *** [modules] 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.
ERROR: Unable to build the NVIDIA kernel module.

Any ideas?

JaXXoN 03-08-07 10:37 AM

Re: 2.6.20-rt8 kernel patch
 
Quote:

Originally Posted by Boomer
[code]
FATAL: modpost: GPL-incompatible module nvidia.ko uses GPL-only symbol 'page

Some kernel configuration options make the nvidia driver compiling-in
certain GPL-only symbols. Either try to figure out which obtions that
are, or just disable GPL-only checking and manally define the missing symbol.

For details, please check steps 3 to 5 in the following post:
http://www.nvnews.net/vbulletin/showthread.php?t=87541

BTW.: Although there is a good chance that the 9xxx series "vanilla" nvidia
driver will work with a -rt kernel, i would strongly recommend applying
the patch mentioned in the posting above: the driver uses PAT support
by default which requires to perform a wbinvd insturction now and then.
This in turn causes high latencies up to 600 microseconds.

regards

Bernhard

Boomer 03-08-07 09:17 PM

Re: 2.6.20-rt8 kernel patch
 
Stuck again. I made the changes to the kernel to get past the GPL error, and I applied the patch from that thread to the driver. Now it compiles but it fails to install with this error:

Code:

-> Kernel module load error: insmod: error inserting './usr/src/nv/nvidia.ko':
  -1 Unknown symbol in module
-> Kernel messages:
  lp0: console ready
  NET: Registered protocol family 10
  lo: Disabled Privacy Extensions
  input: Power Button (FF) as /class/input/input4
  ACPI: Power Button (FF) [PWRF]
  input: Power Button (CM) as /class/input/input5
  ACPI: Power Button (CM) [PWRB]
  No dock devices found.
  md: Autodetecting RAID arrays.
  md: autorun ...
  md: ... autorun DONE.
  device-mapper: ioctl: 4.11.0-ioctl (2006-10-12) initialised:
  dm-devel@redhat.com
  device-mapper: multipath: version 1.0.5 loaded
  EXT3 FS on hda6, internal journal
  kjournald starting.  Commit interval 5 seconds
  EXT3 FS on hda8, internal journal
  EXT3-fs: mounted filesystem with ordered data mode.
  Adding 514040k swap on /dev/hda7.  Priority:-1 extents:1 across:514040k
  ip6_tables: (C) 2000-2006 Netfilter Core Team
  ip_tables: (C) 2000-2006 Netfilter Core Team
  input: Analog 2-axis 4-button joystick as /class/input/input6
  ip_tables: (C) 2000-2006 Netfilter Core Team
  nvidia: module license 'NVIDIA' taints kernel.
  nvidia: Unknown symbol pagefault_enable
  nvidia: Unknown symbol pagefault_disable

Any tips?

JaXXoN 03-09-07 06:55 AM

Re: 2.6.20-rt8 kernel patch
 
Quote:

Originally Posted by Boomer
Code:

nvidia: Unknown symbol pagefault_enable
nvidia: Unknown symbol pagefault_disable


There is still some option enabled that makes the pagefault_* functions
compiling into the kernel (i guess these are some kernel debugging features).

Simplest way would be to manually define the symbols similar as explained
in step 5 in the other posting:

Code:

PAGEFAULT_ENABLE=`grep "D pagefault_enable" /boot/System.map-2.6.20-rt | colrm 9`
PAGEFAULT_DISABLE=`grep "D pagefault_disable" /boot/System.map-2.6.20-rt | colrm 9`
ld -m elf_i386 --defsym pagefault_enable=0x$PAGEFAULT_ENABLE --defsym pagefault_disable=0x$PAGEFAULT_DISABLE -r -o nvidia.ko nvidia.o nvidia.mod.o

regards

Bernhard

Boomer 03-10-07 03:21 AM

Re: 2.6.20-rt8 kernel patch
 
The 0x parts in the 3rd line, it only worked after I took out the x'es, but then the patched driver installed and it works fine. Thank you for the help! (daz)

JaXXoN 03-10-07 12:48 PM

Re: 2.6.20-rt8 kernel patch
 
Quote:

Originally Posted by Boomer
The 0x parts in the 3rd line, it only worked after I took out the x'es, but then the patched driver installed and it works fine. Thank you for the help! (daz)

hmm ... just checked: the pagefault_* functions are of a different symbol
type ("T") than paravirt_ops ("D"), where i applied this trick.

So in your case, $PAGEFAULT_ENABLE and $PAGEFAULT_DISABLE have
been empty lines and removing the x's actually results in a setting of "0" for
these symbols. This will likely cause problems at some point in time.

Please try out the following on:

Code:

PAGEFAULT_ENABLE=`grep "T pagefault_enable" /boot/System.map-2.6.20-rt | colrm 9`
PAGEFAULT_DISABLE=`grep "T pagefault_disable" /boot/System.map-2.6.20-rt | colrm 9`
ld -m elf_i386 --defsym pagefault_enable=0x$PAGEFAULT_ENABLE --defsym pagefault_disable=0x$PAGEFAULT_DISABLE -r -o nvidia.ko nvidia.o nvidia.mod.o

And report the values for the symbols:

Code:

echo $PAGEFAULT_ENABLE
echo $PAGEFAULT_DISABLE

regards

Bernhard

Boomer 03-10-07 02:31 PM

Re: 2.6.20-rt8 kernel patch
 
I reinstalled the driver and while those defined I got:

echo $PAGEFAULT_ENABLE
c014e75b
echo $PAGEFAULT_DISABLE
c014e74e

JaXXoN 03-10-07 04:41 PM

Re: 2.6.20-rt8 kernel patch
 
Quote:

Originally Posted by Boomer
I reinstalled the driver and while those defined I got:

echo $PAGEFAULT_ENABLE
c014e75b
echo $PAGEFAULT_DISABLE
c014e74e

These values look reasonable.

regards

Bernhard


All times are GMT -5. The time now is 04:40 PM.

Powered by vBulletin® Version 3.7.1
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Copyright ©1998 - 2014, nV News.