FreeBSD中启用3D加速功能的方法
<p>一、FreeBSD下实现3D的原理。<br /> 其实这不仅仅是FreeBSD下的原理,也是整个*nix家族的原理。</p><p> 3D功能的实现其实也是分层的,近似于OSI的分层模型。</p>
<p> (1)、在最上端,是应用层,就是应用程序提出3D渲染的申请。这个申请通过一个函数调用,从而调用下面一层的3D加速的调用接口。</p>
<p> (2)、3D加速的函数接口(API)。它将应用层的各个应用转换为<a class="UBBWordLink" href="#" target="_blank">系统</a>的调用,从而可以让X系统去和硬件打交道。最流行的API包括:DirectX,OpenGL等。在*nix的领域,就不得不提到一个Windows领域比较陌生的名词:MESA。最原始的Mesa就是一个OpenGL的实现,现在的Mesa在许多地方都有所突破。详情可以参看:<br /> http://mesa3d.org/<br /> 而这些函数和X系统的接口,就是GLX。GLX是运行在X上的一种协议,能过它,函数调用才能和X系统打交道。</p>
<p> (3)、DRI。这是实现3D功能最重要的部分。<br /> DRI是Direct Rendering Infrastructure,可以简单得把它理解为X和硬件间的接口。但它包含很多的模块,负责从X到硬件的各个环节,包括内核。<br /> 它最主要的工作就是将Mesa或OpenGL的函数调用转换为硬件的指令,从而指挥硬件进行渲染等工作。</p>
<p> (4)、DRI驱动程序。这是直接和硬件相关的程序。它提供对硬件的支持。</p>
<p>二、实现的条件</p>
<p> 由前面的介绍可以知道,最重要的事情就是让你DRI支持你的显卡。目前为止,在FreeBSD中,DRI支持以下几个<a class="UBBWordLink" href="#" target="_blank">系统</a>的显卡(在/usr/src/sys/i386/conf/NOTES中有介绍):<br /> <br /> device drm # DRM core module required by DRM drivers<br /> device i915drm # Intel i830 through i915<br /> device mach64drm # ATI Rage Pro, Rage Mobility P/M, Rage XL<br /> device mgadrm # AGP Matrox G200, G400, G450, G550<br /> device r128drm # ATI Rage 128<br /> device radeondrm # ATI Radeon<br /> device sa vagedrm # S3 Sa vage3D, Sa vage4<br /> device sisdrm # SiS 300/305, 540, 630<br /> device tdfxdrm # 3dfx Voodoo 3/4/5 and Banshee<br />如果你的显卡没在上面列出,那么你就要做好打不开3D的准备!<br />如果你的显卡是nVidia的,那么你不要悲伤,接着往下看,你会发现你选择nVidia是没错的!<br />如果你的显卡在上面列出了,那么你也不要高兴得太早,因为这些当中都有例外,就比如说我的笔记本显卡:ATI IGP 340M,就是很难实现3D的一款。</p>
<p> 测试你的显卡是不是能实现3D功能,可以采取以下办法:</p>
<p> (1):dmesg | grep agp,如果出现<br />引用: agp0: <VIA 82C691 (Apollo Pro) host to PCI bridge> mem 0xe0000000-0xe3ffffff at device 0.0 on pci0</p>
<p>的字样,那么你的显卡就有可能实现3D功能。如果什么也没有的话,那么恭喜你,你再也不用为3D功能而费心了,你应该毫不犹豫地关上这篇文章,并且在你得到新的显卡前也不用再打开。<br /> <br /> (2):kldload drm,如果没报错的话,那么你的显卡基本上就可以实现3D功能了。<br /> 如果很遗憾地报错了,那么你成功的机率就减小了一半,或者说希望不很大。<br /> <br /> (3):前两关都过了,就可以实验了。</p>
<p>三、3D功能的实现。</p>
<p> 1、普通显卡产:<br /> (1):<a class="UBBWordLink" href="#" target="_blank">安装</a>好Xorg和KDE(Gnom也可以)。</p>
<p> (2):Xorg -configure。这样在我的home里有一个xorg.conf.new的文件,把这复制到/etc/X11/xorg.conf。</p>
<p> (3):startx。这时候会出现三个窗口和一个时钟。有的人可能觉得是什么地方出错了,其实这是对的,因为这个时候,你还没有进入KDE。</p>
<p> (4):退出X。在最左边的窗口中输入:exit。或者按ctrl+Alt+BackSpace。</p>
<p> (5):cat /var/log/Xorg.0.log | grep " Direct Rendering enabled",如果出现下面的字样,引用:(II) RADEON(0): Direct Rendering enabled<br />那么你的3D就启用的。<br /> 如果没有,那么你要仔细读/var/log/Xorg.0.log。它会在某一行告诉你没启用的原因的。</p>
<p> 2、nVidia的显卡:<br /> 如果你用的是nVidia的显卡,那就到http://nvidia..com/object/freebsd_1.0-8756.html去下载最新的FreeBSD的官方驱动,下载后直接<a class="UBBWordLink" href="#" target="_blank">安装</a>。<br /> <a class="UBBWordLink" href="#" target="_blank">安装</a>完成后,用kldstat 查看,会多了linux的模块。nVidia的说明书上说这是为了兼容而设的。FreeBSD的驱动是一个纯FreeBSD的驱动,不是linux兼容的。可以将它去掉。(/boot/load.conf)。<br /> <a class="UBBWordLink" href="#" target="_blank">安装</a>完成再启动X,这时候就会在KDE之前出现一个nvidia的图标,很快就闪过去。(但本人现在已经没有测试环境,要不也可以用相机拍下来。)只要出现这个图标。那就说明你已经<a class="UBBWordLink" href="#" target="_blank">安装</a>成功了。</p>
<p>四、3D功能的确认</p>
<p> 也就是说,怎么样才能确定是3D加速启用?</p>
<p> (1)最正式的是:打开一个终端,运行:glxinfo。在第二行或第三行,如果出现”Direct Rendering: YES“字样,那就说明已经启用3D加速了。</p>
<p> (2)经实践,最好用的一个就是运行屏幕保护程序,选中带GL的那几个,然后测试,如果不卡,那么就是已经启用了。最明显的就是:幻想。<br />如果能平滑地显示,那么就已经启用了。</p>
<p>五、可能会出现的问题</p>
<p> (1)你的显卡关列表中,但是还是加载不上。<br /> <a class="UBBWordLink" href="#" target="_blank">解决</a>办法:用Google或baidu去搜吧。</p>
<p> (2)用共享内存的显卡,结果老出问题。<br /> <a class="UBBWordLink" href="#" target="_blank">解决</a>办法:如果能在BIOS中调节共享内存的大小,那么就设成>16M。如果不能调节,就是/etc/X11/xorg.conf中,把”Ramsize"的值<a class="UBBWordLink" href="#" target="_blank">设置</a>成>4096。</p>
<p> (3)IBM r40e系统的笔记本显卡不能用,老提示“不支持AGP”。<br /> <a class="UBBWordLink" href="#" target="_blank">解决</a>办法:升级到6.1-Release。这可是6.1-Release的一个大改进,把我的笔记本显卡问题给<a class="UBBWordLink" href="#" target="_blank">解决</a>了。(感谢FreeBSD的开发团队!)</p>
<p> (4)我的显卡应该没问题,但我还是不能启用3D加速。<br /> <a class="UBBWordLink" href="#" target="_blank">解决</a>办法:这个问题不好回答。有很多显卡不支持24或32位的模式,在/etc/X11/xorg.conf里面<a class="UBBWordLink" href="#" target="_blank">设置</a>成16位试试。有很多人都卡在这个地方。</p>
<p> (5)我想启用双显模式,应该怎么办?<br /> <a class="UBBWordLink" href="#" target="_blank">解决</a>办法:去man吧。</p>
<p> (6)启用3D加速后有什么好处?<br /> 答:首先,你可以玩quake;其次,你的所有和图形相关的软件都明显提速;第三,你可以看一个绚丽的屏保;第四,由于很多工作都让显卡干了,可以明显延长你的CPU的寿命!最后,还有你自己的理由。<br /> </p>
<p><img alt="" src="https://img.jbzj.com/do/upimg/080908/1220W095003U016040.jpg" /></p>
<p><img alt="" src="https://img.jbzj.com/do/upimg/080908/1220W0950P5P232V.jpg" /></p>
<p><img alt="" src="https://img.jbzj.com/do/upimg/080908/1220W0951161503Z34.jpg" /></p>
<p><img alt="" src="https://img.jbzj.com/do/upimg/080908/1220W0951Y5F4Z36.jpg" /></p>
頁:
[1]