May 142007
 

Ubuntu 7.04(feisty fawn)使用了Xorg 7.2,这是第一个内置了3D渲染支持的Xorg版本。因此在这个版本之下,我们无需安装XGL就可以获得内建的openGL支持(也就是以前称做AIGLX的东西)。而7.04这个版本更是集成了compiz这个官方的用于Composition 的window manager。因此在feisty下,我们想要看到3D特效,就只是动动鼠标修改几个选项这么简单。

然而理想与现实的差距是巨大的,在下在此有差点翻船。过程比较曲折,还好最终解决了,留下手记与心得如下。

首先是做功课了,也就是了解其背景知识,这是作为一个勇敢的小白的必备素质。简单说就是了解一下需要哪些条件,例如需要事先安装哪些软件包,以及硬件驱动支持等。由于以前在测试版本的时候搞过这玩艺,因此也算轻车熟路了,唯一要注意的方面就是以前在1号机上用得是nv的显卡,而现在要玩的2号机是Intel 865G主板的集成显卡。简单看了一下相关资料,硬件方面应该没问题。

因此在下自信满满得在设置-桌面特效中开启了特效并义无反顾得没看预览直接点了应用,等待我的是…….白屏……

这下抓狂了,整个GUI都处于不可控状态了,可以看到从命令行执行到X的程序是可以启动的,但只是显示不出来。重起X也是一样的问题,用户登录成功后就是一片白…..

这个时候,第一要做的是–冷静。这是小白的必备素质之二。现在看来只是compiz不知为何输出不了而已,系统本身并没出现什么重大问题,因此要做的只不过是恢复到设置特效之前。所以现在摆在面前唯一的问题就是:如何在命令行方式修改设置,以及–找到修改这个设置的地方。

具体过程可谓艰辛,按照思路,首先要检查的就是xorg.conf,无果,其次是gdm.conf,亦无果。然后想到的是在整个etc下搜寻composition相关的设置,因此动用了grep -R composition /etc/*,竟然也找不到!无奈,祭出终极大招:find / -mtime 0,找修改时间最近的文件。结果只有2页这么多,比预想的少一些。排除掉/var/run以及tmp一干不相关文件,发现/etc下面并未被修改-_-,keypoint是在home下的…..再仔细找了一下,最终定位在.gconf这里,是~/.gconf/desktop/gnome/applications/window_manager这个文件夹,文件名为%gconf.xml。其内容如下:

<?xml version=”1.0″?>
<gconf>
  <entry name=”default” mtime=”1179157504″ type=”string”>
  <stringvalue>/usr/bin/compiz</stringvalue>
  </entry>
  <entry name=”current” mtime=”1179158554″ type=”string”>
  <stringvalue>/usr/bin/compiz</stringvalue>
  </entry>
</gconf>

看来我最初的思路是错的,这个3D效果开启的开关,只不过是把window manager由metacity换为compiz而已,关于是否开启composition的设置系统并未做任何改动,而是永久开启的。到此也知道如何改回去了,把compiz替换成metacity即可,更暴力的方法是直接删除这个%gconf.xml,重起X,桌面又回来了:)

然后就是想办法解决白屏问题,简单看了一下Xorg的log,发现原因很可能是显卡驱动的api支持方面的问题造成的。于是打算升级一下驱动试试看。由于Intel大部分硬件驱动都是开源的,所以并不像nv或ati那样需要restric的驱动包以及内核。直接用新立得update,看看有没有最新版本的驱动,发现目前使用的i810已经是最新的了。然后又发现这里是有2个显卡驱动的,一个是810,另一个是intel,对比了一下description发现intel的驱动似乎是比较好的,于是选中xserver-xorg-vedio-intel,计算依赖关系时自动删除了xserver-xorg-vedio-i810,安装完成后restart X,结果……X挂了-_-

照样看log,发现是无法载入i810模块,呃,貌似忘记修改xorg.conf了,立刻把i810替换成intel,再startx,起来了。一切顺利。然后再次enable Desktop Effects,这次终于出来了,窗口开始抖了(这次不是崩溃,是特效-_-)。

简单测试了一下,看来集成显卡也是可以用的嘛,不至于太慢。glxgears也有400分,呵呵。

总结一下:

1,在865G的平台上想要开启AIGLX,需要使用intel这个驱动,而不是i810。然后开启Desktop Effects即可。

2,如果Desktop Effects开启出现任何问题导致无法在GUI下进行操作,通过修改gconf配置文件来还原,位置是在用户的~/.gconf。

最后感慨,gconf这玩艺现在越做越象注册表了。

顺便还发现,以前用i810不能调整刷新速率的,现在可以了,找了一下说明发现i810是自己管理分辨率和刷新速率的,无视xorg.conf的设置,怪不得我前段时间调整了好几天的xorg.conf都不能把刷新速率由75Hz降到60Hz。还有intel这个驱动可以支持宽屏的分辨率,不像i810一样需要安装915reslution来实现。

  2 Responses to “开启ubuntu 7.04的3D特效”

  1. 谢谢你的这篇文章,帮助我解决了白屏的问题,哈哈

  2. [...] 开启ubuntu桌面特效结果白屏了,然后网上寻找答案,结果在一个人的blog里面找到了解决办法。.~/gconf/desktop/gnome/applications/window_manager这个文件夹,文件名为%gconf.xml。其内容如下: /usr/bin/compiz /usr/bin/compiz [...]

 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>