HOWTO:3D Accelerated With Nvidia

Author: Nvidia Support Team www.nvidia.com

轉為 Wiki: Ping (ping 'at' pingyeh 'dot' net), 2003 年 11 月 27 日


此文檔為你提供一個在Linux作業系統上設定 Nvidia 3D加速卡的參考.



  1. 聲明
    1. 版權
  2. 環境
    1. 硬體環境
    2. 軟體環境
  3. 下載驅動程式
    1. 下載 GLX 驅動程式
    2. 下載核心驅動程式
      1. Redhat Linux
      2. Mandrake Linux
      3. SuSE Linux
      4. 源代碼
  4. 安裝
    1. 快速安裝
    2. 升級
    3. 使用SRPM安裝包
    4. 基於tar的安裝
  5. 設定 XF86Config-4
  6. RedHat8.0
    1. 核心 kernel-2.4.18-17.8.0
  7. 設定TWINVIEW
    1. 設定XF86Config
  8. 故障排除
    1. 我要如何得到故障信息的具體含義?
    2. 不能執行 startx, 日誌當中有這樣的訊息:(EE) NVIDIA(0): Failed to initialize the NVdriver kernel module!
    3. 我能啟動X, 但是 OpenGL的應用無效
    4. OpenGL 軟體出現如下警訊是什麼問題?
    5. OpenGL 程式掛掉並且有如下警訊:
    6. 在我執行 雷神III 切換顯示模式時, 它掛掉了.
    7. 當我執行 startx 時, X 掛掉了, 並在 XFree86 日誌中留有如下記錄:
    8. 我的系統可以運行, 但不穩定, 這是怎麼回事?
    9. 為什麼我的 OpenGL 軟體慢得要死?
    10. 在編譯核心驅動程式時出現警訊:
    11. X 掛掉了, 並出現警訊Failed to allocate LUT context DMA

1. 聲明

如果採用了此文檔當中的方法而導致你的任何隕失(硬體損壞,函式庫混亂等), 作者無權承擔任何責任.

在開始設定之前緊記:

1.1. 版權

Copyright (C) 2002, by Nvidia

This document is free; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This document is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You can get a copy of the GNU GPL [WWW] here

2. 環境

2.1. 硬體環境

你至少有一塊 Nvidia 系列3D加速卡和支持它的母板,下面是所有Linux支持的 Nvidia 系列3D加速卡:

以下是不在支持之列的 范澤龍XGL(Quadro4) 系列的型號(AGP8X):

2.2. 軟體環境

3. 下載驅動程式

3.1. 下載 GLX 驅動程式

你可以下載的程式包格式有: rpm , tar, srpm. 請依據你的Linux 發行版來下載:

3.2. 下載核心驅動程式

3.2.1. Redhat Linux

請注意Redhat不同版本之間是有差別的, 既便它們升級成相同的核心.

3.2.2. Mandrake Linux

3.2.3. SuSE Linux

3.2.4. 源代碼

4. 安裝

4.1. 快速安裝

下載相適的安裝包, 然後執行類似下面的指令:

4.2. 升級

我們不贊成直接升級, 請按如下步驟執行:

4.3. 使用SRPM安裝包

請執行類似以下的指令:

注意: RedHat Linux 的SRPM存放位置在: /usr/src/redhat/RPMS/i386/NVIDIA_kernel.i386.rpm

4.4. 基於tar的安裝

步驟如下:

注意: 執行 make instll 時,程式將自動移除舊的驅動程式.

5. 設定 XF86Config-4

注: 此設定基於 XFree86 的 4.0 或更高的版本.

如果XF86Config-4設定檔中己經有了 NVIDIA 顯示卡的描述, 請照下列步驟執行:

以下是 Nvidia 3D 加速卡的驅動程式選項

描述方法為 OptionNvAGP 整數值.

關於整數值的作用:

描述方法為 Option NoLogo 布爾 它用來決定 Logo 的開啟和關閉.

Option NoRenderAccel 布爾 . 它用來決定形渲染的加速開啟和關閉.

Option NoRenderExtension 布爾 用於 8 depth 的渲染.

6. RedHat8.0

下載:NVIDIA_kernel-1.0-3123.src.rpm

下載:NVIDIA_GLX-1.0-3123.i386.rpm

確定作業系統上安裝了開發軟體包, 並且你有進行過一次核心的編譯, 如果你在編譯之後 執行了 make mrproper 你得再執行一次核心的編譯.

執行rpmbuild --rebuild NVIDIA_kernel-1.0-3123.src.rpm結果為:usr/src/redhat/RPMS/i386/NVIDIA_kernel-1.0-3123.i386.rpm

安裝:核心驅動程式 rpm -ivh /usr/src/redhat/RPMS/i386/NVIDIA_kernel-1.0-3123.i386.rpm

安裝[GLX]rpm -ivh NVIDIA_GLX-1.0-3123.i386.rpm

設定XFree86Config, 和剛才提到的一樣

6.1. 核心 kernel-2.4.18-17.8.0

注意:這些步驟是基於kernel-2.4.18-17.8.0來設定的.

下載 NVIDIA_kernel-1.0-3123.src.rpm

下載 NVIDIA_GLX-1.0-3123.i386.rpm

將 /etc/inittab 設定檔中的 id:5:initdefault: 變更為 id:3:initdefault: 注意: 這將在下一次啟動時開啟多用戶模式.

備份驅動程式:

將核心升級為kernel-2.4.18-17.8.0 並同時升級源代碼為 kernel-source-2.4.18-17.8.0

使用新核心重新啟動機器. 用 root 帳號登錄.

移除老的驅動程式:

執行 rpmbuild --rebuild NVIDIA_kernel-1.0-3123.src.rpm 它將依據新的核心編譯驅動程式. 結果為: /usr/src/redhat/RPMS/i386/NVIDIA_kernel-1.0-3123.i386.rpm

安裝驅動程式:

安裝GLX驅動程式

按照上面的方法設定XF86Config-4

執行 startx .

將 /etc/inittab 設定檔中的 id:3:initdefault: 變更為 id:5:initdefault:

最後,請享受Nvidia帶給你的卓越性能吧!

7. 設定TWINVIEW

TWINVIEW可以使用你同時連接兩個瑩幕. 以下型號的芯片支援TWINVIEW, 當然,你的3D加速卡上還得有兩個接口.

7.1. 設定XF86Config

在你的XF86Config設定檔中必需有如下的描述:

你可能用到以下的 Options, 它們不是必需的:

它們的含義:

8. 故障排除

8.1. 我要如何得到故障信息的具體含義?

一般來說,這些都在 /var/lov/XFree86.*.log 日誌當中. (WW)代表警訊 (EE)代表錯誤

8.2. 不能執行 startx, 日誌當中有這樣的訊息:(EE) NVIDIA(0): Failed to initialize the NVdriver kernel module!

這是核心模組的問題, 請先用 lsmod 查看模組的載入情況, 如果沒有AGP驅動模組請用 modprobe 載入, 如果在載入的時候出現問題, 可能你所載入的模組並不是為你的核心編譯的. 在編譯的驅動程式的時候可以指定你的核心: 'make install SYSINCLUDE=/path/to/kernel/headers' 模組的名稱為 NVdriver

8.3. 我能啟動X, 但是 OpenGL的應用無效

這可能和函式庫有關, 請執行 ldconfig ,另外請檢視 XF86Config設定檔, 確信裡面有加載glx的描述.

8.4. OpenGL 軟體出現如下警訊是什麼問題?

看起來像是PAM安全模組的問題(它變更了設備的訪問權限), 如果要解決它,請關閉PAM. 如果你的 /etc/security/ 目錄裡有 console.perms 設定檔 請將以 dri 開頭的字句整行移除. 如果你的系統裡有 /etc/logindevperms 請移除與 /dev/nvidiactl 有關的字句. 然後執行 chmod 0666 /dev/nvidia* ; chown root /dev/nvidia*

8.5. OpenGL 程式掛掉並且有如下警訊:

這是老版本的動態加載器造成的. 請設定環境變量 GL_SINGLE_THREADED 為任意值. 如果你使用bash shell ,請你這樣執行:

如果你使用 csh 和相關的shell 請這樣執行:

8.6. 在我執行 雷神III 切換顯示模式時, 它掛掉了.

照上面的方法設定 GL_SINGLE_THREADED

8.7. 當我執行 startx 時, X 掛掉了, 並在 XFree86 日誌中留有如下記錄:

推薦你用 NVIDIA_GLX 的 tar 安裝包進行安裝.

8.8. 我的系統可以運行, 但不穩定, 這是怎麼回事?

這與AGP模式有關, 可以通過 Option NvAgp 0至3的值 來設定. 0表示關閉加速; 1 表示使用NVAGP; 2 表示使用AGPGART; 3 表示使用 AGPART, 如果失效, 就自動使用NVAGP模式. 注意: 要使用 AGPGART 模式, 你必需將它編譯進核心,或者是編譯成模組. 如果系統核心當中有 AGPGART, NVAGP 模式將不起任何作用. 所以推薦你將 AGPGART 編譯成模組. 另外要注意的是, 變更驅動程式後要重新啟動你的機器才能生效.

以下的芯片集支援 NVAGP 模式, 其它的芯片集請使用 AGPGART 模式.

一些 Linux 核心在AMD架構的CPU上運行時可能會出現與AGP有關的Bug. 它們是:

你可以在開機的時候避開它們的Bug: 在 GRUB 中輸入 mem=nopentium 或在 lilo.conf 設定檔中加入 : append = mem=nopentium

設定 BIOS 中AGP的範圍在 0xEA 和 0xEE 之間.

請升級你的 BIOS.

設定 AGP的速率檔位:

也可以在 /etc/modules.conf 設定檔中進行描述:

8.9. 為什麼我的 OpenGL 軟體慢得要死?

可能它還在使用老的函式庫.

8.10. 在編譯核心驅動程式時出現警訊:

系統上的核心不是用當前的GCC編譯的, 請重新編譯核心, 並在重新啟動時載入新核心.

8.11. X 掛掉了, 並出現警訊Failed to allocate LUT context DMA

解決方法同上一個問題一樣.

last edited 2004-12-25 08:45:55 by PingYeh