Debian安裝nvidia驅動

此頁由 Linux Wiki用戶Chenxing 於 2007年8月12日 (星期日) 03:14 的最後更改。

出自Linux Wiki

提示:此文已超过 16 年(6073 天)未更新,如发现内容过时或有误,欢迎改进:)

對於多數情況,debian是可以直接安裝nvidia官方提供的驅動的。但是在最近的testing和sid中,由於使用2.6.202.6.21內核,導致驅動的模塊不能編譯,需要手動進行一些操作。需要提醒的是,只要內核升級到2.6.22,這個問題就不再會出現。

本文大量參考了: http://blog.joypig.org/archives/156

為2.6.20或2.6.21內核的debian安裝nvidia驅動

對於這兩個版本的內核,在安裝nvidia時,編譯內核模塊失敗,在/var/log/nvidia-installer.log中提示:

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

在不重新編譯內核的情況下,解決這個問題的辦法是修改linux-kbuild的源代碼(以2.6.21為例),並修改nvidia驅動的部分代碼(你只需要一行一行複製命令就可以了,如果還是嫌麻煩,等2.6.22吧。):

修改linux-kbuild

# 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的源碼。

$ cd linux-kbuild-2.6-2.6.21
$ sed -i '1177,+1 s/^/\/\//' scripts/mod/modpost.c
$ dpkg-buildpackage -uc -us -rfakeroot
$ cd ..

現在換成root用戶,安裝這個包

# dpkg -i *.deb

修改nvidia驅動

本部分以nvidia的.run文件為例。我的顯卡是 GeForce4 MX 440,只能用96xx的顯卡,以9631為例,後續版本也支持這樣做。假設當前目錄下有NVIDIA-Linux-x86-1.0-9631-pkg1.run

# head -n 2 NVIDIA-Linux-x86-1.0-9631-pkg1.run

看一下輸出的第二行,把skip=後面那個數記錄下來,替換下面的943。

# tail -n +943 NVIDIA-Linux-x86-1.0-9631-pkg1.run | gzip -cd | tar tvf - 2>/dev/null

編輯usr/src/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) 

使用剛才解壓出來的./nvidia-installer就可以安裝了。

本文对您有帮助?分享给更多朋友!

反馈与讨论

发现文档不全面、有错误却没时间编辑文档?想分享自己的经验或见解?欢迎在此留言、讨论。
简体繁体转换