- 論壇徽章:
- 0
|
Gentoo Linux nVidia指南(譯)
最近翻譯的一篇gentoo文檔,響應(yīng)樂伯特的號召貼出來?傻较旅孢@個鏈接去找全部gentoo簡體中文文檔:
http://www.gentoo-cn.org/trads/
如果想入伙,到下面這個鏈接看一看:
http://www.gentoo-cn.org/trads/#doc_chap4
Gentoo Linux nVidia指南
Sven Vermeulen
作者
Joshua Saddler
作者
M Curtis Napier 編輯
Chris Gianelloni
編輯
劉清
譯者
更新于2007年 11月 15日 1. 簡介
portage樹中的nVidia驅(qū)動由nVidia發(fā)布,構(gòu)建于Linux內(nèi)核之上。驅(qū)動中包括一個擔(dān)負(fù)與卡對話的艱巨任務(wù)的二進(jìn)制部分。驅(qū)動包括兩部
分,內(nèi)核模塊和X11驅(qū)動。兩部分包括在一個單獨(dú)的包中。因?yàn)閚Vidia給它們的驅(qū)動打包的方式,你需要在安裝驅(qū)動前進(jìn)行一些選擇。
nvidia-drivers 包包括來自nVidia的最新驅(qū)動,支持所有nVidia的顯卡。根據(jù)卡的新舊不同,有幾個版本。它使用eclass檢測你正在使用的是哪種卡,然后安裝適合的版本。
2. 驅(qū)動兼容性
哪個版本?
nvidia-drivers包支持所有可用的nVidia卡。根據(jù)你使用的卡,有多個相應(yīng)版本。
較新的卡(如GeForce 8, 7, 6和FX 5系列)應(yīng)該使用100.x系列的較新的驅(qū)動。
較老的卡(如GeForce 3或GeForce 4系列)需要96.x驅(qū)動。對于這些卡,你應(yīng)該在/etc/portage/package.mask中屏蔽掉>=x11-drivers/nvidia-drivers-97.00。這樣將阻止安裝你的顯卡不兼容的新版驅(qū)動。
老的基于NV2x的顯卡(如:TNT、TNT2、Geforce和GeForce 2)需要更老的71.x驅(qū)動(例如nvidia-drivers-71.86.01)。對于這類卡,你應(yīng)該在/etc/portage/package.mask中屏蔽掉>=x11-drivers/nvidia-drivers-87.00
你可以在
發(fā)布說明
通過讀相應(yīng)的x86或x86-64的README來檢查你的顯卡與哪個驅(qū)動兼容。
3. 配置顯卡
內(nèi)核配置
正如剛才提到的,nVidia內(nèi)核驅(qū)動在你當(dāng)前內(nèi)核上運(yùn)行。它做成了一個模塊,所以你的內(nèi)核必須支持內(nèi)核模塊的加載才行。如果你是用genkernel all配置的內(nèi)核,那就是可以的。如果不是,請?jiān)贆z查一下你的內(nèi)核配置,保證這項(xiàng)支持被打開。
代碼 3.1: 打開內(nèi)核模塊加載的支持
Loadable module support --->
Enable loadable module support
你還要在內(nèi)核中打開Memory Type Range Register
代碼 3.2: 打開MTRR
Processor and Features --->
MTRR (Memory Type Range Register) support
另外,如果你裝的是AGP顯卡,你可以選擇打開內(nèi)核里的agpgart支持,直接編到內(nèi)核里或者編成模塊。如果你不使用內(nèi)核中的agpgart支持,驅(qū)動將使用它們自己的agpgart實(shí)現(xiàn),這個實(shí)現(xiàn)叫做NvAGP。在某些系統(tǒng)中,它的表現(xiàn)要強(qiáng)于內(nèi)核中的agpgart。在另外一些系統(tǒng)中,它的表現(xiàn)要弱于內(nèi)核中的agpgart。你需要自己評估在你自己的系統(tǒng)中哪個更好以得到最佳性能。如果你搞不清楚該怎么做,那就使用內(nèi)核中的agpgart吧。
代碼 3.3: 打開agpgart支持
Device Drivers --->
Character devices --->
/dev/agpgart (AGP Support)
注意: 在amd64平臺,IOMMU控制著agpgart的設(shè)置。
平臺相關(guān)注釋
重要: 對于x86和AMD64的處理器,內(nèi)核中的驅(qū)動與nvidia提供的二進(jìn)制驅(qū)動沖突。如果你為這些CPU編譯內(nèi)核,你必須按照下面的方法完全去掉內(nèi)核中的驅(qū)動。
代碼 3.4: 去掉內(nèi)核中的驅(qū)動
Device Drivers --->
Graphics Support --->
nVidia Framebuffer Support
nVidia Riva support
一個不錯的framebuffer替代物── VESA:
代碼 3.5: 打開VESA支持
Device Drivers --->
Graphics Support --->
VESA VGA graphics support
然后,在"VESA driver type"中選中vesafb或vesafb-tng。如果你用的是AMD64的處理器,你應(yīng)該選擇vesafb而不是vesafb-tng:
代碼 3.6: 選擇framebuffer類型
(X) vesafb
( ) vesafb-tng
要了解更多的信息,如果在用vesafb可以讀/usr/src/linux/Documentation/fb/vesafb.txt,否則就到/usr/src/linux/Documentation/fb/下找你使用的framebuffer的相應(yīng)文檔。
繼續(xù)進(jìn)行內(nèi)核配置
nvidia-drivers的ebuild按/usr/src/linux符號鏈接自動檢測你的內(nèi)核版本。請確認(rèn)你正確配置了你的內(nèi)核而且這個符號鏈接指向了正確的內(nèi)核源碼。參閱
安裝手冊
中的"配置內(nèi)核"一節(jié)。
首先,你需要emerge eselect(如果你沒裝它的話)。如果你在使用gentoo-sources-2.6.18-r4,你的內(nèi)核列表看起來象下面一樣:
代碼 3.7: 檢查你的/usr/src/linux符號鏈接
# eselect kernel list
Available kernel symlink targets:
[1] linux-2.6.18-gentoo-r4 *
[2] linux-2.6.20-gentoo-r7
[3] linux-2.6.20-gentoo-r8
(確認(rèn)正確的內(nèi)核被標(biāo)了星號
在上面的輸出中,你會注意到linux-2.6.18-gentoo-r4內(nèi)核標(biāo)記了星號(*),這表示它是符號鏈接指向的內(nèi)核。
如果符號鏈接沒有指向正確的內(nèi)核源碼,你必須象前面的例子那樣選擇想要的內(nèi)核源碼。
代碼 3.8: 建立或更新/usr/src/linux符號鏈接。
(選擇正確的內(nèi)核)
# eselect kernel set 1
安裝適宜的驅(qū)動
然后就要安裝驅(qū)動了。
代碼 3.9: 安裝nVidia驅(qū)動
# emerge nvidia-drivers
注意: 安裝驅(qū)動時可以加上gtk用戶標(biāo)識。加上后將會安裝media-video/nvidia-settings。這是一個方便的用來查看和配置nVidia顯卡各個方面的圖形化工具。
重要: 每次你
編譯新內(nèi)核
或重新編譯當(dāng)前內(nèi)核,你需要運(yùn)行emerge nvidia-drivers重新安裝nVidia模塊。一個更容易的保持由ebuild安裝的模塊可用的方式是安裝sys-kernel/module-rebuild。一旦你已經(jīng)安裝了它,簡單地運(yùn)行module-rebuild populate以把一個需要重新編譯的包列表populate到數(shù)據(jù)庫中。僅僅運(yùn)行module-rebuild rebuild來為你的新內(nèi)核重建驅(qū)動就行了。
安裝完成后,運(yùn)行modprobe nvidia把內(nèi)核模塊載入內(nèi)存。如果是在升級的情況下,你應(yīng)該把先前的模塊移出內(nèi)存。
代碼 3.10: 載入內(nèi)核模塊
# lsmod | grep nvidia && rmmod nvidia
# modprobe nvidia
為避免不得不每次啟動都手動地加載模塊,你可能想要在啟動系統(tǒng)時自動地加載,那就編輯/etc/modules.autoload.d/kernel-2.6,把nvidia加進(jìn)去。不要忘了過后兒運(yùn)行update-modules。
重要: 如果你把a(bǔ)gpgart編成模塊,你需要把它加入/etc/modules.autoload.d/kernel-2.6
代碼 3.11: 運(yùn)行update-modules
# update-modules
配置X服務(wù)
一旦安裝完合適的驅(qū)動,需要用nvidia驅(qū)動而不是默認(rèn)的nv驅(qū)動來配置X服務(wù)。
用你喜歡的編輯器(如nano或vim)打開/etc/X11/xorg.conf,到Device一節(jié),把Driver一行改成如下:
代碼 3.12: 在X服務(wù)配置中把nv改成nvidia
Section "Device"
Identifier "nVidia Inc. GeForce2"
Driver "nvidia""
VideoRam 65536
EndSection
然后到Module一節(jié),確認(rèn)glx模塊加載,同時dri模塊沒加載:
代碼 3.13: 更新Module一節(jié)
Section "Module"
(……)
# Load "dri"
Load "glx"
(……)
EndSection
下一步,在Screen一節(jié),確保DefaultDepth指令被設(shè)為16或24,或者你只有 Depth設(shè)為16或24的Display小節(jié)。如果不這樣做,nVidia的GLX擴(kuò)展將無法啟動。
代碼 3.14: 更新Screen section
Section "Screen"
(……)
DefaultDepth 16
Subsection "Display"
(……)
EndSection
運(yùn)行eselect,讓X服務(wù)使用nVidia的GLX庫:
代碼 3.15: 運(yùn)行eselect
# eselect opengl set nvidia
把你的用戶加入video組
你必須把你的用戶加入video組,他才會有訪問nVidia設(shè)備文件的權(quán)限:
代碼 3.16: 把你的用戶加入video組
# gpasswd -a youruser video
如果你不使用udev,這個步驟不一定需要,但也不會有壞處,還能使你的系統(tǒng)適應(yīng)將來的需要。
測試顯卡
要測試你的nVidia顯卡,就啟動X,運(yùn)行g(shù)lxinfo,它是mesa-progs包的一部分。應(yīng)該出現(xiàn)"direct rendering is activated"這類結(jié)果:
代碼 3.17: 檢查直接渲染狀態(tài)
$ glxinfo | grep direct
direct rendering: Yes
如果要測試你的FPS,就運(yùn)行g(shù)lxgears命令。
打開nvidia支持
有些工具,如mplayer和xine-lib,使用一個叫做xvmc的本地USE標(biāo)識來打開XvMCNVIDIA支持。這個支持在看高清電影時很有用。在/etc/make.conf中的USE變量中加入xvmc或者在/etc/portage/package.use中為media-video/mplayer和/或media-libs/xine-lib加入這個USE標(biāo)識。
也有一些程序使用nvidiaUSE標(biāo)識,所以你可能需要把它加入/etc/make.conf。
然后,運(yùn)行emerge -uD --newuse world以重新編譯這些獲益于上述USE標(biāo)識改變的應(yīng)用程序。
使用NVidia配置工具
nVidia也為你提供了一個設(shè)置工具。這個工具使你能夠查看并且不必重啟X服務(wù)器就改變圖形設(shè)置。這個工具在portage樹的media-video/nvidia-settings包里。如前所述,如果你安裝驅(qū)動時在/etc/make.conf或/etc/portage/package.use中加入了gtkUSE標(biāo)識,這個包將自動安裝。
4. 故障排除
在擁有4Gb或以上的內(nèi)存的機(jī)器上搞定2D
如果你在nVidia的2D加速方面有什么問題。那可能是你不能用MTRR建立混合寫入?yún)^(qū)。要確認(rèn)這個,請檢查/proc/mtrr的內(nèi)容:
代碼 4.1: 檢查你是否打開了混合寫入
# cat /proc/mtrr
每行都應(yīng)有"write-back"或"write-combining"。如果你看到有一行有"uncachable",你需要更改BIOS設(shè)置來修正它。
重啟并進(jìn)入BIOS,找到MTRR設(shè)置(可能會在"CPU Settings"下面)。把該項(xiàng)設(shè)置由"continuous"改為"discrete",再引導(dǎo)回Linux。你將發(fā)現(xiàn)沒有帶"uncachable"的行了。2D加速沒有任何毛病了。
當(dāng)我試圖加載內(nèi)核模塊時,出現(xiàn)"no such device"。
這個錯誤通常出現(xiàn)在你沒有匹配的顯卡時。確認(rèn)你有裝了nVidia的顯卡。你可以運(yùn)行l(wèi)spci再看一次。
如果你確信你有nVidia顯卡,檢查你的BIOS看一下Assign IRQ to VGA是否設(shè)置了。
5. 專家級配置
文檔
nVidia驅(qū)動包還包含了包羅萬象的文檔。這些文檔安裝在/usr/share/doc,能夠用以下命令查看:
代碼 5.1: 查看NVIDIA文檔
$ less /usr/share/doc/nvidia-drivers-*/README.gz
內(nèi)核模塊參數(shù)
nvidia內(nèi)核模塊能接受一些參數(shù)。你可以用這些參數(shù)調(diào)整驅(qū)動的行為。這些參數(shù)中的大部分都在文檔中提到了。你可以通過編輯/etc/modules.d/nvidia來增加或改變這些參數(shù)的值。在改變這個文件后記住要運(yùn)行update-modules,一定要牢記你所做的新設(shè)置只有在nvidia模塊重新加載后才會生效。
代碼 5.2: 調(diào)整nvidia驅(qū)動參數(shù)
(用你喜歡的編輯器編輯/etc/modules.d/nvidia)
# nano -w /etc/modules.d/nvidia
(更新模塊信息)
# update-modules
(卸載nvidia模塊……)
# modprobe -r nvidia
(……然后再次加載)
# modprobe nvidia
X的高級配置
GLX這個層次也還有相當(dāng)多的參數(shù)可以設(shè)置。這些參數(shù)控制電視輸出、雙顯、顯示器刷新率檢測等等的配置。同樣,所有這些可用的參數(shù)的細(xì)節(jié)可以在文檔中找到。
如果你想要使用這些參數(shù),你需要把它們填入X配置文件(通常是/etc/X11/xorg.conf)的相關(guān)設(shè)備節(jié)。舉例如下,假如我想要不顯示飛濺屏幕:
代碼 5.3: X配置中的nvidia高級配置
Section "Device"
Identifier "nVidia Inc. GeForce2"
Driver "nvidia"
Option "NoLogo" "true"
VideoRam 65536
EndSection
本文檔的內(nèi)容遵循
知識共享-署名-相同方式共享
許可協(xié)議
本文來自ChinaUnix博客,如果查看原文請點(diǎn):http://blog.chinaunix.net/u/7036/showart_487715.html |
|