在Debian下安装Nvidia驱动

在Debian的linux-2.6.21内核下装nvidia驱动

nvidia驱动一直都是以non-free的类别存在在debian的源里边,而且debian官方提供的二进制包总是很滞后,经常需要自己编译驱动。之前说过一次关于nvidia驱动编译的问题,貌似还是被搜索最多的。那是在两年前写的,现在又出现了新的情况,安装方法又要更新了。其实如果看官方的 README.Debian,安装方法并没有变化,但是,你实际操作就是不能成功编译,急啊。通过万能的google,还是找到一些蛛丝马迹,貌似解决了我遇到的问题,相信还是有不少人遇到的。

话说在debian安装nvidia驱动有两种方法,一是从nvidia的网站上直接下载驱动的安装脚本文件,运行脚本,编译安装一次到位;二是可以从debian的源里安装nvidia-kernel-source自己编译,生成deb包再安装。我想一般用惯了debian的人,都有点强迫症,都喜欢用deb包进行安装。不管别人怎么样,反正我是这样的。

新的问题在于,在debian的linux-2.6.21-1-k7的内核下编译nvidia驱动,会出现如下报错:

FATAL: modpost: GPL-incompatible module nvidia.ko uses GPL-only symbol ‘paravirt_ops’

这是由于从2.6.20以后,debian的linux内核就启用了CONFIG_PARAVIRT选项来编译内核。现在由于加入这一选项,使得不只是nvidia的驱动不能正常编译,还有别的non-free内核模块也不能正常编译,所以这被视为bug #419943提交了。下面就说一下安装步骤吧,以我的古董tnt2 pro的显卡为例。

首先,修改linux-kbuild-2.6.21:

# apt-get build-dep linux-kbuild-2.6.21
$ mkdir linux-kbuild-2.6.21-build
$ cd linux-kbuild-2.6.21-build
$ apt-get source linux-kbuild-2.6.21

这时,linux-kbuild-2.6.21的相关文件会出现在linux-kbuild-2.6.21-build这个目录,并且有一个解压缩之后的linux-kbuild-2.6-2.6.21目录,修改linux-kbuild-2.6-2.6.21/scripts/mod /modpost.c,在大约1177行前后,找到fatal函数,注释掉这两行fatal函数,保存文件。

生成修改过的linux-kbuild,并且安装

$ dpkg-buildpackage -uc -us -rfakeroot
# apt-get install linux-kbuild-2.6.21

第二,就是安装相应的包:

# apt-get install nvidia-kernel-common nvidia-kernel-legacy-71xx-source linux-headers-2.6.21-1-k7

安装这两个包,应该还会自动安装和debhelper相关的包,如果在之后编译发现还缺少什么包,自行补齐就是了。nvidia-kernel-legacy-71xx-source安装之后,会在/usr /src里出现一个nvidia-kernel-legacy-71xx-source.tar.gz,解压缩到随便什么地方。进入解出来的 modules/nvidia-kernel-legacy-71xx/nv目录,修改Makefile.kbuild,在

EXTRA_CFLAGS += -Wall -Wimplicit -Wreturn-type… 后边加入

PARAVIRT_OPS := $(shell grep “D paravirt_ops” /boot/System.map-$(shell uname -r) | colrm 9)
EXTRA_LDFLAGS := -defsym paravirt_ops=0x$(PARAVIRT_OPS)

之后,安装README.Debian中的方法生成deb包。

进入modules/nvidia-kernel-legacy-71xx

# KSRC=/usr/src/linux-headers-2.6.21-1-k7 KVERS=2.6.21-1-k7 debian/rules binary_modules
# dpkg -i nvidia-kernel-legacy-71xx-2.6.21-1-k7_i386.deb

最后,安装nvidia-glx

# apt-get install nvidia-glx-legacy-71xx

修改/etc/X11/xorg.conf,或dpkg-reconfigure xserver-xorg,改用nvidia驱动既可。

如果觉得上边的方法比较不解,可以等一等debian和nvidia的反应,看看哪边会妥协,那样安装就不会这么麻烦了。下边是几个相关的网页,如果有什么问题,请告诉我





使用Debian已经有一段时间了,但是所使用的一直是开源的nv或是vesa驱动。也曾经想着试一下官方的nvidia驱动,但是在Debian的源中却没有简单的驱动可以安装来用,而又不是太懂得用Debian的方式来编译安装。而使用Nvidia官方下载的驱动来安装又一直没有成功过。所以也就一直就这样用着。但是最近一段时间上了一下Debian的Wiki,搜索了一下Nvidia的驱动安装方法,照着做了一下,哈哈,还真的成功。在这里记录一下自己的安装过程。
我的系统情况如下:Debian Etch Testing,GFore MX 400,Xorg,内核是自己编译的2.6.20。另外要提醒大家就是Nvidia的驱动已不再支持某些为卡,首先我们要确定我们的显卡是还被支持,如果不是这样,我们就要安装Leacy的驱动。
Nvidia的驱动安装概括说来是以下四个步骤:
1 安装内核模块
2 安装用户空间库
3 配置Xorg
4 配置在系统启动时装入驱动模块

1 安装内核模块
# apt-get install module-assistant gcc nvidia-kernel-common
然后运行下面的命令:
# m-a update
# m-a prepare
# m-a auto-install nvidia
最后一步是驱动安装最重要的一步,也是最有可能出现错误的一步。而这一步可以分为三个步骤,这有助于我们进行调试:get build install
而我自己在安装时就是在这里出现了问题,但是却可以正确的生成deb安装包,所以我只是自己手动的安装了这个deb包。

2 安装用户空间库
# apt-get install nvidia-glx

3 配置Xorg
我们可以手动编辑Xorg的配置文件,在”Module”部分,我们要确认有下一行:
Load "glx"
同时注释掉dri部分。
而在Device部分,我们要将我们的驱动改为nvidia:
Driver "nvidia"

4 配置在系统启动时装入驱动模块
# grep -q ^nvidia /etc/modules || echo nvidia >> /etc/modules

经过这样的安装配置以后我们就已经安装上了Nvidia驱动模块,我们可以用下面的命令来试着装入驱动模块:
# modprobe nvidia
如果可以正常的装入就说明我们的驱动安装成功了。
如果我们不想重新启动系统,我们可以用下面的命令来重新启动X:
# invoke-rc.d gdm restart

这样在我们启动X时就可以看到Nvidia的Logo了,而这也就说明我们的nvidia驱动安装成功了
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值