配置XGL实现梦幻般Linux 3D桌面

发布时间:2006-09-16 12:01:25来源:红联作者:flycocoon

转载,本文仅做参考学习之用

时下,Linux社区最热门的话题之一莫过于对XGL和AIGL

X的讨论和实现。XGL出自于Novell,完全基于OpenGL绘图引擎,通过利用 nvidia/ATI显卡优良的硬件加速通道实现可用的2D/ 3D桌面。XGL可以说是新一代的建立在OpenGL基础上的X server。由于充分利用了显卡的GPU,运行速度相当的快。没有出现好看不好用的情况。个人觉得值得期待。AIGLX是RedHat/ Fedora项目下的一个增强目前X服务器显示效能的子项目,也是利用OpenGL的绘图引擎,但主要是在现有的X架构下进行扩展和对Mesa增加 patch.动作不如Novell大。不过由于强调了将尽量依赖open source的driver, 很多人也看好。

官方网站:

XGL:http://en.opensuse.org/Xgl

AIGLX: http://fedoraproject.org/wiki/RenderingProject/aiglx

参考文献:

http://www.ubuntuforums.org/showthread.php?t=131267

http://www.ubuntuforums.org/showthread.php?t=131253

http://www.ubuntuforums.org/showthread.php?t=134657

http://ubuntuforums.org/showthread.php?t=132063

大致的介绍了一下后,现在看看如何在ubuntu Dapper下配置实现XGL。(Breezy没有试过,但应该也是可行的。) 声明一下的是目前这些技术都还处在开发阶段(尽管本人觉得已经相当的稳定了),但还是有可能造成系统不稳定。如果你出现了问题,可以到这里讨论。还有就是由于XGL是基于OpenGL绘图引擎的,所以你必须有nVIDIA或ATI显卡(如果有人能在非这两种卡的情况下配置成功,请告知,我会将这段修改)。 nVIDIA的基本要在Geforce2以上,ATI在r200以上。因为看到网上很多人都报怨现行的驱动已经不支持很旧显卡了。使用nv驱动的肯定不行。(我在nvidia的TNT2上用nv的驱动试了,不行)还有本文主要针对nVidia显卡,因为我没有ATI卡,所以也无法尝试。

1. 确保你打开了sources.list中的universe和multiverse源。怎么打开我就不多讲了。

2. 确保升级到最新的nvidia驱动.

[code]apt-get update && apt-get install linux-restricted-modules-$(uname -r)

nvidia-glx nvidia-glx-dev nvidia-kernel-common[/code]

3. 完成之后,我们开始配置xorg.conf.首先做个备份,以免出错后无法回复。

[code]cp /etc/X11/xorg.conf /etc/X11/xorg.conf.orig[/code]

现在开始配置。看到"Module"的部分,将Load "dri""注释掉。然后加上Load "glx"".完成之后象这样:

[code]Load "glx"

# Load "dri"[/code]

其他的不用修改。然后看到"Device"部分。参照下面的配置改:

[code]Section "Device"

Identifier "NVIDIA Corporation NV17 [GeForce4 420 Go 32M]"

Driver "nvidia"

Option "NvAGP" "1"

Option "NoLogo" "true"

Option "RenderAccel" "true"

Option "AllowGLXWithComposite" "true"

Option "CursorShadow" "1"

EndSection[/code]

Identifier不要照抄我的,你的显卡是什么型号就是什么。

Driver一定要将"nv"改为"nvidia".

Option "NvAGP" "1"表示用agpgart模块。如果你是PCIE显卡,不用这个。

Option "NoLogo" "true"表示不显示nvidia的logo.

Option "RenderAccel" "true"表示打开显卡的硬件加速。

option "AllowGLXWithComposite" "true"表示利用OpenGL来进行图形的合成渲染。

Option "CursorShadow" "1"表示显示鼠标阴影。(这是我原来有的,和XGL没什么关系,加不加无所谓。)

好了,如果你已经完成,那么xorg.conf的部分就完成。Save 你的xorg.conf文件。

4. 重启X或是重启电脑,保证所有的driver和modules都能正常的加载。如果你发现X起不来了,那么你基本上可以在这停下了。恢复原来你备份的xorg. conf然后看看到底是怎么回事。如果你的X还能起,那么,请继续。

5. 这一步我们安装全新的XGL服务器和图形合成管理器。同样,必须打开universe和multiverse源。

[code]apt-get install compiz xserver-xgl libgl1-mesa xserver-xorg libglitz-glx1

compiz- gnome[/code]

6. 完成了之后,我们来配置gdm.

[code]vi /etc/gdm/gdm.conf-custom[/code]

将下面的配置文件完全照抄

[code][daemon]

[security]

[xdmcp]

[gui]

[greeter]

[chooser]

[debug]

[servers]

0=Xgl

[server-Xgl]

name=Xgl server command=/usr/bin/Xgl :0 -fullscreen -ac -accel glx:pbuffer -accel xv:fbo flexible=true[/code]

注意:上面这个配置只能用于nVIDIA显卡.如果你是ATI显卡,将[server]以下的内容改成

[code][servers]

1=Xgl

[server-Xgl]

name=Xgl server command=/usr/bin/Xgl :1 -fullscreen -ac -accel glx:pbuffer -accel xv:fbo flexible=true[/code]

然后,你还要将gdm.conf中

[code]0=Standard

#1=Standard[/code]

改成:

[code]#0=Standard

1=Standard[/code]

这样gdm将缺省用显示屏幕1而不是0. 还有上面gdm的配置文件都是老外写的,我只是拿来用。

7. 现在来配置OpenGL composite manager,这个将取代metacity来渲染和设定窗口的行为。值得注意的是在metacity下设定的快捷键都将没有用了。

[code]sudo vi /usr/bin/start_compiz

#!/bin/bash

gnome-window-decorator &

compiz --replace gconf decoration wobbly fade minimize cube rotate zoom scale move resize place menu switcher opacity &[/code]

这个script也是抄的。

[code]sudo chmod 755 /usr/bin/start_compiz[/code]

opacity这个plugin并没有安装。我们要到

http://ubuntuforums.org/attachment.php?attachmentid=6220&stc=1&d=1140209767

下载,然后

[code]sudo tar xvfz /path/to/your/compiz_opacity.tar.gz -C /usr/lib/compiz/[/code]

9. 修改/etc/X11/xorg.conf 中colordepth from 16bit to 24bit

8.好了,基本上都完成了。你可以重启机器或X来起动XGL,然后在terminal下输入

[code]start_compiz[/code]

如果你看到你的窗口被重新绘制了,恭喜,你已经用上了目前最炫的Linux 3D桌面。如果你想看看有多酷,试试下面的Hotkeys: (这些Hotkeys都可以在gconf-editor->apps->compiz->plugins->... 的各个plugin中查看和修改。我列的这些都是缺省值)

想看看OSX的窗口排列吗:F12

Vista样式的窗口切换

立方体桌面切换+left/right key

立方体切换并保持当前窗口+left/right key

想看看透明窗口吗:+scrollmouse

想看看放大缩小吗:+scrollmouse

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐