歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Unix知識 >> BSD >> FreeBSD中啟用3D加速功能的方法

FreeBSD中啟用3D加速功能的方法

日期:2017/3/1 18:14:08   编辑:BSD

一、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,如果出現
引用: 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",如果出現下面的字樣,引用:(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的開發團隊!)

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

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

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

Copyright © Linux教程網 All Rights Reserved