一般來說,這些都在 /var/lov/XFree86.*.log 日誌當中. "(WW)"代表警訊 "(EE)"代表錯誤
這是核心模組的問題, 請先用 lsmod 查看模組的載入情況, 如果沒有AGP驅動模組請用 modprobe 載入, 如果在載入的時候出現問題, 可能你所載入的模組並不是為你的核心編譯的. 在編譯的驅動程式的時候可以指定你的核心: 'make install SYSINCLUDE=/path/to/kernel/headers' 模組的名稱為 "NVdriver"
這可能和函式庫有關, 請執行 "ldconfig" ,另外請檢視 XF86Config設定檔, 確信裡面有加載glx的描述.
Error: Could not open /dev/nvidiactl because the permissions
are too restrictive. Please see the FREQUENTLY ASKED QUESTIONS
section of /usr/share/doc/NVIDIA_GLX-1.0/README for steps
to correct.
看起來像是PAM安全模組的問題(它變更了設備的訪問權限), 如果要解決它,請關閉PAM. 如果你的 /etc/security/ 目錄裡有 console.perms 設定檔 請將以 < dri > 開頭的字句整行移除. 如果你的系統裡有 /etc/logindevperms 請移除與 /dev/nvidiactl 有關的字句. 然後執行 chmod 0666 /dev/nvidia* ; chown root /dev/nvidia*
WARNING: Your system is running with a buggy dynamic loader.
This may cause crashes in certain applications. If you
experience crashes you can try setting the environment
variable __GL_SINGLE_THREADED. For more information please
consult the FREQUENTLY ASKED QUESTIONS section in the file
/usr/share/doc/NVIDIA_GLX-1.0/README.
這是老版本的動態加載器造成的. 請設定環境變量 __GL_SINGLE_THREADED 為任意值. 如果你使用bash shell ,請你這樣執行:
export __GL_SINGLE_THREADED
如果你使用 csh 和相關的shell 請這樣執行:
setenv __GL_SINGLE_THREADED
照上面的方法設定 __GL_SINGLE_THREADED
(II) LoadModule: "nvidia"
(II) Loading /usr/X11R6/lib/modules/drivers/nvidia_drv.o
No symbols found in this module
(EE) Failed to load /usr/X11R6/lib/modules/drivers/nvidia_drv.o
(II) UnloadModule: "nvidia"
(EE) Failed to load module "nvidia" (loader failed, 256)
...
(EE) No drivers available.
nvidia_drv.o 需要一個符號連結, 有些rpm版本在安裝時沒有建立這種連結, 推薦你用 NVIDIA_GLX 的 tar 安裝包進行安裝.
這與AGP模式有關, 可以通過 Option "NvAgp" "0至3的值" 來設定. "0"表示關閉加速; "1" 表示使用NVAGP; "2" 表示使用AGPGART; "3" 表示使用 AGPART, 如果失效, 就自動使用NVAGP模式. 注意: 要使用 AGPGART 模式, 你必需將它編譯進核心,或者是編譯成模組. 如果系統核心當中有 AGPGART, NVAGP 模式將不起任何作用. 所以推薦你將 AGPGART 編譯成模組. 另外要注意的是, 變更驅動程式後要重新啟動你的機器才能生效.
以下的芯片集支援 NVAGP 模式, 其它的芯片集請使用 AGPGART 模式.
Intel 440LX
o Intel 440BX
o Intel 440GX
o Intel 815 ("Solano")
o Intel 820 ("Camino")
o Intel 830
o Intel 840 ("Carmel")
o Intel 845 ("Brookdale")
o Intel 845G
o Intel 850 ("Tehama")
o Intel 860 ("Colusa")
o AMD 751 ("Irongate")
o AMD 761 ("IGD4")
o AMD 762 ("IGD4 MP")
o VIA 8371
o VIA 82C694X
o VIA KT133
o VIA KT266
o RCC 6585HE
o Micron SAMDDR ("Samurai")
o Micron SCIDDR ("Scimitar")
o nForce AGP
o ALi 1621
o ALi 1631
o ALi 1647
o ALi 1651
o ALi 1671
o SiS 630
o SiS 633
o SiS 635
o SiS 645
o SiS 730
o SiS 733
o SiS 735
o SiS 745
一些 Linux 核心在AMD架構的CPU上運行時可能會出現與AGP有關的Bug. 它們是:
AMD Athlon XP
AMD Athlong 4
AMD Athlon MP and Models 6
AMD Duron
你可以在開機的時候避開它們的Bug: 在 GRUB 中輸入 mem=nopentium
或在 lilo.conf 設定檔中加入 : append = "mem=nopentium"
設定 BIOS 中AGP的範圍在 0xEA 和 0xEE 之間.
請升級你的 BIOS.
設定 AGP的速率檔位:
insmod NVdriver NVreg_ReqAGPRate=2 # 只使用第2檔
insmod NVdriver NVreg_ReqAGPRate=1 # 只使用第1檔
也可以在 /etc/modules.conf 設定檔中進行描述:
alias char-major-195 NVdriver
options NVdriver NVreg_ReqAGPRate=2
options NVdriver NVreg_ReqAGPRate=1
可能它還在使用老的函式庫.
You appear to be compiling the NVdriver kernel module with
a compiler different from the one that was used to compile
the running kernel. This may be perfectly fine, but there
are cases where this can lead to unexpected behaviour and
system crashes.
If you know what you are doing and want to override this
check, you can do so by setting IGNORE_CC_MISMATCH.
In any other case, set the CC environment variable to the
name of the compiler that was used to compile the kernel.
系統上的核心不是用當前的GCC編譯的, 請重新編譯核心, 並在重新啟動時載入新核心.
解決方法同上一個問題一樣.