http://www.gentoo.org.tw/doc/nvidia-guide.xml
Gentoo Linux nVidia 指南 (最後更新:2005-07-15)
內容:
1. 簡介
nVidia 自己發表了他們的 Linux 驅動程式,提供很好的效能及 3D 加速。驅動程式分成兩部份:nvidia-kernel 及 nvidia-glx。
nvidia-kernel 是處理與顯示卡間低階通訊的核心驅動程式。他只是一個叫作 nvidia 的核心模組,他安裝時依賴你的核心,並且在你用 nvidia 驅動程式時要載入他。
核心驅動程式以外,你也需要安裝 X11 GLX 層的程式 (nvidia-glx)。這是讓 X 繪製圖形用的,他內部用 nvidia-kernel 核心驅動程式和硬體溝通。
2. 設定您的顯示卡
安裝適當的驅動程式
如同上面提到的,nVidia 核心驅動程式依賴你的核心進行安裝。他編譯成模組,所以你的核心要支援模組載入。如果你使用 genkernel 設定核心,那一切都沒問題。如果沒有的話,再三確認核心有支援>這個功能:
原始碼2.1: 啟動模組載入支援
Loadable module support --->
[*] Enable loadable module support
你也需要啟動核心中的 Memory Type Range Register:
原始碼2.2: 啟動 MTRR
Processor and Features --->
[*] MTRR (Memory Type Range Register) support
nVidia 的模組以及函式庫分別放在兩個套件中:nvidia-glx 及 nvidia-ke rnel。前者為 X11 GLX 函式庫,而後者為核心模組。您兩個都需要,所以應該趁現在安裝他們。
nvidia-kernel ebuild 會依據 /usr/src/linux 符號連結決定核心的版本。請確定這個符號連結有指向你使用的核心,並且已經正確設定好了。請參閱 安裝手冊 取得設定核心的詳細資訊。
如果你使用 gentoo-sources-2.6.11-r6,你的 /usr/src 目錄看起來像這樣:
原始碼2.3: 檢查 /usr/src/linux 符號連結
# cd /usr/src
# ls -l
(確認 linux 指向正確的目錄)
lrwxrwxrwx 1 root root 22 Apr 23 18:33 linux -> linux-2.6.11-gentoo-r6
drwxr-xr-x 4 root root 120 Apr 8 18:56 linux-2.4.26-gentoo-r4
drwxr-xr-x 18 root root 664 Dec 31 16:09 linux-2.6.10
drwxr-xr-x 18 root root 632 Mar 3 12:27 linux-2.6.11
drwxr-xr-x 19 root root 4096 Mar 16 22:00 linux-2.6.11-gentoo-r6
在上面的輸出中,你會看到 linux 符號連結指向 linux-2.6.11-gentoo-r6 核心。
如果符號連結沒有指向正確的核心,你需要像這樣更新連結:
原始碼2.4: 建立/更新 /usr/src/linux 符號連結
# cd /usr/src
# ln -snf linux-2.6.11-gentoo-r6 linux
因為 nvidia-glx 依賴 nvidia-kernel,安裝 nvidia-glx 就足夠了。
原始碼2.5: 安裝 nVidia 驅動程式
# emerge nvidia-glx
重要: 當你每次 編譯新核心 或重新編譯目前的,你需要執行 emerge nvidia-kernel 重新安裝 nVidia 模組。nvidia-glx 並不會受到核心改變的影響,也不用在重新編譯/升級 X 時重新編譯。
當安裝程式結束以後,請執行 modprobe nvidia 以將核心模組載入記憶體。
原始碼2.6: 載入核心模組
# modprobe nvidia
為了避免在每次開機都要載入模組,您大概想在每次開機的時候都自動將此模組載入,所以請編輯 /etc/modules.autoload.d/kernel-2.6 (或 kernel-2.4,依你的核心版本決定),並在裡面加上 nvidia>。別忘了在儲存退出以後執行 modules-update!
原始碼2.7: 執行 modules-update
# modules-update
設定 X Server
當安裝了適當的驅動程式以後,您必須設定 X Server (XFree86 或 Xorg),讓它使用 nvidia 驅動程式,而不是預設的 nv 驅動程式。
使用您喜愛的文字編輯器 (例如 nano 或 vim) 開啟 /etc/X11/xorg.conf (或是你仍使用舊的設定檔,用 /etc/X11/XF86Config),接著來到 Device 小節。在此小節中,更改有關 Driver 那行:
原始碼2.8: 在 X Server 設定檔中將 nv 改成 nvidia
Section "Device"
Identifier "nVidia Inc. GeForce2"
Driver "nvidia"
VideoRam 65536
EndSection
然後到 Module 小節然後確定載入 glx 模組以及 dri 沒有載入:
原始碼2.9: 更新 Module 小節
Section "Module"
(...)
# Load "dri"
Load "glx"
(...)
EndSection
接著,在 Screen 小節中,確定 DefaultDepth 設定成 16 或 24。沒有的話, nvidia-glx 不會啟動。
原始碼2.10: 更新 Screen 小節
Section "Screen"
(...)
DefaultDepth 16
Subsection "Display"
(...)
EndSection
執行 opengl-update 讓 X Server 使用 nVidia GLX 函式庫。
原始碼2.11: 執行 opengl-update
# opengl-update nvidia
新增您的使用者到Video群組中
您必需增加使用者到Vedio群組中,這樣它才有權限存取nvidia裝置檔:
原始碼2.12: 增加使用者到Vedio群組中
# gpasswd -a youruser video
如果您不使用udev這動作也許不是全不都要做,但是這並不會影響和使您的系統變爛:p
測試您的顯示卡
要測試您的 nVidia 顯示卡,啟動 X 然後執行 glxinfo | grep direct 指令,它應該告訴您直接貼圖已經啟動:
原始碼2.13: 檢查直接貼圖狀態
$ glxinfo | grep direct
direct rendering: Yes
要測試您的 FPS,請執行 glxgears。
啟動 nvidia 支援
一些工具,像是 mplayer 及 xine-lib,使用他們自己的 USE 設定, "nvidia" 啟動 XvMCNVIDIA 的支援,在觀看高解析度電影時很有用。在 /etc/make.conf USE 變數中加入 "nvidia" 或在 /etc/portage/package.use 中的 media-video/mplayer 及 media-libs/xine-lib 加入。
然後,執行 emerge -uD --newuse world 重新編譯會受到這改變影響的程式。
3. 解決問題
在有 4Gb 以上記憶體的電腦讓 2D 工作
如果你在 nVidia 2D 加速上遇到困難,可能是你不能啟動 MTRR 的 write-combining range。要確認的話,檢查 /proc/mtrr 的內容:
原始碼3.1: 檢查是否啟動 write-combining
# cat /proc/mtrr
每一行都應該包含 "write-back" 或 "write-combining"。如果你看到有一行有 "uncachable" 你需要改變 BIOS 設定來修正。
重開機然後進入 BIOS,找到 MTRR 設定(通常在 "CPU Settings" 中)。把他的設定從 "continuous" 改成 "discrete",然後開機回到 Linux。你會發現不再有 "uncachable" 而且 2D 加速可以正常工作>。
我碰到關於不支援 4K 堆疊大小的錯誤
版本1.0.6106 之前的 nvidia-kernel 只支援 8K 堆疊大小。比較新的核心 (2.6.6 及更新的) 已經支援 4K 堆疊大小。在核心設定中不要選擇 4K 堆疊大小。你可以在 Kernel Hacking 區域中找到這項>設定。
4. 進階設定
文件
nVidia 驅動程式套件也包含廣泛的文件。這安裝到 /usr/share/doc 目錄中,你可以用底下的指令瀏覽:
原始碼4.1: 瀏覽 NVIDIA 文件
# less /usr/share/doc/nvidia-glx-*/README.txt.gz
核心模組參數
nvidia 核心模組接受許多的參數(選項),讓你調整驅動程式的行為。編輯 /etc/modules.d/nvidia 加入或改變這些參數。記得在修改後執行 modules-update。另外要記在心上的是要重新載入 nvidia 新的設定才會生效。
進階 X 設定
GLX 層也有眾多的選項可以設定。這些設定控制 TV 輸出,多顯示器,顯示器頻率偵測等等。同樣的,所有的選項在文件中有清楚的說明。
如果你想要設定某些選項,你需要在 X 設定檔(通常是 /etc/X11/xorg.conf)中相對應的裝置區域加入。例如說,我想要關閉起始商標畫面:
原始碼4.2: X 設定檔中的進階 nvidia 設定
Section "Device"
Identifier "nVidia Inc. GeForce2"
Driver "nvidia"
Option "NoLogo" "true"
VideoRam 65536 EndSection