請選擇 進入手機版 | 繼續訪問電腦版
搜索
熱搜: 活動 交友 discuz
查看: 1729|回復: 0

[Linux] HOWTO-在 LINUX下啓動3D加速(適和LINUX高級用戶)

[複製鏈接]
發表於 2008-2-19 01:09:17 | 顯示全部樓層 |閱讀模式
希望版大可以幫忙推一下, 此貼是轉自GENTOO臺灣官方論壇:
雖然是給GENTOO用的, 但我看過也適和其他distributions.

http://www.gentoo.org/doc/zh_tw/dri-howto.xml


凡是關于EMERGE的原始碼就不要用, 因為EMERGE是GENTOO下的管理工具, 其他版本沒有的  

1. 介紹

什麼是 3D 加速?又為什麼我想要它?

有了硬體 3D 加速,三度空間貼圖會使用您的顯示卡,而不是佔用可貴的 CPU 資源。它同時也被稱為 "硬體加速" - "軟體加速" 的相反。沒有了硬體 3D 加速,您的 CPU 會被迫使用 Mesa 軟體貼圖函式庫自己描繪整個畫面。這將佔用不算少的處理資源。雖然 Xfree86 一般都支援 2D 硬體加速,卻常常缺少 3D 加速支援。3D 硬體加速在需要繪製三度空間物件的時候是非常寶貴的,例如遊戲、3D CAD、以及 3D 成像。

我該怎麼啟動硬體 3D 加速?

許多狀況下,開放原始碼以及二進位碼的驅動程式會同時存在。我們想使用開放原始碼的驅動程式,畢竟我們正在使用 Linux 作業系統,並且開放是 Linux 的原則之一。某些時候只有二進位碼的驅動程式可以使用,例如 nVidia 的卡。二進位碼驅動程式包含 nVidia 顯示卡使用的 media-video/nvidia-kernel 以及 media-video/nvidia-glx、Matrox 顯示卡使用的 media-video/mgavideo、以及給 ATI 顯示卡用的 media-video/ati-drivers。其他開放原始碼驅動程式,KyroII 顯示卡使用的 media-video/kyro-kernel 以及力求完整支援 ATI 顯示卡功能的 media-video/ati-gatos。

什麼是 DRI?

Direct Rendering Infrastructure (dri.sourceforge.net),也被稱為 DRI,是個安全且有效率地直接對顯示硬體存取的方法。它包含對 X server、一些 client 函式庫、以及核心的變更。DRI 的第一個主要目的就是提供高效能的 OpenGL 實作。

什麼是 XFree-DRM?它又怎麼跟普通的 XFree86 關聯?

XFree-DRM 是一套 XFree86 的加強套件。它透過加入直接貼圖必須的核心模組來提供顯示卡 3D 加速。

目標

這篇文章是專為那些無法在 XFree 上啟動 DRI 的使用者撰寫的。XFree-DRM 提供 3dfx、gamma、i8x0、matrox、rage128、radeon、mach64 (xfree-drm-4.3.0-r7 以後版本)、以及 sis300 系列的驅動程式。由於 2.4 版核心的直接貼圖管理員 (Direct Rendering Manager - DRM) 不支援 XFree 4.3,所以您需要 xfree-drm 套件。若您使用 2.6 版的核心,它內含的 DRM 已經支援 XFree 4.3。Gentoo 的 XFree-DRM 套件不支援 2.6 版的核心,請參考 DRI homepage 取得更多資訊跟文件。

回饋

有關建議、問題、或其他諸如此類,請來信 Donnie Berkholz.

注意: 中文使用者請來信 Victor Tseng。


2. 安裝 XFree86 以及設定核心

安裝 XFree86


  1. 原始碼 2.1: 安裝 XFree86

  2. # emerge x11-base/xfree
複製代碼


設定您的核心

偵測您的晶片組,並且只啟用它。

  1. 原始碼 2.2: 檢查 AGP 晶片組

  2. # emerge pciutils; lspci | grep AGP
  3. # 00:01.0 PCI bridge: Intel Corp. 440BX/ZX/DX - 82443BX/ZX/DX AGP bridge (rev 03)
  4. (由於硬體不同,您得到的結果可能與上面不一樣。)

複製代碼


如果您使用的晶片組不被核心所支援,那麼你或許可以嘗試將 agp=嘗試加入未支援 加入為核心的參數。這將會使用 Intel 的通用 AGP 支援例程。要加入此參數,您將需要編輯您的開機程式設定檔!

大部份 (如果不是全部的話) 的核心應該都有這些選項。這是以 gentoo-sources-2.4.20-r5 設定的。

  1. 原始碼 2.3: 設定核心

  2. # ls -l /usr/src/linux
  3. lrwxrwxrwx    1 root     root           22 May 29 18:20 /usr/src/linux -> linux-2.4.20-gentoo-r5
  4. (確定 /usr/src/linux 連結到您現在的核心)
  5. # cd /usr/src/linux
  6. # make menuconfig
複製代碼


  1. 原始碼 2.4: make menuconfig 選項

  2. Processor type and features --->
  3. <*> MTRR (Memory Type Range Register) support
  4. Character devices --->
  5. <M> /dev/agpgart (AGP Support)
  6. [*] Intel 440LX/BX/GX and I815/I820/I830M/I830MP/I840/I845/I850/I860 support
  7. (請改用您的晶片組)
  8. [ ] Direct Rendering Manager (XFree86 DRI support)
複製代碼


確認 Direct Render Manager (DRM) 在關閉狀態,因為 XFree-DRM 套件會提供。Linux 2.4 核心內的是給 Xfree 4.2 用的。

編譯及安裝核心


  1. 原始碼 2.5: 編譯及安裝核心

  2. # make dep && make clean bzImage modules modules_install
  3. # mount /boot
  4. # cp arch/i386/boot/bzImage /boot[code]

  5. 若您想讓您的核心叫 bzImage 以外的名字,請將它複製到 /boot/yourname 。別忘了設定 grub.conf 或 lilo.conf。如果您使用 LILO 的話,別忘了執行 /sbin/lilo。

  6. 3. 安裝 XFree-DRM 以及設定直接貼圖

  7. 安裝 XFree-DRM

  8. [code]原始碼 3.1: 安裝 XFree-DRM

  9. # ACCEPT_KEYWORDS="~x86" emerge xfree-drm
複製代碼


設定 XF86Config

使用您喜愛的文字編輯器開啟 /etc/X11/XF86Config 檔案,然後編輯它以啟用 DRI 跟 GLX。


  1. 原始碼 3.2: XF86Config

  2. ...
  3. Section "Module"
  4. Load "dri"
  5. Load "glx"
  6. ...
  7. EndSection
  8. ...
  9. Section "Device"
  10. Driver "radeon"
  11. ...
  12. EndSection
  13. ...
  14. Section "dri"
  15. Mode 0666
  16. EndSection
複製代碼


若您使用其他顯示卡,請使用您的驅動程式取代 "radeon"。

4. 測試 3D 加速

使用新核心重開

使用新的核心重新啟動您的電腦。是時候驗證您是否有直接貼圖支援,以及它有多美妙了。


  1. 原始碼 4.1: 測試貼圖

  2. # startx
  3. (若您將 agpgart 以及驅動程式編譯成模組,不必手動載入它們。)
  4. (他們會自動載入。)
  5. # glxinfo | grep rendering
  6. direct rendering: Yes
  7. (若它顯示 "No",表示您沒有 3D 加速支援。)
  8. # glxgears
  9. (使用預設大小測試您每秒的畫面數 (FPS)。這個數字應該會比使用 xfree-drm 之前來得高。)
  10. (請在 CPU 有空的時候作這個測試。)
複製代碼


5. 使用 CVS 原始碼

警告: 如果套件可以使用,別作這個動作。


您需要 CVS 嗎?

首先確認 xfree-drm 套件是否能用。若它不能,而且您檢查過紀錄檔以後確定那不是由於設定錯誤造成的。您可能會想考慮 CVS 原始碼。若您不想編譯整個 CVS,也可以考慮下載每天打包的版本。

CVS 原始碼支援您的卡嗎?

查詢 DRI 支援清單 看看 CVS 是否支援您的卡。即使它不直接支援,但是支援類似的卡,試試看。

按照 CVS 的指南

DRI 企劃有關於編譯 CVS 的文件。請參考 文件 然後按照指令安裝直到你到達了 Installing for XFree86 或是 Install for X.org 的部份停止。

安裝 CVS

檢查 DRI 核心模組是否已經編譯好了:


  1. 原始碼 5.1: 確認

  2. # cd ~/DRI-CVS/build/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel; ls
複製代碼


若您使用 3dfx Voodoo,您應該會看到 tdfx.o;若您使用 Matrox G200/G400,您應該會看到 mga.o;若您使用 ATI Rage 128,您應該會看到 r128.o,若您使用 ATI Radeon,您應該會看到 radeon.o ;若您使用 Intel i810,您應該會看到 i810.o。若 DRI 核心模組編譯失敗,您應該確認您正在使用正確版本的 Linux 核心。並不是版本越新就越被支援。

由於會覆蓋現有的 XFree86 或是 Xorg 安裝,您也許會想要先備份。

  1. 原始碼 5.2: 備份 XFree

  2. # quickpkg xfree
  3. (這將備份您的 XFree86 套件。)
  4. # make install
複製代碼


請參考之前的 "設定 XF86Config" 小節。

要在核心中載入相對應的 DRM 模組,請將核心模組放至 /lib/modules/`uname -r`/kernel/drivers/char/drm/ 然後執行 modules-update,再新執行您的 X server。若您正在使用的核心不是您將要使用的核心,請使用核心的版本取代 `uname -r`,。

警告: 確定您先將之前可能已經載入的 DRI 核心模組卸載。有些 DRM 模組會要求 agpgart 模組先被載入。


6. 效能調校

榨取直接貼圖的效能

變更一些 XF86Config 選項可能可以增加比預設值多 30% (或以上) 的效能,請於 /etc/X11/XF86Config 設定。


  1. 原始碼 6.1: XF86Config

  2. Section "Device"
  3.   Option     "AGPMode" "4"
  4.   (這將我的 FPS 從 609 提昇至 618。)
  5.   Option     "AGPFastWrite" "True"
  6.   (這個效果量不出來,但是它可能讓您的系統不穩。)
  7.   (您可能也必須在 BIOS 中設定它。)
  8.   Option     "EnablePageFlip" "True"
  9.   (這將我的 FPS 從 618 提昇至 702。雖然有點 "冒險",但是沒幾個人回報相關的問題。)
  10.   ...
  11. EndSection
複製代碼


若您想設定更多功能,請參考位於 DRI 網蘸上的 功能列表。

7. 故障排除

我在重新編譯核心或更新核心以後,DRI 不能用了。

每當您重新編譯核心或升級核心時,您必須同時重編核心模組。請注意您不用重新 emerge xfree,不過您必須重新 emerge xfree-drm。

即使我想破頭,我還是不知道為什麼我不能啟動 DRI。

試著在啟動 X server 之前 insmod radeon。同時嘗試將 agpgart 編進核心,而不是編譯成模組。

當我 startx,我得到:"[drm] failed to load kernel module agpgart" 這個錯誤

這是由於您將 agpgart 編譯進核心,而不是編譯成模組。除非他出問題,否則別理它。

直接貼圖不能用,而 /var/log/XFree86.0.log 說我的驅動程式版本太舊

您不是在使用 xfree-drm 驅動程式。檢查是否您將 DRM 編進核心了 - 您不該這麼作。

我使用 Radeon 顯示卡,我想要 TV-Out!

看看 ati-gatos 驅動程式。emerge -s gatos。

不能用!我的卡又新又酷但是打從根本不被支援。

試試看二進位驅動程式。若使用 ati-drivers,http://www.schneider-digital. de/html/download_ati.html 有個清單。若還是不被支援,使用 fbdev。雖然它很慢,但是至少能用。

我的顯示卡是 PCI 介面,而且不能使用。救命啊!

在 "Device" 小節啟動 ForcePCIMode。


  1. 原始碼 7.1: 啟動 ForcePCIMode

  2. Option "ForcePCIMode" "True"
複製代碼




[ 本帖最後由 wc_big_pig天尊 於 2008-2-19 01:10 編輯 ]
您需要登錄後才可以回帖 登錄 | 註冊

本版積分規則

本論壇為非營利之網路平台,所有文章內容均為網友自行發表,不代表論壇立場!若涉及侵權、違法等情事,請告知版主處理。


Page Rank Check

廣告刊登  |   交換連結  |   贊助我們  |   服務條款  |   免責聲明  |   客服中心  |   中央分站

手機版|中央論壇

GMT+8, 2021-9-21 21:48 , Processed in 0.087456 second(s), 17 queries .

Powered by Discuz!

© 2005-2015 Copyrights. Set by YIDAS

快速回復 返回頂部 返回列表