在Debian下安装Nvidia驱动

本文介绍在Debian系统中安装Nvidia驱动的详细步骤,包括解决编译过程中出现的GPL兼容性问题,以及如何手动生成并安装deb包。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在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驱动安装成功了
### 在 Debian 12 上安装显卡驱动程序的方法 在 Debian 12 上安装显卡驱动程序,特别是 NVIDIA 显卡驱动程序,可以通过以下方法完成。以下是详细的步骤和注意事项。 #### 方法一:使用官方源安装 NVIDIA 驱动Debian 12 中,可以利用官方源来安装 NVIDIA 驱动程序,这种方法较为简单且稳定。 1. 更新系统包列表并升级现有软件包: ```bash sudo apt update && sudo apt upgrade -y ``` 2. 安装必要的依赖包,包括内核头文件、构建工具等: ```bash sudo apt install linux-headers-$(uname -r) build-essential dkms firmware-misc-nonfree -y ``` 这些软件包确保系统能够正确编译和加载 NVIDIA 驱动程序[^2]。 3. 安装 NVIDIA 驱动程序及相关组件: ```bash sudo apt install nvidia-driver ``` 如果需要支持 CUDA 开发环境,可以额外安装以下包: ```bash sudo apt install nvidia-cuda-dev nvidia-cuda-toolkit -y ``` 4. 重启系统以应用更改: ```bash sudo reboot ``` #### 方法二:从 NVIDIA 官方网站下载并安装驱动 如果官方源的驱动版本不满足需求,可以从 NVIDIA 官网下载最新驱动进行安装。 1. 下载适用于 LinuxNVIDIA 驱动程序: ```bash wget https://us.download.nvidia.com/XFree86/Linux-x86_64/550.67/NVIDIA-Linux-x86_64-550.67.run ``` 2. 赋予下载的驱动程序可执行权限: ```bash sudo chmod +x NVIDIA-Linux-x86_64-550.67.run ``` 3. 停止图形界面服务(如 GDM 或 LightDM),然后运行安装脚本: ```bash sudo service gdm stop sudo ./NVIDIA-Linux-x86_64-550.67.run -no-x-check -no-nouveau-check ``` 参数 `-no-x-check` 和 `-no-nouveau-check` 用于跳过 X 窗口检查和禁用 Nouveau 开源驱动[^4]。 4. 安装完成后重启系统: ```bash sudo reboot ``` #### 注意事项 - 安装 NVIDIA 驱动前,建议先卸载默认的 Nouveau 驱动程序以避免冲突。可以通过编辑 `/etc/modprobe.d/blacklist.conf` 文件,添加以下内容实现: ```plaintext blacklist nouveau options nouveau modeset=0 ``` 然后更新 initramfs: ```bash sudo update-initramfs -u ``` - 如果遇到黑屏问题,可能是由于驱动安装不完整或配置错误导致。可以尝试进入恢复模式,重新安装驱动程序或调整相关设置[^3]。 --- ### 示例代码 以下是一个完整的脚本示例,用于通过官方源安装 NVIDIA 驱动程序: ```bash #!/bin/bash # 更新系统包 sudo apt update && sudo apt upgrade -y # 安装依赖项 sudo apt install linux-headers-$(uname -r) build-essential dkms firmware-misc-nonfree -y # 安装 NVIDIA 驱动 sudo apt install nvidia-driver -y # 可选:安装 CUDA 工具包 sudo apt install nvidia-cuda-dev nvidia-cuda-toolkit -y # 重启系统 sudo reboot ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值