FreeBSD中3D加速功能的啟用

來源:互聯網
上載者:User
  在windows的世界裡,3D功能是一個比較熱門的話題,大多數的遊戲都是基於3D的。但在*nix的世界,3D好象就不是那麼太重要的,甚至有的”大俠“級的高手,竟然不知道有3D功能的存在。本人為了將筆記本的3D功能啟動(作業系統用FreeBSD),費盡了心思,整日遊盪於sourceforge和google之間,終於經過近一個月的努力,開啟了3D功能,將主要的問題羅列於下:

(聲明:本文內容皆為本人的個人理解,有很多可能是錯誤的,敬請各位高手指正)

一、FreeBSD下實現3D的原理。
  其實這不僅僅是FreeBSD下的原理,也是整個*nix家族的原理。

  3D功能的實現其實也是分層的,近似於OSI的分層模型。

  (1)、在最上端,是應用程式層,就是應用程式提出3D渲染的申請。這個申請通過一個函數調用,從而調用下面一層的3D加速的調用介面。

  (2)、3D加速的函數介面(API)。它將應用程式層的各個應用轉換為系統的調用,從而可以讓X系統去和硬體打交道。最流行的API包括:DirectX,OpenGL等。在*nix的領域,就不得不提到一個Windows領域比較陌生的名詞:MESA。最原始的Mesa就是一個OpenGL的實現,現在的Mesa在許多地方都有所突破。詳情可以參看:
  http://www.mesa3d.org/
  而這些函數和X系統的介面,就是GLX。GLX是運行在X上的一種協議,能過它,函數調用才能和X系統打交道。

  (3)、DRI。這是實現3D功能最重要的部分。
  DRI是Direct Rendering Infrastructure,可以簡單得把它理解為X和硬體間的介面。但它包含很多獨立的模組,負責從X到硬體的各個環節,包括核心。
  它最主要的工作就是將Mesa或OpenGL的函數調用轉換為硬體的指令,從而指揮硬體進行渲染等工作。

  (4)、DRI驅動程式。這是直接和硬體相關的程式。它提供對硬體的支援。

二、實現的條件

  由前面的介紹可以知道,最重要的事情就是讓你DRI支援你的顯卡。目前為止,在FreeBSD中,DRI支援以下幾個系統的顯卡(在/usr/src/sys/i386/conf/NOTES中有介紹):

     device          drm             # DRM core module required by DRM drivers
     device          i915drm         # Intel i830 through i915
     device          mach64drm       # ATI Rage Pro, Rage Mobility P/M, Rage XL
     device          mgadrm          # AGP Matrox G200, G400, G450, G550
     device          r128drm         # ATI Rage 128
     device          radeondrm       # ATI Radeon
     device          savagedrm       # S3 Savage3D, Savage4
     device          sisdrm          # SiS 300/305, 540, 630
     device          tdfxdrm         # 3dfx Voodoo 3/4/5 and Banshee
如果你的顯卡沒在上面列出,那麼你就要做好打不開3D的準備!
如果你的顯卡是nVidia的,那麼你不要悲傷,接著往下看,你會發現你選擇nVidia是沒錯的!
如果你的顯卡在上面列出了,那麼你也不要高興得太早,因為這些當中都有例外,就比如說我的筆記本顯卡:ATI IGP 340M,就是很難實現3D的一款。

  測試你的顯卡是不是能實現3D功能,可以採取以下辦法:

  (1):dmesg | grep agp,如果出現

QUOTE:agp0: <VIA 82C691 (Apollo Pro) host to PCI bridge> mem 0xe0000000-0xe3ffffff at device 0.0 on pci0

的字樣,那麼你的顯卡就有可能實現3D功能。如果什麼也沒有的話,那麼恭喜你,你再也不用為3D功能而費心了,你應該毫不猶豫地關上這篇文章,並且在你得到新的顯卡前也不用再開啟。
  
  (2):kldload drm,如果沒報錯的話,那麼你的顯卡基本上就可以實現3D功能了。
    如果很遺憾地報錯了,那麼你成功的機率就減小了一半,或者說希望不很大。
  
  (3):前兩關都過了,就可以實驗了。

三、3D功能的實現。

  1、普通顯卡產:
  (1):安裝好Xorg和KDE(Gnom也可以)。

  (2):Xorg -configure。這樣在我的home裡有一個xorg.conf.new的檔案,把這複製到/etc/X11/xorg.conf。

  (3):startx。這時候會出現三個視窗和一個時鐘。有的人可能覺得是什麼地方出錯了,其實這是對的,因為這個時候,你還沒有進入KDE。

  (4):退出X。在最左邊的視窗中輸入:exit。或者按ctrl+Alt+BackSpace。

  (5):cat /var/log/Xorg.0.log | grep " Direct Rendering enabled",如果出現下面的字樣,

QUOTE:(II) RADEON(0): Direct Rendering enabled

那麼你的3D就啟用的。
   如果沒有,那麼你要仔細讀/var/log/Xorg.0.log。它會在某一行告訴你沒啟用的原因的。

  2、nVidia的顯卡:
  如果你用的是nVidia的顯卡,那就到http://www.nvidia.com/object/freebsd_1.0-8756.html去下載最新的FreeBSD的官方驅動,下載後直接安裝。
  安裝完成後,用kldstat 查看,會多了linux的模組。nVidia的說明書上說這是為了相容而設的。FreeBSD的驅動是一個純FreeBSD的驅動,不是linux相容的。可以將它去掉。(/boot/load.conf)。
  安裝完成再啟動X,這時候就會在KDE之前出現一個nvidia的表徵圖,很快就閃過去。(但本人現在已經沒有測試環境,要不也可以用相機拍下來。)只要出現這個表徵圖。那就說明你已經安裝成功了。

四、3D功能的確認

  也就是說,怎麼樣才能確定是3D加速啟用?

  (1)最正式的是:開啟一個終端,運行:glxinfo。在第二行或第三行,如果出現”Direct Rendering: YES“字樣,那就說明已經啟用3D加速了。

  (2)經實踐,最好用的一個就是運行螢幕保護裝置程式,選中帶GL的那幾個,然後測試,如果不卡,那麼就是已經啟用了。最明顯的就是:幻想。
如果能平滑地顯示,那麼就已經啟用了。

五、可能會出現的問題

  (1)你的顯卡關列表中,但是還是載入不上。
  解決辦法:用Google或baidu去搜吧。

  (2)用共用記憶體的顯卡,結果老出問題。
  解決辦法:如果能在BIOS中調節共用記憶體的大小,那麼就設成>16M。如果不能調節,就是/etc/X11/xorg.conf中,把”Ramsize"的值設定成>4096。

  (3)IBM r40e系統的筆記本顯卡不能用,老提示“不支援AGP”。
  解決辦法:升級到6.1-Release。這可是6.1-Release的一個大改進,把我的筆記本顯卡問題給解決了。(感謝FreeBSD的Team Dev!)

  (4)我的顯卡應該沒問題,但我還是不能啟用3D加速。
  解決辦法:這個問題不好回答。有很多顯卡不支援24或32位的模式,在/etc/X11/xorg.conf裡面設定成16位試試。有很多人都卡在這個地方。

  (5)我想啟用雙顯模式,應該怎麼辦?
  解決辦法:去man吧。

  (6)啟用3D加速後有什麼好處?
  答:首先,你可以玩quake;其次,你的所有和圖形相關的軟體都明顯提速;第三,你可以看一個絢麗的屏保;第四,由於很多工作都讓顯卡幹了,可以明顯延長你的CPU的壽命!最後,還有你自己的理由。

[ 本帖最後由 lsstarboy 於 2006-5-14 17:19 編輯 ]

圖片附件: [螢幕保護裝置程式圖] PingBao.jpg (2006-5-14 17:19, 53.94 K)

圖片附件: [3D功能啟用的標誌。(Xorg.0.log中的)] DRI_Enable.jpg (2006-5-14 17:19, 4.17 K)


圖片附件: [glxinfo的顯示。] glxinfo.jpg (2006-5-14 17:19, 84.76 K)

圖片附件: [FB的顯示。] drm1.jpg (2006-5-14 17:19, 32.96 K

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.