免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12345下一页
最近访问板块 发新帖
查看: 14191 | 回复: 42
打印 上一主题 下一主题

[FreeBSD] [原创]FreeBSD中3D加速功能的启用。 [复制链接]

论坛徽章:
54
2017金鸡报晓
日期:2017-02-08 10:39:42操作系统版块每日发帖之星
日期:2016-03-08 06:20:00操作系统版块每日发帖之星
日期:2016-03-07 06:20:00操作系统版块每日发帖之星
日期:2016-02-22 06:20:00操作系统版块每日发帖之星
日期:2016-01-29 06:20:00操作系统版块每日发帖之星
日期:2016-01-27 06:20:00操作系统版块每日发帖之星
日期:2016-01-20 06:20:00操作系统版块每日发帖之星
日期:2016-01-06 06:20:0015-16赛季CBA联赛之江苏
日期:2015-12-21 20:00:24操作系统版块每日发帖之星
日期:2015-12-21 06:20:00IT运维版块每日发帖之星
日期:2015-11-17 06:20:002015亚冠之广州恒大
日期:2015-11-12 10:58:02
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-05-13 20:58 |只看该作者 |倒序浏览
 
  在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,如果出现
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的寿命!最后,还有你自己的理由。

[ 本帖最后由 lsstarboy 于 2006-5-14 17:19 编辑 ]

PingBao.jpg (53.94 KB, 下载次数: 294)

屏幕保护程序图

屏幕保护程序图

DRI_Enable.jpg (4.17 KB, 下载次数: 309)

3D功能启用的标志。(Xorg.0.log中的)

3D功能启用的标志。(Xorg.0.log中的)

glxinfo.jpg (84.76 KB, 下载次数: 241)

glxinfo的显示。

glxinfo的显示。

drm1.jpg (32.96 KB, 下载次数: 301)

FB的显示。

FB的显示。

论坛徽章:
0
2 [报告]
发表于 2006-05-13 22:18 |只看该作者
哈哈,好东西!!

不知道我可以转到我的blog么?

论坛徽章:
0
3 [报告]
发表于 2006-05-13 22:26 |只看该作者

论坛徽章:
2
IT运维版块每日发帖之星
日期:2015-10-05 06:20:00操作系统版块每日发帖之星
日期:2015-10-05 06:20:00
4 [报告]
发表于 2006-05-13 22:50 |只看该作者
我补充一点,如果你退出X后看到如下字样: NVRM: detected agp.ko, aborting NVIDIA AGP setup!,那么就编辑你的/boot/device.hints文件,在任意位置加入:hint.agp.0.disabled="1",然后重启系统就OK。

感谢LZ的研究。

还有就是大家一直以来再问的刷新率的问题,如果刷新率达不到85Hz确实比较伤眼。今天也利用这个机会去google了下,我们将xorg.conf里的Modes行改成:Modes   1024x768@85,现在来上CU,屏幕比以前好太多了:wink:

[ 本帖最后由 zero-B 于 2006-5-14 21:04 编辑 ]

论坛徽章:
54
2017金鸡报晓
日期:2017-02-08 10:39:42操作系统版块每日发帖之星
日期:2016-03-08 06:20:00操作系统版块每日发帖之星
日期:2016-03-07 06:20:00操作系统版块每日发帖之星
日期:2016-02-22 06:20:00操作系统版块每日发帖之星
日期:2016-01-29 06:20:00操作系统版块每日发帖之星
日期:2016-01-27 06:20:00操作系统版块每日发帖之星
日期:2016-01-20 06:20:00操作系统版块每日发帖之星
日期:2016-01-06 06:20:0015-16赛季CBA联赛之江苏
日期:2015-12-21 20:00:24操作系统版块每日发帖之星
日期:2015-12-21 06:20:00IT运维版块每日发帖之星
日期:2015-11-17 06:20:002015亚冠之广州恒大
日期:2015-11-12 10:58:02
5 [报告]
发表于 2006-05-13 22:55 |只看该作者
原帖由 linuxbao3 于 2006-5-13 22:18 发表
哈哈,好东西!!

不知道我可以转到我的blog么?

自家的东西,只要你觉得还可以见人,那就转吧!

论坛徽章:
1
寅虎
日期:2013-09-29 23:15:15
6 [报告]
发表于 2006-05-14 07:38 |只看该作者
收藏先!有时间试试^_^

论坛徽章:
0
7 [报告]
发表于 2006-05-14 09:24 |只看该作者
几个网站跑了好几边。
都是因为英文水平太差而告终
谢谢你的文章

论坛徽章:
54
2017金鸡报晓
日期:2017-02-08 10:39:42操作系统版块每日发帖之星
日期:2016-03-08 06:20:00操作系统版块每日发帖之星
日期:2016-03-07 06:20:00操作系统版块每日发帖之星
日期:2016-02-22 06:20:00操作系统版块每日发帖之星
日期:2016-01-29 06:20:00操作系统版块每日发帖之星
日期:2016-01-27 06:20:00操作系统版块每日发帖之星
日期:2016-01-20 06:20:00操作系统版块每日发帖之星
日期:2016-01-06 06:20:0015-16赛季CBA联赛之江苏
日期:2015-12-21 20:00:24操作系统版块每日发帖之星
日期:2015-12-21 06:20:00IT运维版块每日发帖之星
日期:2015-11-17 06:20:002015亚冠之广州恒大
日期:2015-11-12 10:58:02
8 [报告]
发表于 2006-05-14 10:21 |只看该作者
今天上来,发现题目前多了一个小图标,仔细查了一下,竟然是加了精!

谢谢版主,我会努力的!

谢谢“congli”,给我重新排版。我是在我自己的机器(PHPBB)上写的,没注意到引用格式的变化。

[ 本帖最后由 lsstarboy 于 2006-5-14 10:24 编辑 ]

论坛徽章:
0
9 [报告]
发表于 2006-05-14 10:46 |只看该作者
有机会试试。

论坛徽章:
2
亥猪
日期:2014-03-19 16:36:35午马
日期:2014-11-23 23:48:46
10 [报告]
发表于 2006-05-14 12:06 |只看该作者
好文,需要顶。过几天有时间了试试。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP