FreeBSD实现3D桌面
<p>这几天晚上闲来无事在琢磨FreeBSD上的3D桌面实现。现搜罗两篇比较仔细的参考文档给大家看看。我尚未动手折腾,因为有一些问题尚且不是很清楚。<br /><br />
1. 实现XGL/GLX,需要的xorg的版本最低是多少?要xorg7以上还是xorg6.9就可以?<br />
2.能够支持的显卡是哪些?我的显卡是Intel865G集成显卡。<br />
<br />
下面这篇很仔细,不过有些地方不是很明白,主要是第8步,有明白的给讲解讲解。有兴趣的可以照做看看。<br />
<br />
AIGLX for FreeBSD(FreeBSD_Release_6.2+AIGLX+Beryl)<br />
<br />
1: <a target="_blank" href="#" class="UBBWordLink">系统</a>的<a target="_blank" href="#" class="UBBWordLink">安装</a><br />
选择最小化<a target="_blank" href="#" class="UBBWordLink">安装</a>,起码这里需要把<a target="_blank" href="#" class="UBBWordLink">网络</a>或键盘配好,其他的可以再去细化。<br />
<br />
2: bash<br />
<br />
root@cnbsd/#cd /usr/ports/shells/bash<br />
root@cnbsd/usr/ports/shells/bash#make install clean<br />
root@cnbsd/usr/ports/shells/bash#ln -s /usr/local/bin/bash /bin/bash<br />
root@cnbsd/usr/ports/shells/bash#chsh -s /usr/local/bin/bash<br />
root@cnbsd/usr/ports/shells/bash#reboot<br />
以后再创建的用户就可以指定shell为bash了。<br />
<br />
<a target="_blank" href="#" class="UBBWordLink">系统</a>装好后注意装好linux_base、perl包、修改fstab显示/proc目录等。也可以在这里修改环境变量,总之根据你自己的爱好来就是了。<br />
<br />
3: axel<br />
<br />
root@cnbsd/#cd /usr/ports/ftp/axel<br />
root@cnbsd/usr/ports/ftp/axel#make install clean<br />
root@cnbsd/usr/ports/ftp/axel#cd /etc<br />
root@cnbsd/etc#make.conf<br />
<br />
加入以下内容:<br />
<i>"</i><br />
FETCH_CMD = axel -a<br />
MASTER_SITE_OVERRIDE= /<br />
ftp://ftp.freebsd.org.cn/pub/FreeBSD/ports/distfiles/ \<br />
<i>"</i><br />
<br />
4: fcitx<br />
<br />
wanglong@unixsir/usr/ports/chinese/fcitx$make install clean<br />
<br />
5:git<br />
<br />
root@cnbsd/etc#cd /usr/ports/devel/git<br />
root@cnbsd/usr/ports/devel/git#make install clean<br />
<br />
6: pkg_deinstall<br />
<br />
root@cnbsd/usr/ports/sysutils/portupgrade#cd /usr/ports/sysutils/portupgrade<br />
root@cnbsd/usr/ports/devel/git#cd /usr/ports/sysutils/portupgrade<br />
root@cnbsd/usr/ports/sysutils/portupgrade#make install clean<br />
<br />
7: pkgdb<br />
<br />
root@cnbsd/usr/ports/sysutils/portupgrade#cd /usr/ports/sysutils/pkg_trackinst<br />
root@cnbsd/usr/ports/sysutils/pkg_trackinst#make install clean<br />
<br />
8: checkout the code<br />
<br />
root@cnbsd/usr/ports/sysutils/pkg_trackinst#cd /usr<br />
root@cnbsd/usr#mv ports ports.20070128<br />
root@cnbsd/usr#git clone git://git.geekfire.com/git/ports.git<br />
root@cnbsd/usr#cd ports<br />
root@cnbsd/usr#pkg_info -Ex xorg- | grep -v linux | xargs -n1 pkg_create -b<br />
root@cnbsd/usr#pkg_deinstall -fP xorg-\* libdrm-\* dri-\* libGL-\* libGLU-\* libglut-\* nvidia-driver-\*<br />
root@cnbsd/usr#cd /usr/ports/x11/xorg<br />
root@cnbsd/usr/ports/x11/xorg#make all install clean<br />
root@cnbsd/usr/ports/x11/xorg#cd /usr<br />
root@cnbsd/usr#pkgdb -F<br />
root@cnbsd/usr#reboot<br />
root@cnbsd/#Xorg -configure<br />
root@cnbsd/#cp /root/xorg.conf.new /etc/X11/xorg.conf<br />
<br />
增加以下内容到<i>"</i>/etc/X11/xorg.conf<i>"</i>:<br />
<i>"</i><br />
Section <i>"</i>ServerFlags<i>"</i><br />
Option <i>"</i>AIGLX<i>"</i> <i>"</i>on<i>"</i><br />
EndSection<br />
<br />
Section <i>"</i>DRI<i>"</i><br />
Mode 0666<br />
EndSection<br />
<br />
<br />
Section <i>"</i>Extensions<i>"</i><br />
Option <i>"</i>Composite<i>"</i> <i>"</i>true<i>"</i><br />
EndSection<br />
<br />
<i>"</i><br />
<br />
另外打开<i>"</i>#Option <i>"</i>Dac6Bit<i>"</i> # []<i>"</i><br />
改为<i>"</i>Option <i>"</i>DRI<i>"</i> <i>"</i>True<i>"</i><i>"</i><br />
<br />
9:确认3D功能是否打开<br />
<br />
在装xfce4前可以测试下3D功能是否已经打开,这里主要通过<i>"</i>/var/log/Xorg.0.log<i>"</i>来见检查确认(linux下满街都有glxinfo,bsd下ports里连<br />
key也找不到)。<br />
<br />
root@cnbsd/#Xorg -config /etc/X11/xorg.conf<br />
root@cnbsd/#grep rendering /var/log/Xorg.0.log<br />
(II) I810(0): direct rendering: Enabled<br />
root@cnbsd/#<br />
<br />
如能看到是<i>"</i>Enable<i>"</i>就可以稍微放心点了。<i>"</i>disabled<i>"</i>多半是由于<i>"</i>mesa<i>"</i>、<i>"</i>dri<i>"</i>的问题,<i>"</i>dri<i>"</i>和<i>"</i>mesa<i>"</i>关系密切,不过这里还是要具体情况具<br />
体对待,多看日志。<br />
<br />
root@cnbsd/#cd /home<br />
root@cnbsd/home#git clone git://anongit.freedesktop.org/git/mesa/mesa<br />
root@cnbsd/home#chown -R surferwl:surferwl mesal<br />
root@cnbsd/home#su - surferwl<br />
surferwl@cnbsd~$<br />
<br />
平常习惯用<i>"</i>surferwl<i>"</i>这个用户,添加的步骤就省了。<br />
<br />
surferwl@cnbsd~$vi .profile<br />
<br />
增加以下内容:<br />
<br />
<i>"</i><br />
export PKG_CONFIG_PATH=/usr/local/libdata/pkgconfigPKG_CONFIG_PATH<br />
<i>"</i><br />
<br />
保存后退出。<br />
<br />
root@cnbsd/#cd /home/mesa<br />
root@cnbsd/home/mesa#gmake freebsd-dri-x86<br />
root@cnbsd/home/mesa#gmake install<br />
root@cnbsd/home/mesa#ln -s /usr/X11R6/lib/modules/dri /usr/X11R6/lib/dri<br />
<br />
增加以下内容到<i>"</i>/home/surferwl/.profile<i>"</i>:<br />
<i>"</i><br />
export LIBGL_DRIVERS_PATH=<i>"</i>/home/mesa/lib<i>"</i><br />
export LD_PRELOAD=<i>"</i>/home/mesa/lib/libGL.so.1<i>"</i><br />
<i>"</i><br />
<br />
root@cnbsd/#reboot<br />
<br />
再去调试3D功能,心平气和的<a target="_blank" href="#" class="UBBWordLink">操作</a>应该是没有问题的。至于<i>"</i>drm<i>"</i>,是这样解释的:<i>"</i>The DRM is shipped with the kernel, so you shouldn<i>'</i>t need to build it. If you choose to, simply run <i>"</i>make && make install<i>"</i> from the drm/bsd-core directory.<i>"</i><br />
<br />
若3D搞定后再去install其他的。<br />
<br />
<br />
10: xfce4<br />
<br />
root@cnbsd/usr/ports/x11-wm/xfce4#make install clean<br />
<br />
11: beryl<br />
<br />
root@cnbsd/usr/ports/x11-wm/beryl#make install clean<br />
<br />
12: .xinitrc<br />
surferwl@cnbsd~$ echo <i>"</i>exec fcitx -nb &<i>"</i> > .xinitrc<br />
surferwl@cnbsd~$ echo <i>"</i>exec beryl-manager &<i>"</i> >> .xinitrc<br />
surferwl@cnbsd~$ echo <i>"</i>exec /usr/local/bin/startxfce4<i>"</i> >> .xinitrc<br />
<br />
<br />
接着就去<i>"</i>startx<i>"</i>或再<i>"</i>gdm<i>"</i>吧、再就是去转你的屏幕吧,最好放张女朋友的照片,你这样可以360度的随心所意的转着看,就看你的发挥了!<br />
<br />
<br />
说明:以上的步骤有掺和了不少个人习惯性动作,有多余的步骤,比如切换目录的、使用bash shell等,其实这是个人习惯,自己明白就o了,>对着去画就行;我习惯用<i>"</i>simsun<i>"</i>或<i>"</i>文泉<i>"</i>字体,这里也没有写出来。另外就是还没有仔细检查,可能还有错字情况,但大体思想是这样的。我在使用的过程中还没有发现问题,和平常没有使用AIGLX功能的时侯一样,就是比较<i>"</i>动态<i>"</i>了。 <br />
</p>
頁:
[1]