LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 3189|回复: 8

在 Debian Etch 上安装 XGL

[复制链接]
发表于 2006-9-21 00:20:32 | 显示全部楼层 |阅读模式
欢迎大家访问我的博客:http://my.donews.com/lonecat/

几个月前就听说 XGL 这个东西了,不过一直都是看抓图,感觉也没有什么特别的。前几天看了别人的 XGL 桌面,就开始心里痒痒的,想要在自己的机器上试一把。经过了两天的奋战,终于把这个东西搞定了,现把自己安装的过程跟大家分享一下。

很长时间以来,我都是使用 Debian 的,虽然知道 Ubuntu Dapper 上安装 XGL 实在是很方便,但又觉得懒得换系统,所以还是在 Debian 上安装。由于 Debian 官方尚未提供对 XGL 提的支持,因此在 Debian 上安装 XGL 还是有一点麻烦的。而且在网络上搜索时搜索到的也都是 Ubuntu、SUSE、Gentoo 的资料,因此也比较容易丧失信心。

下面笔者就简述一下安装 XGL 的步骤:

1. 硬件准备

请检查自己的硬件是否支持 XGL。笔者使用的是 HP NC6000 笔记本,它配备的是 ATI Mobility Radeon 9600 M10 显卡。笔者只是使用了 fglrx 模块,并没有使用什么特别的选项。

2. 安装驱动程序

目前在 Debian 上安装 ATI 的官方驱动并不困难,只要安装 fglrx-driver 并自己编译 fglrx 内核模块就可以了。关于这个部分,读者可以参考相关材料。

3. 安装 XGL 相关的软件包。由于 Debian 官方并未提供软件包,因此要安装非官方的软件包,这些软件包是使用 Ubuntu 的 XGL 包修改后制作的。关于这一部分的详情,可以参考 [1]。

3.1. 将如下内容添加到 /etc/apt/sources.list 中:

    deb http://www.prato.linux.it/~mnencia/debian xgl/

3.2. 在 /etc/apt/preferences 中添加

    Package: *
    Pin: origin www.prato.linux.it
    Pin-Priority: 981

3.3. apt-get update 后 apt-get install xserver-xgl、compiz-gnome、libglitz-glx1 和 libgl1-mesa-glx 这四个软件包。其中需要注意的是,由于 Debian 自带的 libgl1-mesa-glx 比上述源中的新,因此要注意安装这个软件包时需要特殊的选项。譬如:

     apt-get install libgl1-mesa-glx=6.4.1-0.4xgl1

4. 启动 XGL

启动 XGL 有很多种方法,譬如直接在 GDM 中启动,或者在 Session 中启动。关于不同的启动方法的详细信息,可以参考 [2]。

4.1. 修改 gdm 配置

在很多文章中的介绍都是直接修改 GDM 的配置文件 gdm.conf。笔者开始的时候也是使用这种方法的,但在启动 GDM 之后却怎么都看不到登录的界面。在这个问题上笔者卡了很久,最终在一些文章中看这是一个 bug。由于 XGL 启动需要十秒多一些,而 gdm 的超时设定的是十秒,因此 GDM 就没法和 XGL 一起工作了。目前的 GDM 已经增加了一个选项可以设定超时的时间,不过笔者并未实验成功。

4.2. 在 Session 中启动

在一个特定的 Session 中启动 XGL 是一种比较简单且容易实现的方法,最重要的是使用这种方法可以随时停用 XGL 而不必修改配置文件。具体的方法如下:

(1) 创建一个 /usr/local/bin/startxglgnome 文件并加 +x,其内容如下(如果非 ATI 显卡,请 参考 [2]):

    #!/bin/sh

    Xgl -fullscreen :1 -audit 0 -ac -br -accel glx:pbuffer -accel xv:pbuffer & sleep 2 && DISPLAY=:1 gnome-session

(2) 创建 /usr/share/xsessions/xglgnome.desktop,内容如下:

    [Desktop Entry]
    Encoding=UTF-8
    Name=Xgl GNOME
    Comment=Start an Xgl Session
    Exec=/usr/local/bin/startxglgnome
    Icon=
    Type=Application

(3) 重启 gdm

GDM 重启后,在 Sessions 中将会有一个新的项目 Xgl GNOME,选择它,应当就可以启动 XGL 了。

5. 启动 compiz

compiz 是一个窗口管理器,它与传统的窗口管理器的最大不同就是它支持 Composite,如果不使用这个窗口管理器,整个系统的运行都会非常慢,且无法看到任何特殊效果。compiz 应当在 gnome-session 运行之后启动,比较简单的方法是让 gnome-session 直接启动它:

5.1. 创建 compiz 的配置

执行命令

     gconftool-2 -s /apps/compiz/general/allscreens/options/active_plugins "[gconf,decoration,wobbly,fade,minimize,cube,switcher,move,resize,place,rotate,zoom,scale]" -t list --list-type=string

这一步是非常重要的,否则即便启动了 compiz 也看不到任何效果。

5.2. compizrc

创建一个 /usr/local/bin/compizrc 文件并 +x,其内容如下:

    #!/bin/bash

    # Start compiz within gnome-session
    if [ `ps -A -o comm | grep -c '^Xgl$'` == "1" ]; then
        DISPLAY=:1 LD_LIBRARY_PATH=/usr/lib/fglrx/diversions compiz --replace gconf &
        DISPLAY=:1 gnome-window-decorator &
    #   DISPLAY=:1 setxkbmap -model pc105 -layout it -variant basic # Change according to your needs, and uncomment if needed

    #   Or like that, if you need to switch between layouts.
    #   setxkbmap -model pc105 -layout "us,ru(winkeys)" -variant winkeys -option "grp:alt_shift_toggle,grp_led:scroll"
    else echo "${0}: Error: Compiz and g-w-d not launched. Xgl not running?"
    fi

此处有一个问题需要注意,就是 LD_LIBRARY_PATH=... compiz ... 这一行,之所以要设定 LD_LIBRARY_PATH 是因为 compiz 需要原装的 libGL.so,而 fglrx-driver 用自己的 libGL 替换掉了原先的文件,因此需要通过这个环境变量让 compiz 找到正确的库。否则会出现 GLX_EXT_texture_from_pixmap missing 的错误。注意,并不是所有的驱动都会象 fglrx 这样提供自己的 libGL,因此需要根据具体的情况来修改。

编辑好这个文件之后,可以直接执行它。如果正常,这一步过后就可以看到 XGL 的效果了。

5.3. 自动启动 compiz

启动 gnome-session-properties,并在 Startup Programs 中加入 /usr/local/bin/compizrc ,这样 compiz 将会自动启动并替换 Metacity。

到此为止,XGL 的配置就基本完成了,现在就可以享受一下三维桌面的效果了。

总结:

以前我一直以为 XGL 只是一个三维的窗口管理器,现在知道 XGL 实际上是一个 Xserver,它接收客户发来的普通的 X 绘图命令并将其翻译成为 OpenGL 的指令并通过 Xorg 绘制出来。其工作原理类似于 Xnest,只是完成的工作比 Xnest 更多。

compiz 是一个窗口管理器,它通过模块来实现各种各样的效果。因此,对于要开启或关闭某个效果,只要其后或禁用某个模块就可以了。而人们也可以通过编写更多的模块来实现更多的特殊效果,关于 compiz 的更多内容,可以参考 [3]。

一直以来人们都认为 Unix 系统的设计思想是想当出色的,XGL 的出现又一次证明了这一点。界面上如此之大的一个变化,对于 X 整体的结构却没什么太大的影响,只是在中间加了一层类似于代理的东西就搞定了,Unix、X 等软件的结构确实值得我们好好学习。

参考文献

[1] http://www.ee.oulu.fi/~sta/howto/xgl-debian.html
[2] http://gentoo-wiki.com/HOWTO_XGL
[3] http://www.compiz.org/

现在的心情

刚刚配置好 XGL 的时候,会觉得很兴奋很炫。但静下心来,能看到的只是差距,如果自己永远停留在配置、使用的层面上,那永远都只能 google 别人的 HOWTO,没有尽头……
发表于 2006-9-21 10:16:32 | 显示全部楼层
终于有了debian上安装xgl的文章,thx楼主。回头我也想试一下。
回复 支持 反对

使用道具 举报

发表于 2006-9-21 12:41:11 | 显示全部楼层
赞!
有个想法,Xgl和虚拟机结合,4个面,分别运行着Linux、Windows、MacOS和BSD,那就cool了。
回复 支持 反对

使用道具 举报

发表于 2006-9-21 15:00:13 | 显示全部楼层
Post by lonecat

现在的心情

刚刚配置好 XGL 的时候,会觉得很兴奋很炫。但静下心来,能看到的只是差距,如果自己永远停留在配置、使用的层面上,那永远都只能 google 别人的 HOWTO,没有尽头……

确实,说得太对了
回复 支持 反对

使用道具 举报

发表于 2006-9-21 21:37:41 | 显示全部楼层
好文章,顶
建议精之
回复 支持 反对

使用道具 举报

发表于 2006-9-23 17:29:54 | 显示全部楼层
Post by sswv
赞!
有个想法,Xgl和虚拟机结合,4个面,分别运行着Linux、Windows、MacOS和BSD,那就cool了。

如果买8块显卡, 16个cpu,32G内存,再请IBM专门生产一个主板也许能够实现
回复 支持 反对

使用道具 举报

发表于 2006-9-23 17:58:01 | 显示全部楼层
/etc/apt/preferences
我这里没有,是什么意思,要自己创建
回复 支持 反对

使用道具 举报

发表于 2006-9-23 19:13:27 | 显示全部楼层
没有就自己建个
回复 支持 反对

使用道具 举报

发表于 2006-9-23 20:21:49 | 显示全部楼层
正在安装,看了一下用了好多unbuntu包,不知现在这个稳定性怎么样,以前xgl就把我辛辛苦苦做的gentoo给搞挂了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表