LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1734|回复: 9

求助:Lenny下编译内核到2.6.28后nvidia显卡无法安装

[复制链接]
发表于 2009-2-27 12:17:49 | 显示全部楼层 |阅读模式
我的是nvidia fx5200显卡。

希望升级内核到2.6.28,当前是2.6.26-1-686


以下是编译时的信息:

debian:/usr/src/linux# make-kpkg --initrd modules_image
exec debian/rules  DEBIAN_REVISION=2.6.28-1-p4-10.00.Custom  INITRD=YES  modules_image
for module in /usr/src/modules/nvidia-kernel ; do                       \
          if test -d  $module; then                                \
            (cd $module;                                          \
              if ./debian/rules KVERS="2.6.28-1-p4" KSRC="/usr/src/linux" \
                             KMAINT="Unknown Kernel Package Maintainer" KEMAIL="unknown@unconfigured.in.etc.kernel-pkg.conf"      \
                             KPKG_DEST_DIR="/usr/src/linux/.."       \
                             KPKG_MAINTAINER="Unknown Kernel Package Maintainer"        \
                             KPKG_EXTRAV_ARG=""        \
                             ARCH="i386"         \
                             KDREV="2.6.28-1-p4-10.00.Custom" kdist_image; then    \
                  echo "Module $module processed fine";            \
              else                                                  \
                   echo "Module $module failed.";                  \
                   if [ "X" != "X" ]; then      \
                      echo "erhaps $module does not understand --rootcmd?";  \
                      echo "If you see messages that indicate that it is not"; \
                      echo "in fact being built as root, please file a bug ";  \
                      echo "against $module.";                     \
                   fi;                                              \
                   echo "Hit return to Continue";                   \
                 read ans;                                        \
              fi;                                                   \
             );                                                    \
          else                                                      \
               echo "Module $module does not exist";               \
               echo "Hit return to Continue?";                      \
          fi;                                                       \
        done
make[1]: Entering directory `/usr/src/modules/nvidia-kernel'
echo "ROOT_CMD = "
ROOT_CMD =
/usr/bin/make -w -f debian/rules binary_modules
make[2]: Entering directory `/usr/src/modules/nvidia-kernel'
# select which makefile to use.
rm -f /usr/src/modules/nvidia-kernel/Makefile || true
if [ 6 = 6  ]; then \
             ln -s Makefile.kbuild Makefile ; \
        fi
if [  6 = 4  ]; then \
             ln -s Makefile.nvidia Makefile ; \
        fi
if ! gcc-4.3 -v 2> /dev/null  ; then \
           echo "Compiler gcc-4.3 does not exist on the system" ; \
           exit 1; \
        fi   
if [ -f /usr/src/modules/nvidia-kernel/debian/control.template ]; then \
                cp  /usr/src/modules/nvidia-kernel/debian/control.template /usr/src/modules/nvidia-kernel/debian/control; \
        fi
if [ "i686" = "x86_64" ]; then \
                cp /usr/src/modules/nvidia-kernel/nv-kernel.o.x86_64 /usr/src/modules/nvidia-kernel/nv-kernel.o ; \
        fi
touch configure-stamp
dh_testdir
dh_testroot
PATCHLEVEL = 6
Kernel compiler version : 4.1.2
Detected compiler version : 4.3.2
                                                           
You appear to be compiling the NVIDIA kernel module with   
a compiler different from the one that was used to compile
the running kernel. This may be perfectly alright and you
may be building this module for another kernel in which case
you may ignore this message.

The compiler that will be used to compile this module has been
determined from:
1) the CC environment variable
2) that specified in
    /usr/src/linux/include/linux/compile.h
3) gcc
Using compiler gcc-4.3 version 4.3.2
touch /usr/src/modules/nvidia-kernel//gcc-check
touch /usr/src/modules/nvidia-kernel//cc-sanity-check
## Main Make ##
IGNORE_CC_MISMATCH=1 CC="gcc-4.3" /usr/bin/make -C /usr/src/modules/nvidia-kernel/ -f Makefile SYSSRC=/usr/src/linux   KBUILD_PARAMS="-C /usr/src/linux SUBDIRS=/usr/src/modules/nvidia-kernel" module;
make[3]: Entering directory `/usr/src/modules/nvidia-kernel'
NVIDIA: calling KBUILD...
make CC=gcc-4.3 -C /usr/src/linux SUBDIRS=/usr/src/modules/nvidia-kernel modules
make[4]: Entering directory `/usr/src/linux-source-2.6.28'
  CC [M]  /usr/src/modules/nvidia-kernel/nv.o
In file included from include/linux/bitops.h:17,
                 from include/linux/kernel.h:15,
                 from include/linux/sched.h:52,
                 from include/linux/utsname.h:35,
                 from /usr/src/modules/nvidia-kernel/nv-linux.h:19,
                 from /usr/src/modules/nvidia-kernel/nv.c:14:
/usr/src/linux-source-2.6.28/arch/x86/include/asm/bitops.h: In function ‘set_bit’:
/usr/src/linux-source-2.6.28/arch/x86/include/asm/bitops.h:60: warning: pointer of type ‘void *’ used in arithmetic
/usr/src/linux-source-2.6.28/arch/x86/include/asm/bitops.h: In function ‘clear_bit’:
/usr/src/linux-source-2.6.28/arch/x86/include/asm/bitops.h:97: warning: pointer of type ‘void *’ used in arithmetic
In file included from include/linux/list.h:6,
                 from include/linux/preempt.h:11,
                 from include/linux/spinlock.h:50,
                 from include/linux/seqlock.h:29,
                 from include/linux/time.h:8,
                 from include/linux/timex.h:57,
                 from include/linux/sched.h:54,
                 from include/linux/utsname.h:35,
                 from /usr/src/modules/nvidia-kernel/nv-linux.h:19,
                 from /usr/src/modules/nvidia-kernel/nv.c:14:
include/linux/prefetch.h: In function ‘prefetch_range’:
include/linux/prefetch.h:57: warning: pointer of type ‘void *’ used in arithmetic
In file included from include/linux/utsname.h:35,
                 from /usr/src/modules/nvidia-kernel/nv-linux.h:19,
                 from /usr/src/modules/nvidia-kernel/nv.c:14:
include/linux/sched.h: In function ‘object_is_on_stack’:
include/linux/sched.h:2025: warning: pointer of type ‘void *’ used in arithmetic
In file included from /usr/src/modules/nvidia-kernel/nv-linux.h:34,
                 from /usr/src/modules/nvidia-kernel/nv.c:14:
/usr/src/modules/nvidia-kernel/conftest.h:1:2: error: #error remap_page_range() conftest failed!
/usr/src/modules/nvidia-kernel/conftest.h:3:2: error: #error vmap() conftest failed!
/usr/src/modules/nvidia-kernel/conftest.h:5:2: error: #error agp_backend_acquire() conftest failed!
/usr/src/modules/nvidia-kernel/conftest.h:24:2: error: #error kmem_cache_create() conftest failed!
In file included from /usr/src/linux-source-2.6.28/arch/x86/include/asm/dma-mapping.h:9,
                 from include/linux/dma-mapping.h:57,
                 from include/asm-generic/pci-dma-compat.h:7,
                 from /usr/src/linux-source-2.6.28/arch/x86/include/asm/pci.h:94,
                 from include/linux/pci.h:1002,
                 from /usr/src/modules/nvidia-kernel/nv-linux.h:86,
                 from /usr/src/modules/nvidia-kernel/nv.c:14:
include/linux/scatterlist.h: In function ‘sg_virt’:
include/linux/scatterlist.h:199: warning: pointer of type ‘void *’ used in arithmetic
In file included from /usr/src/linux-source-2.6.28/arch/x86/include/asm/hardirq_32.h:5,
                 from /usr/src/linux-source-2.6.28/arch/x86/include/asm/hardirq.h:2,
                 from include/linux/hardirq.h:7,
                 from include/linux/interrupt.h:12,
                 from /usr/src/modules/nvidia-kernel/nv-linux.h:87,
                 from /usr/src/modules/nvidia-kernel/nv.c:14:
include/linux/irq.h: In function ‘irq_to_desc’:
include/linux/irq.h:189: warning: comparison between signed and unsigned
In file included from /usr/src/modules/nvidia-kernel/nv.c:14:
/usr/src/modules/nvidia-kernel/nv-linux.h:107:27: error: asm/semaphore.h: No such file or directory
In file included from /usr/src/modules/nvidia-kernel/nv-linux.h:109,
                 from /usr/src/modules/nvidia-kernel/nv.c:14:
include/linux/highmem.h: In function ‘zero_user_segments’:
include/linux/highmem.h:136: warning: pointer of type ‘void *’ used in arithmetic
include/linux/highmem.h:136: warning: pointer of type ‘void *’ used in arithmetic
include/linux/highmem.h:136: warning: pointer of type ‘void *’ used in arithmetic
include/linux/highmem.h:136: warning: pointer of type ‘void *’ used in arithmetic
include/linux/highmem.h:139: warning: pointer of type ‘void *’ used in arithmetic
include/linux/highmem.h:139: warning: pointer of type ‘void *’ used in arithmetic
include/linux/highmem.h:139: warning: pointer of type ‘void *’ used in arithmetic
include/linux/highmem.h:139: warning: pointer of type ‘void *’ used in arithmetic
/usr/src/modules/nvidia-kernel/nv-linux.h:574:2: error: #error "NV_KMEM_CACHE_CREATE() undefined (kmem_cache_create() unavailable)!"
In file included from /usr/src/modules/nvidia-kernel/nv.c:14:
/usr/src/modules/nvidia-kernel/nv-linux.h: In function ‘nv_execute_on_all_cpus’:
/usr/src/modules/nvidia-kernel/nv-linux.h:669: error: too many arguments to function ‘on_each_cpu’
/usr/src/modules/nvidia-kernel/nv-linux.h: At top level:
/usr/src/modules/nvidia-kernel/nv-linux.h:825: error: conflicting types for ‘pm_message_t’
include/linux/pm.h:41: error: previous declaration of ‘pm_message_t’ was here
/usr/src/modules/nvidia-kernel/nv.c:360: warning: initialization from incompatible pointer type
/usr/src/modules/nvidia-kernel/nv.c: In function ‘nv_kern_cpu_callback’:
/usr/src/modules/nvidia-kernel/nv.c:1299: error: too many arguments to function ‘smp_call_function’
/usr/src/modules/nvidia-kernel/nv.c:1306: error: too many arguments to function ‘smp_call_function’
/usr/src/modules/nvidia-kernel/nv.c: In function ‘nvidia_init_module’:
/usr/src/modules/nvidia-kernel/nv.c:1339: error: implicit declaration of function ‘NV_KMEM_CACHE_CREATE’
/usr/src/modules/nvidia-kernel/nv.c:1339: error: expected expression before ‘nv_stack_t’
/usr/src/modules/nvidia-kernel/nv.c:1349: error: implicit declaration of function ‘NV_KMEM_CACHE_DESTROY’
/usr/src/modules/nvidia-kernel/nv.c:1448: error: expected expression before ‘nv_pte_t’
/usr/src/modules/nvidia-kernel/nv.c: In function ‘nv_kern_open’:
/usr/src/modules/nvidia-kernel/nv.c:2027: warning: passing argument 2 of ‘request_irq’ from incompatible pointer type
/usr/src/modules/nvidia-kernel/nv.c:4007:6: warning: "NV_AGP_BACKEND_ACQUIRE_ARGUMENT_COUNT" is not defined
/usr/src/modules/nvidia-kernel/nv.c: In function ‘nv_agp_init’:
/usr/src/modules/nvidia-kernel/nv.c:4024: error: too few arguments to function ‘agp_backend_acquire’
/usr/src/modules/nvidia-kernel/nv.c:4026: error: too few arguments to function ‘agp_backend_release’
make[5]: *** [/usr/src/modules/nvidia-kernel/nv.o] Error 1
make[4]: *** [_module_/usr/src/modules/nvidia-kernel] Error 2
make[4]: Leaving directory `/usr/src/linux-source-2.6.28'
NVIDIA: left KBUILD.
nvidia.ko failed to build!
make[3]: *** [module] Error 1
make[3]: Leaving directory `/usr/src/modules/nvidia-kernel'
make[2]: *** [build-stamp] Error 2
make[2]: Leaving directory `/usr/src/modules/nvidia-kernel'
make[1]: *** [kdist_image] Error 2
make[1]: Leaving directory `/usr/src/modules/nvidia-kernel'
Module /usr/src/modules/nvidia-kernel failed.
Hit return to Continue


哪位高人能够说说到底什么地方出错了,该如何解决呢?
谢谢!
发表于 2009-2-27 12:30:34 | 显示全部楼层
nv 8600gt + linux 2.6.28.5的漂过

是否和这个有关呢?
  1. Kernel compiler version : 4.1.2
  2. Detected compiler version : 4.3.2
复制代码
回复 支持 反对

使用道具 举报

发表于 2009-2-27 12:41:11 | 显示全部楼层
lenny 的 nvidia-kernel-source 包是 173.xx 的吧?记得要比较新的 180.xx 才支持 2.6.28 内核的

目前 180.xx 还在 experimental 里
回复 支持 反对

使用道具 举报

发表于 2009-2-27 15:34:04 | 显示全部楼层
自己从nv的网站下啊, 别用源里的
回复 支持 反对

使用道具 举报

发表于 2009-2-28 13:34:28 | 显示全部楼层
我忽然想起来 fx5200 是被归到 legacy drivers 里的,目前最新的稳定版是 173.14.12,测试版是 173.14.17:
http://www.nvnews.net/vbulletin/showthread.php?t=122606

理论上说即使 173.14.12 不支持 2.6.28,173.14.17 也应该支持的吧
回复 支持 反对

使用道具 举报

发表于 2009-3-6 22:01:36 | 显示全部楼层
Post by tigatron;1953992
我忽然想起来 fx5200 是被归到 legacy drivers 里的,目前最新的稳定版是 173.14.12,测试版是 173.14.17:
http://www.nvnews.net/vbulletin/showthread.php?t=122606

理论上说即使 173.14.12 不支持 2.6.28,173.14.17 也应该支持的吧


绝对支持,我老机上的显卡就是FX5200,我在debian上编译安装2.6.28.7内核后,就是下载nvidia 173.14.17来安装的,虽然96.43.**也能安装,但是96.43.**的有bug,连个bzflag都玩不了,怒。
回复 支持 反对

使用道具 举报

发表于 2009-6-11 16:49:38 | 显示全部楼层
今天编译2.6.30内核也遇到和楼主一样的问题
回复 支持 反对

使用道具 举报

发表于 2009-6-11 17:44:26 | 显示全部楼层
我昨天编译了一个nvidia的驱动,从官方下载的最新版本的,系统是debian的stable,没有问题,

显卡是9500gt。
回复 支持 反对

使用道具 举报

发表于 2009-6-12 10:06:43 | 显示全部楼层
好像 nvidia 的驱动是跟内核版本有关的, 常常会遇到升级内核后,驱动装不上。只有等跟新的驱动出来才能用。

用的是7年前的nvidia集成显卡,驱动更新没新卡的即时了
回复 支持 反对

使用道具 举报

发表于 2009-11-29 17:07:33 | 显示全部楼层
是的,确实是需要更高版本的nvidia驱动才能编译
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表