关于Nvidia显卡驱动在Linux上面的安装,网上已经有很多的文章了。不过感觉都是只有大量的步骤,缺少的一些前因后果的描述。导致了很多朋友不能很好的针对自己系统特性进行安装。在这里我就结合我的实际体验来给大家讲一下Nvidia显卡驱动的安装。
在这之前,大家务必要拢清楚自己的系统环境。
Linux Kernel 2.6.24-22 -generic #1 SMP Mon Nov 24 18:32:42 UTC 2008 i686 GNU/Linux
Acer aspire 5583
Nvidia Videocard Geforce' Go 7300
在这里大家需要特别注意各自的系统版本,已经对应的显卡驱动。
Nvidia显卡180.16的官方下载地址: ftp://download.nvidia.com/XFree86/Linux-x86/180.16/
GeForce 6800 Ultra 0x0040
GeForce 6800 0x0041
GeForce 6800 LE 0x0042
GeForce 6800 XE 0x0043
GeForce 6800 XT 0x0044
GeForce 6800 GT 0x0045
GeForce 6800 GT 0x0046
GeForce 6800 GS 0x0047
GeForce 6800 XT 0x0048
GeForce 7800 GTX 0x0090
GeForce 7800 GTX 0x0091
GeForce 7800 GT 0x0092
GeForce 7800 GS 0x0093
GeForce 7800 SLI 0x0095
GeForce Go 7800 0x0098
GeForce Go 7800 GTX 0x0099
GeForce 6800 GS 0x00C0
GeForce 6800 0x00C1
GeForce 6800 LE 0x00C2
GeForce 6800 XT 0x00C3
GeForce Go 6800 0x00C8
GeForce Go 6800 Ultra 0x00C9
Unknown GPU 0x00F0
GeForce 6600 GT 0x00F1
GeForce 6600 0x00F2
GeForce 6200 0x00F3
GeForce 6600 LE 0x00F4
GeForce 7800 GS 0x00F5
GeForce 6800 GS 0x00F6
GeForce 6800 Ultra 0x00F9
GeForce 6600 GT 0x0140
GeForce 6600 0x0141
GeForce 6600 LE 0x0142
GeForce 6600 VE 0x0143
GeForce Go 6600 0x0144
GeForce 6610 XL 0x0145
GeForce Go 6600 TE/6200 TE 0x0146
GeForce 6700 XL 0x0147
GeForce Go 6600 0x0148
GeForce Go 6600 GT 0x0149
GeForce 6200 0x014F
GeForce 6500 0x0160
GeForce 6200 TurboCache(TM) 0x0161
GeForce 6200SE TurboCache(TM) 0x0162
GeForce 6200 LE 0x0163
GeForce Go 6200 0x0164
GeForce Go 6400 0x0166
GeForce Go 6200 0x0167
GeForce Go 6400 0x0168
GeForce 6250 0x0169
GeForce 7100 GS 0x016A
GeForce 8800 GTX 0x0191
GeForce 8800 GTS 0x0193
GeForce 8800 Ultra 0x0194
Tesla C870 0x0197
GeForce 7350 LE 0x01D0
GeForce 7300 LE 0x01D1
GeForce 7300 SE/7200 GS 0x01D3
GeForce Go 7200 0x01D6
GeForce Go 7300 0x01D7
GeForce Go 7400 0x01D8
GeForce 7500 LE 0x01DD
GeForce 7300 GS 0x01DF
GeForce 6800 0x0211
GeForce 6800 LE 0x0212
GeForce 6800 GT 0x0215
GeForce 6800 XT 0x0218
GeForce 6200 0x0221
GeForce 6200 A-LE 0x0222
GeForce 6150 0x0240
GeForce 6150 LE 0x0241
GeForce 6100 0x0242
GeForce Go 6150 0x0244
GeForce Go 6100 0x0247
GeForce 7900 GTX 0x0290
GeForce 7900 GT/GTO 0x0291
GeForce 7900 GS 0x0292
GeForce 7950 GX2 0x0293
GeForce 7950 GX2 0x0294
GeForce 7950 GT 0x0295
GeForce Go 7950 GTX 0x0297
GeForce Go 7900 GS 0x0298
GeForce Go 7900 GTX 0x0299
GeForce 7600 GT 0x02E0
GeForce 7600 GS 0x02E1
GeForce 7900 GS 0x02E3
GeForce 7950 GT 0x02E4
GeForce 7650 GS 0x0390
GeForce 7600 GT 0x0391
GeForce 7600 GS 0x0392
GeForce 7300 GT 0x0393
GeForce 7600 LE 0x0394
GeForce 7300 GT 0x0395
GeForce Go 7700 0x0397
GeForce Go 7600 0x0398
GeForce Go 7600 GT 0x0399
GeForce 6150SE nForce 430 0x03D0
GeForce 6100 nForce 405 0x03D1
GeForce 6100 nForce 400 0x03D2
GeForce 6100 nForce 420 0x03D5
GeForce 8600 GTS 0x0400
GeForce 8600 GT 0x0401
GeForce 8600 GT 0x0402
GeForce 8600GS 0x0403
GeForce 8400 GS 0x0404
GeForce 9500M GS 0x0405
GeForce 8600M GT 0x0407
GeForce 9650M GS 0x0408
GeForce 8700M GT 0x0409
GeForce 8400 SE 0x0420
GeForce 8500 GT 0x0421
GeForce 8400 GS 0x0422
GeForce 8300 GS 0x0423
GeForce 8400 GS 0x0424
GeForce 8600M GS 0x0425
GeForce 8400M GT 0x0426
GeForce 8400M GS 0x0427
GeForce 8400M G 0x0428
GeForce 9400 GT 0x042C
GeForce 9300M G 0x042E
GeForce 7150M / nForce 630M 0x0531
GeForce 7000M / nForce 610M 0x0533
GeForce 7050 PV / NVIDIA nForce 630a 0x053A
GeForce 7050 PV / NVIDIA nForce 630a 0x053B
GeForce 7025 / NVIDIA nForce 630a 0x053E
GeForce GTX 280 0x05E1
GeForce GTX 260 0x05E2
GeForce 8800 GTS 512 0x0600
GeForce 9800 GT 0x0601
GeForce 8800 GT 0x0602
GeForce 9800 GX2 0x0604
GeForce 9800 GT 0x0605
GeForce 8800 GS 0x0606
GeForce 9800M GTX 0x0608
GeForce 8800M GTS 0x0609
GeForce 9800M GT 0x060B
GeForce 8800M GTX 0x060C
GeForce 8800 GS 0x060D
GeForce 9600 GSO 0x0610
GeForce 8800 GT 0x0611
GeForce 9800 GTX/9800 GTX+ 0x0612
GeForce 9800 GTX+ 0x0613
GeForce 9800 GT 0x0614
GeForce 9600 GT 0x0622
GeForce 9600 GS 0x0623
GeForce 9800M GTS 0x0628
GeForce 9700M GTS 0x062A
GeForce 9800M GS 0x062B
GeForce 9800M GTS 0x062C
GeForce 9500 GT 0x0640
GeForce 9500 GT 0x0643
GeForce 9600M GT 0x0647
GeForce 9600M GS 0x0648
GeForce 9600M GT 0x0649
GeForce 9700M GT 0x064A
GeForce 9500M G 0x064B
GeForce 9650M GT 0x064C
GeForce 9650 S 0x0656
GeForce 9300 GS 0x06E1
GeForce 8400 GS 0x06E4
GeForce 9300M GS 0x06E5
GeForce 9200M GS 0x06E8
GeForce 9300M GS 0x06E9
GeForce 7150 / NVIDIA nForce 630i 0x07E0
GeForce 7100 / NVIDIA nForce 630i 0x07E1
GeForce 7050 / NVIDIA nForce 610i 0x07E3
GeForce 9100M G 0x0844
GeForce 8200M G 0x0845
GeForce 9100 0x0847
GeForce 8300 0x0848
GeForce 8200 0x0849
nForce 730a 0x084A
GeForce 8200 0x084B
nForce 780a SLI 0x084C
nForce 750a SLI 0x084D
GeForce 8100 / nForce 720a 0x084F
GeForce 9400M G 0x0862
GeForce 9400M 0x0863
上面这个列表的详细地址是: ftp://download.nvidia.com/XFree86/Linux-x86/180.16/README/appendix-a.html
从列表中,我了解到这个版本的驱动支持我这个古董级别的显卡。现在就开始我们的安装之旅吧。
首先,我们需要了解这个显卡驱动的大体结构。显卡分为两个部分the nvidia kernel module(和系统内核相互结合的nvidia模块)和NVIDIA driver components(单独的驱动模块,这个模块是被单独加载的)。从这个结构中,我们知道我们需要安装的不只是components那个部分,而且还需要根据我们的系统来生成nvidia kernel模块。初看起来好像很麻烦,实际上
NVIDIA-Linux-x86-180.16-pkg1.run
在安装编译过程中会自动做这方面的工作。但是需要注意,由于我们的系统原先有一个Nvidia 169版本的显卡驱动,这个原始的驱动会阻碍module的生成。我们需要先将以前的驱动通通删除。
具体的删除步骤:
-
进入终端模式并在终端中输入:
sudo init 3
-
关闭Xserver:
sudo /etc/init.d/gdm stop
我这里是gnome桌面,大家需要根据自己的系统特点去关闭相应的Xserver -
卸载系统中老的驱动:
Shell 写道sudo apt-get --purge remove nvidia-glx*在这个地方,我使用了通配符删除,如果各位比较担心过多的删除东西的话,请根据系统提示删除相应的东西。一般有:nvidia-glx nvidia-glx-new -
还原系统的受限驱动配置:
需要编辑一些文件 写道sudo vim /etc/default/linux-restricted-modules-common以上是用来禁用nv驱动的. 另外我将/etc/init.d/nvidia-kernel删除了 。这个我是从网上看来的,不太明白为什么,但是仅从这个文件的日期,我感觉这个文件对应的kernel版本比较老。
将 DISABLED_MODULES=""改成DISABLED_MODULES=" nv " -
备份我们的xorg.conf文件:
cp /etc/X11/xorg.conf ~/xorg.conf.backup
我是一般将这些文件暂存到自己的home下面的 -
安装驱动:
chmod +x NVIDIA-Linux-x86-180.16-pkg1.run sudo ./NVIDIA-Linux-x86-180.16-pkg1.run
将run文件变成可执行模式,然后执行。在这里可能有人会遇到解压错误,这是由于你的/tmp文件夹不够大造成的,你可以先解压缩再安装。#切换到NVIDIA-Linux-x86-180.16-pkg1.run所在文件夹 chmod +x NVIDIA-Linux-x86-180.16-pkg1.run ./NVIDIA-Linux-x86-180.16-pkg1.run -x cd NVIDIA-Linux-x86-180.16-pkg1 sudo ./nvidia-installer
之后就是accept(接收协议)-->No(不从网上获取)-->本地编译并安装module-->Yes(备份文件)-->Ok(安装完毕) -
重新开启Xserver:
sudo /etc/init.d/gdm start
不出什么意外的话大家就可以享受这个驱动带来的性能提升了。
小结:
- 需要先关闭Xserver
- 需要删除原先的驱动
- /tmp文件夹不够大会影响解压缩
- 请注意备份xorg.conf文件
# nvidia-settings: X configuration file generated by nvidia-settings # nvidia-settings: version 1.0 (buildd@vernadsky) Tue Mar 4 20:24:34 UTC 2008 Section "ServerLayout" Identifier "Layout0" Screen 0 "Screen0" 0 0 InputDevice "Keyboard0" "CoreKeyboard" InputDevice "Mouse0" "CorePointer" EndSection Section "Files" RgbPath "/usr/X11R6/lib/X11/rgb" EndSection Section "Module" Load "dbe" Load "extmod" Load "freetype" Load "glx" EndSection Section "ServerFlags" Option "Xinerama" "0" EndSection Section "InputDevice" # generated from default Identifier "Mouse0" Driver "mouse" Option "Protocol" "auto" Option "Device" "/dev/psaux" Option "Emulate3Buttons" "no" Option "ZAxisMapping" "4 5" EndSection Section "InputDevice" # generated from default Identifier "Keyboard0" Driver "kbd" EndSection Section "Monitor" # HorizSync source: edid, VertRefresh source: edid Identifier "LaptopLCD" VendorName "Acer Aspire 5583 LCD" ModelName "LPL" HorizSync 30.0 - 75.0 VertRefresh 60.0 Option "DPMS" EndSection Section "Device" Identifier "VideocardNvidia" Driver "nvidia" VendorName "NVIDIA Corporation" BoardName "GeForce Go 7300" BusID "PCI:1:0:0" # Option "SecondMonitorHorizSync" "30-50" # Option "SecondMonitorVertRefresh" "60" # Option "SecondMonitorMetaModes" "1280x800,1024x640" # Option "TVStandard" "PAL-D" # Option "TVOutFormat" "SVIDEO" # Option "UseEdidFreqs" "True" # Option "TwinViewOrientation" "Clone" # Option "HWCursor" "false" EndSection Section "Screen" Identifier "Screen0" Device "VideocardNvidia" Monitor "LaptopLCD" DefaultDepth 24 Option "NoLogo" "True" Option "TwinView" "False" Option "metamodes" "1280x800_60 +0+0" SubSection "Display" Depth 24 EndSubSection EndSection