2007年5月8日 星期二

Ubuntu上安裝顯示卡驅動程式_Nvidia

Ubuntu上安裝Nvidia驅動程式有兩種,
一種是使用Ubuntu自帶的驅動程式,
另一種則是使用Nvidia官方的驅動程式,
兩種的差別在於官方程式對各種顯示的支援性(可能)比較好,
事實上如果沒有特殊需求,安裝Ubuntu自的就足夠了。

1. Nvidia-glx
1.
sudo apt-get install nvidia-glx
sudo cp /etc/X11/xorg.conf /etc/X11/xorg.conf_backup
sudo nvidia-glx-config enable

2.
sudo gedit /etc/X11/xorg.conf
檢視
# Load "dri"
# Load "GLcore"
有沒有註解起來,

3.
然後確定有
Load "glx"

4.
接著把
Section "Device"
Identifier "NVIDIA Corporation NV34M [GeForce FX Go5200]"
Driver "nv"
BusID "PCI:1:0:0"
EndSection

改成
Section "Device"
Identifier "NVIDIA Corporation NV34M [GeForce FX Go5200]"
Driver "nvidia"
BusID "PCI:1:0:0"
Option "RenderAccel" "true"
Option "AllowGLXWithComposite" "true"
EndSection

5.
再察看
Section "Screen"
Identifier "Default Screen"
Device "NVIDIA Corporation NV34M [GeForce FX Go5200]"
Monitor "Generic Monitor"
DefaultDepth 24

6.
儲存之後,重開機即可。

2. Nvidia官方驅動程式
1.
首先先到http://www.nvidia.com下載for i386的驅動程式,
假設為NVIDIA-Linux-x86-1.0-9755-pkg1.run

2.
接著如果已經裝了nvidia-glx,
那就 sudo apt-get --purge remove nvidia-glx
順便 sudo apt-get --purge remove nvidia-settings nvidia-kernel-common

3.
然後 sudo apt-get install linux-headers-$(uname -r) build-essential linux-restricted-modules-$(uname -r)
下載headers,安裝驅動時會用到,
sudo gedit /etc/default/linux-restricted-modules-common
在最下面最後面那個引號""中間填入nv

4.
sudo cp /etc/X11/xorg.conf /etc/X11/xorg.conf.backup
備份一下,以備不時之需。

5.
接著要離開桌面執行,按下Ctrl+Alt+F1,登入帳號密碼,
然後輸入 sudo /etc/init.d/gdm stop
接著到放9755 driver的目錄底下,
執行 sudo sh NVIDIA-Linux-x86-1.0-9755-pkg1.run
然後除了提醒要不要連到FTP選擇NO之外,其餘的yes/accept到底就是了。

6.
回到命令列之後,sudo reboot

7.
sudo gedit /etc/X11/xorg.conf
Section "Screen"裡加上
Option "AllowGLXWithComposite" "True"
Option "AddARGBGLXVisuals" "True"

8.
在Section "Device"裡加上
Option "RenderAccel" "True"
Option "DisableGLXRootClipping" "true"
Option "BackStoring" "True"
Option "TripleBuffer" "true"

9.
最後添加
Section "Extensions"
Option "Composite" "Enable"
Option "RENDER" "Enable"
EndSection

10.
儲存後,重開機。

3. AGP取代AGPGART
這部份未必要做,
主要是有些3D game會要求使用正統的AGP而不是AGPGART。

1.
lsmod |grep -i agp
確認一下系統正在用的AGP模組,把他記下來。(例如 intel-agp)

2.
sudo gedit /etc/hotplug/blacklist
第一行填入 agpgart
第二行填入你剛剛記下來的模組(例如 intel-agp)
save 離開

3.
sudo gedit /etc/X11/xorg.conf
在Section "Device"下加入
Option "RenderAccel" "true"
Option "NvAGP" "1"
如果已經有了當然就不必加了。

4.
重開機 reboot

5.
dmesg |grep -i nvidia
看看有沒有類似下面的訊息
nvidia: module license 'NVIDIA' taints kernel.
NVRM: loading NVIDIA Linux x86 NVIDIA Kernel Module 1.0-6629 Wed Nov 3 13:12:51 PST 2004

如果不成功,那就會出現the NVRM failed to load, AGPGART already loaded!

我是成功的,所以不成功之後怎麼做......我也不知道 XD

後記
有些卡比較舊的會需要使用自帶的或官方的legacy版本,
操作方式應該跟上面的沒有兩樣,
另外就是使用官方的驅動程式,
每當核心更新之後都需要重新安裝一次,是比較麻煩,
使用Ubuntu自帶的Nvidia-glx沒有這種困擾。

若是安裝nvidia-glx之後顯示有不對勁的地方,
可以參考官方驅動安裝的xorg.conf控制項填寫,
也許有效。

所謂的 nvidia-glx-legacy 版本是 Nvidia 1.0.7184
支援的顯示卡清單:http://www.nvidia.com.tw/object/1.0-7184_supported_products.html

一般的 nvidia-glx 版本是 Nvidia 1.0.9631
支援的顯示卡清單:http://www.nvidia.com.tw/object/IO_18897.html

最新的 nvidia-glx-new 版本是 Nvidia 1.0.9755
支援的顯示卡清單:http://www.nvidia.com.tw/object/IO_18897.html

glxinfo | grep render
如果返回 direct rendering: Yes, 則大致不用再修改 xorg.conf

參考文章:
1
2
3
4
5

3 則留言:

Unknown 提到...

>"< 這篇文章正如即時雨般
救了我那台開不起來的小pc

希望能讓我轉貼這篇文章^^

Zop 提到...

ok啊,請慢用 ^_^

HackerKing H. 提到...

那....應該用nvidia-glx還是官方的呢...?