在圖形芯片領域,nVidia是一個後來者,它的歷史僅相當於ATi的一半。1993年初,NVIDIA 由 Jen-Hsun Huang,,Chris Malachowsky和 Curtis Priem 三人共同創辦,但是,nVidia又一度是圖形處理芯片領域的最強者,nVIDIA出品的Linux驅動安裝軟件工具包將自動檢查計算機的各種細節,並能自動安裝好各種驅動程序。這裡介紹一下驅動安裝、升級的簡單過程。Linux系統自帶的驅動程序只包括了nVIDIA 2D加速,如果需要獲取更好的3D加速效果,需要安裝nVIDIA專用驅動軟件工具包。3D 硬件加速在需要繪制三度空間對象的時候是非常寶貴的,例如游戲、三維CAD、以及 3D 成像。本文應用環境是Red Had Enterprise Linux 4.0、nVIDIA顯卡型號:華碩N6200/TD/128M(6200AGP)。
一、准備工作
在配置nVIDIA顯卡 之前, 您需要了解所安裝的系統的下列信息:顯示器規格,顯示卡的芯片類型,顯示卡的顯存容量, 顯示器的規格被 X11 用來決定顯示的分辨率和刷新率。這些規格通常可以從顯示器所帶的文檔中, 以及制造商的網站找到。 需要知道兩個數字范圍:垂直刷新率和水平刷新率。 顯示卡的芯片類型將決定 X11 使用什麼模塊來驅動圖形硬件。 絕大多數的硬件都能被自動檢測,但是了解它在自動檢測出錯的時候還是很有用處的。顯示卡的顯存大小決定了系統支持的分辨率和顏色深度。了解這些限制非常重要。因為安裝驅動程序可能需要配合核心來編譯,所以會使用到內核源代碼,此外,也需要編譯器 ( compiler ) 的幫助,因此,先確定您的 Linux 系統當中已經下列軟件的存在 :kernel-source 、kernel 、gcc 、make。 打開一個終端,使用命令檢查:
# rpm -qa | grep gcc;rpm -qa | grep make;rpm -qa | grep kernel
如果沒有3D API在開發程序時,程序員必須要了解全部的顯卡特性,才能編寫出與顯卡完全匹配的程序,發揮出全部的顯卡性能。而有了3D API這個顯卡與軟件直接的接口,程序員只需要編寫符合接口的程序代碼,就可以充分發揮顯卡的不必再去了解硬件的具體性能和參數,這樣就大大簡化了程序開發的效率。 同樣,顯示芯片廠商根據標准來設計自己的硬件產品,以達到在API調用硬件資源時最優化,獲得更好的性能。有了3D API,便可實現不同廠家的硬件、軟件最大范圍兼容。比如在最能體現3D API的游戲方面,游戲設計人員設計時,不必去考慮具體某款顯卡的特性,而只是按照3D API的接口標准來開發游戲,當游戲運行時則直接通過3D API來調用顯卡的硬件資源。 目前個人電腦中主要應用的3D API有DirectX和OpenGL。DirectX目前已經成為游戲的主流,市售的絕大部分主流游戲均基於DirectX開發,例如《帝國時代3》、《孤島驚魂》、《使命召喚2》、《Half Life2》等流行的優秀游戲。而OpenGL目前則主要應用於專業的圖形工作站,在游戲方面歷史上也曾經和DirectX分庭抗禮,產生了一大批的優秀游戲,例如《Quake3》、《Half Life》、《榮譽勳章》的前幾部、《反恐精英》等,目前在DirectX的步步進逼之下,采用OpenGL的游戲已經越來越少,但也不乏經典大作,例如基於OpenGL的《DOOM3》以及采用DOOM3引擎的《Quake4》等,無論過去還是現在,OpenGL在游戲方面的主要代表都是著名的ID Software。
·OpenGL
繼DirectX後,OpenGL可說是下一個最受歡迎的3D API。其實OpenGL比DirectX存在的時間更久,相對於DirectX只可以應用在微軟的平台,OpenGL則可以應用在很多不同的操作系統上。目前,大多數Linux下的3D加速游戲采用的都是OpenGL,因此對於nVIDIA最新的驅動程序,只需做很小的改動就可以適於大多數的游戲。Linux下的3D API是基於OpenGL的。OpenGL是個專業的3D程序接口,是一個功能強大,調用方便的底層3D圖形庫。OpenGL的前身是SGI公司為其圖形工作站開發的IRIS GL。IRIS GL是一個工業標准的3D圖形軟件接口,功能雖然強大但是移植性不好,於是SGI公司便在IRIS GL的基礎上開發了OpenGL。
OpenGL的英文全稱是“Open Graphics Library”,顧名思義,OpenGL便是“開放的圖形程序接口”。雖然DirectX在家用市場全面領先,但在專業高端繪圖領域,OpenGL是不能被取代的主角。 OpenGL是個與.硬件無關的軟件接口,可以在不同的平台如Windows 95、Windows NT、Unix、Linux、MacOS、OS/2之間進行移植。因此,支持OpenGL的軟件具有很好的移植性,可以獲得非常廣泛的應用。由於OpenGL是3D圖形的底層圖形庫,沒有提供幾何實體圖元,不能直接用以描述場景。但是,通過一些轉換程序,可以很方便地將AutoCAD、3DS等3D圖形設計軟件制作的DFX和3DS模型文件轉換成OpenGL的頂點數組。
OpenGL不是自由軟件,它的版權、商標(OpenGL這個名字)都歸SGI公司所有。但在Linux下有OpenGL的取代產品:Mesa。Mesa提供和OpenGL幾乎完全一致的接口,對利用OpenGL API編程的人來說,幾乎感覺不到任何差異。Mesa是遵循GPL協議(部分遵循LGPL協議)的自由軟件,而且,正是由於Mesa的自由性,它在對新硬件的支持度等方面都超過了OpenGL。Mesa可以從www.mesa3d.org取得。在Linux下開發OpenGL程序,最常用的工具是GLUT(The OpenGL Utility Toolkit)。它可以創建一個或多個OpenGL窗口,響應、處理用戶的交互操作、簡單的彈出式菜單以及一些內置的繪圖和字體處理功能。GLUT和OpenGL一樣,可以移植於多種平台。由於它良好的表現,現在它已經成為Mesa發布的標准套件之一。
·DRI,全稱 Direct Rendering Infrastructure,是 X 窗口系統裡允許應用程序以一種安全有效的方式直接訪問顯示設備的框架。它包括對 X 服務器,某些X客戶端庫和內核的改動。DRI 的第一個主要應用是創建快速的 OpenGL 實現。DRI 是 XFree86 4.x 以及其後繼者 X.org 的組成部分,也是 Mesa -個 OpenGL API 的開源實現-的組成部分。有一些3D加速驅動是按照 DRI 標准寫成的,包括 ATI,Matrox,3DFX 和 Intel。 DRI 最初是由 Precision Insight, Inc. (PI) 公司在 Red Hat Inc. 和 SGI 的合作和部分資助下開發的。隨著 PI 被 VA Linux 所收購,以及後來 VA Linux 退出 Linux 領域,DRI 現在由Tungsten Graphics Inc.公司繼續維護。該公司由當初 PI 公司的一些 DRI 開發者所創建。Tungsten Graphics 是目前所有 DRI 開發的焦點,許多開源開發者通過 sourceforge 上的 DRI 項目繼續為 DRI 貢獻代碼。
二、命令行下載安裝顯卡驅動
1. 首先備份原配置文件
使用如下命令備份Xorg的配置文件(備份的文件名為xorg.conf.bak):
# cd /etc/X11;cp ./xorg.conf ./xorg.conf.bak
2.測試安裝3D驅動前的數據
首先測試安裝3D驅動程序前的顯卡速度,打開一個桌面終端運行。
#glxgears
glxgears是一個測試你的Linux是否可以順利運行2D、3D的測試軟件,這個程序彈出一個窗口,裡面有三個轉動的齒輪。屏幕將顯示出每五秒鐘轉動多少柵,所以這是一個合理的性能測試。窗戶是可以放縮的,柵數多少極大程度上依賴於窗口的大小。如果你的顯示卡夠好,而且你的驅動程序也配合得很好,那齒輪就跑得越快。有些極品顯卡(nVIDIA GeForce 7950 GT)執行glxgears之後,快到連齒輪都看不清。這裡請記錄下FPS數字(每秒的幀速度)以鑒別驅動是否正常安裝。
早期Linux下nVidia的顯示卡驅動有一個特點:所有顯示卡可以使用相同的驅動程序。現在情況有所改變:由於nVIDIA公司的產品線非常長,所以需要根據你使用的顯卡芯片型號選擇合適的驅動程序(官方Linux驅動網址:http://www.nVIDIA.com/object/unix.html)。截至本文寫作時最新版本的驅動程序是:8756。適合的顯卡芯片:第四代GeForce顯卡芯片到 GeForce 79XT。另外還要中央處理器型號選擇驅動類型,使用64位Intel Pentium4 、Pentium D 、CeleronD 中央處理器和64位的AMD中央處理器使用Linux AMD64/EM64T驅動程序:IAnVIDIA-Linux-x86_64-1.0-8756-pkg2.run ,其他X86處理器使用IA32驅動程序。本文以後者為例;但是如果你使用教老的顯卡芯片比如:RIVA TNT、RIVA TNT2/TNT2 Pro 、RIVA TNT2 Ultra、Vanta/Vanta LT 、RIVA TNT2 Model 64/Model 64 Pro、Aladdin TNT2 、GeForce 256 、 GeForce DDR 、Quadro 、GeForce2 GTS/GeForce2 Pro 、GeForce2 Ti 、 GeForce2 Ultra 、 Quadro2 Pro 。請使用以前的舊版本驅動程序:如4363。
3、命令行下安裝過程:
·關閉SElinux
使用Fedora Core 3 、Fedora Core 4、Fedora Core 5 或Red Had Enterprise Linux 4 的用戶要首先關閉SElinux,方法是修改/etc/selinux/config文件中的SELINUX="" 為 disabled ,然後重啟服務器。
·切換到命令行工作環境安裝
因為NVIDIA的顯卡驅動程序安裝時X服務器不能運行。使用命令或組合鍵“Ctrl+shift+Backspace”退出X-window,進入命令行:
#wget http://download.nvidia.com/XFree86/Linux-x86/1.0-8756/NVIDIA-Linux-x86-1.0-8756-pkg1.run #init 3#.sh nVIDIA-Linux-x86-1.0-8756-pkg1.run
run 文件可以接收許多命令行參數,下面是一些比較常見的選項:
--info : 顯示關於 .run 文件的內嵌信息並退出。
--check : 檢查檔案的完整性並退出。
--extract-only :僅解壓 ./NVIDIA-Linux-x86-1.0-6629.run但不運行。
--help : 顯示普通命令行參數的用法後退出。
--advanced-options: 顯示高級命令行參數的用法後退出。
說明:為了截圖更加清晰筆者使用遠程帶來工具putty登錄到Linux計算機進行驅動安裝。
·安裝詳細步驟:
命令執行後是一個綠色為主的界面,詢問是否接受協議件
選擇“Accept”選項接受協議開始安裝
安裝完成後系統會提示是否使用nvidia-xconfig 命令更新當前配置,此時可以放心使用因為原配置是會自動備份的,選擇“yes” 選項繼續。
4.檢測啟用Nvidia 驅動程序的“快寫”(FastWrite)和“邊帶尋址”(Side Band Addressing) 功能。
SBA“邊帶尋址”,是指一種獨立的地址和指令總線,圖形控制芯片可以借助它來迅速地獲取數據,而無需打斷系統內存數據流的連續傳輸。為把AGP總線的傳輸效率與吞吐量都發揮到極致,AGP 2x協議把其中的地址總線從數據總線中單獨分離了出來,在理論上是給AGP總線另添加了8條額外的邊帶線路。這8條額外的線路總稱為邊帶地址端口(Sideband Address Port),簡稱為SBA。雖然SBA采用的是8位帶寬的傳輸界面,但它允許圖形控制芯片並行地向系統內存發出新的AGP數據請求和傳輸指令,同時又不干擾其他數據連續不斷地通過AGP總線的主32條地址數據傳輸線路(簡稱AD)。實際上,圖形控制芯片也可以通過AD線路向系統內存發出新的AGP數據請求,不過這樣一來,就會給AGP總線正常的數據傳輸增加負擔,因此建議打開這8條額外的線路傳輸數據和指令請求。
AGP Fast Write:即AGP快寫功能,開啟後可以提高AGP的傳輸效能,讓CPU不通過主內存而直接將數據寫入顯示卡的顯存中,提高了效率。從這兩個技術的分析中,我們都可以發現,邊帶尋址和快寫功能對顯卡性能的提升都一定的幫助。
想啟用“快寫”和“邊帶尋址”快寫功能的前提是你的主板必須支持它,並且你要在 BIOS 中啟用它,大部分主流主板支持。
(1) 查看主板支持情況使用命令:“cat /proc/driver/nvidia/agp/host-bridge”
(2) 在啟用快寫和邊帶尋址功能前請先確認你的顯卡支持它。使用命令:“cat /proc/driver/nvidia/agp/card”
(3) 如果你的顯卡支持快寫和邊帶尋址請繼續做: 編輯 /etc/modules.conf加入一行:
Options nvidia NVreg_EnableAGPSBA=1 NVreg_EnableAGPFW=1 NVreg_ReqAGPRATE=8
(4) 重新啟動計算機
(5) 現在檢查快寫和邊帶尋址功能是啟用狀態(Enabled)還是禁用狀態)(Disabled)。
使用命令:“cat /proc/driver/nvidia/agp/status”
啟用“快寫”和“邊帶尋址”可以幫助提高了虛幻競技場, 雷神之錘3和其它第一人稱視角射擊游戲的 FPS數值。
到此為止我們在命令行下完成對nVIDIA顯卡的驅動安裝。