本人很喜欢SUSE Linux10.1,在工作中也很喜欢总结关于SUSELinux10.1的经验教训,下面就这个问题来详细说说吧。我们努力简化Xgl/Compiz在SUSE Linux10.1和SUSE Linux EnterpriseDesktop10的安装配置(起码和在老版本SUSELinux上使用Xgl比起来)。尽管如此,这个软件仍然十分年轻,有些小地方甚至是粗糙不堪的。本页面解释怎样在SUSELinux上启用Xgl,并解决一些常见问题。
获取最新软件包
10.1发布以后,Xgl软件包又有很多重要更新,甚至还在SLED10RC2发布后修正了几个bug。
可以从SUSE车间版下载最新软件包。根据你的系统从i586或者x86_64下载最新的compiz,xgl和libwnck包,以及noarch里面最新的xgl-hardware-list包。
(一旦正式发布SLED10,这些车间版的包会更彻底的更新,你可能会得到SUSE10.1和SLED10的Xgl官方升级包。)
另外一个compiz包以及配置工具的来源是这里。还是根据你的系统架构下那几个包安装。注意这些包包含一些实验性的新特性和不被SUSE官方包包含的第三方compiz插件,可能会不稳定,也可能会有官方版没有的bug。(但一般来说是值得信赖的。--Truth)
安装
除非你先安装Xgl,否则不会自动启用。启用它使用Gnome控制面板中的"DesktopEffects"工具。也可以以终端或KDE的“运行程序”运行"gnome-xgl-settings"打开。
DesktopEffects工具将分析你的系统,检测你是否可以运行Xgl。如果它检测出问题,会给你解决建议。
注:"gnome-xgl-settings"是"compiz"软件包的一部分。
支持和未被支持的显卡
Novell测试了许多常见的显卡和内置显卡芯片组,包括ATI,Intel和NVIDIA的产品,找出哪些可以良好运行Xgl。而DesktopEffects工具会告诉你四种结果之一:
◆Yourgraphicscardissupported.
显卡被支持--Xgl将运行良好。
◆YourgraphicscardwillnotworkwithXgl.
显卡不能运行Xgl--DesktopEffects工具将不会让你开启Xgl,因为你的显卡要么不支持3D加速,要么对此类显卡的测试得知使用Xgl时可能崩溃或影响日常操作。
◆Yourgraphicscardisnotsupported,butmaywork.
显卡不被支持,但可能能行--并不是说显卡不能用Xgl,可能是它太慢,或是Xgl可能崩溃或者一些特别的应用会导致图形混乱(比如开全屏放视频后转动桌面)。
◆YourgraphicscardisnotinXgl''sdatabase.
显卡不在Xgl数据库--DesktopEffects工具仍会尽力帮助你配置Xgl,但是你有可能不能成功。我们还在继续测试新显卡,有新的信息就会升级xgl-hardware-list包。
有些情况下,显卡和Xgl出现的一些问题是Xgl,或者显卡驱动中的bug引起的,所以如果你有问题,先确认自己使用的相关软件包是最新的。
3D加速
DesktopEffects工具提供的下一段信息是显卡的3D加速是否被开启。有些卡是自动开启的,你不需进行额外步骤。有些则需要手动调整一下;DesktopEffects工具会尽力帮助你。
Intel芯片组启用3D加速
在已支持的Intel芯片组上,启用3D加速只不过是SaX2里面钩选一下那么简单。如果DesktopEffects发现你没有启用3D加速,它会让你运行SaX2解决。正式发布的原版SUSE10.1中,点击"RunSaX2"按钮直接打开SaX2,你要自行选择正确的按钮(页面下端)点OK。如果是最新的包,"RunSaX2"按钮会直接调用libsax给你改过来。
ATI或NVIDIA卡启用3D加速
所有支持的ATI和NVIDIA卡需要制造商的专有驱动启用3D加速。如果DesktopEffects工具发现你没有安装驱动,它会提议运行软件更新工具为你安装它们。
SLED10,如果你在安装中进行了Novell注册,将会自动打开。如果没有注册,可以使用YaST的"NovellCustomerCenterConfiguration"工具。这样会自动把ATI和NVIDIA驱动仓库加入你的YaST/ZMD安装源列表,然后DesktopEffects工具会自动找到需要的包。
SUSE10.1,首先手动装上驱动。ATI驱动在http://www.ati.com,NVIDIA驱动在[ftp://download.nvidia.com/novell/]。
如果你有ATI显卡,一些/etc/X11/xorg.conf里面的选项必须被调整一下以便Xgl完美运行。SUSE10.1自带的DesktopEffects工具将会自动修改文件,这也是你为什么要在打开Xgl前先安装车间版compiz包原因之一。
其它显卡启用3D加速
如果DesktopEffects工具不能识别你的显卡,即使你确实知道3D加速打开了它也会以为3D加速被关闭。此时的问题是,DesktopEffects工具将不允许你启用Xgl。
按住Shift键然后双击"3D加速"按钮旁边的"Disabled",可以跳过它对3D加速的自动检测设置。只有在你确实知道3D加速打开了的情况下这样操作.(同样,你也可以这样做来改变它对是否支持你显卡的判定,但是不推荐这么做。)
打开和关闭Xgl
如果你有一个可以开Xgl的显卡,也打开了3D加速,最下面的按钮将是"EnableDesktopEffects"。点击按钮,(按要求输入root密码后),工具会自动配置你的机器使用Xgl,然后将你注销重启Xserver。
关闭Xgl可以用DesktopEffects工具禁用它,将会进行一个与打开Xgl操作相反的流程。
如果打开了Xgl,但是由于某些原因无法显示登录屏幕,以root运行gnome-xgl-switch--disable-xgl在命令行关闭Xgl。(你也可能需要rcxdmrestart来重启X以及登录屏幕。。)
使用配置Compiz
Compiz即是Xgl的窗口管理器也是复合管理器,提供Xgl相关所有特效。
GNOME上使用Compiz
如果你之前使用metacity作为GNOME窗口管理器(默认设置),你会在启用Xgl后登录时被自动转到compiz。Compiz默认使用大多数和metacity相同的快捷键和鼠标组合,比如"移动窗口","最大化",等等。如果你曾经在控制中心"快捷键"改变过metacity快捷键,就要再去为compiz改一遍。控制中心"窗口"里面的设置也一样,需要再去改一遍。
KDE上使用Compiz
首先,像原来一样登录KDE,"个人设置","桌面","任务条"。确定"显示程序图标"被选中。(目前需要这样保证任务栏在Compiz下功能正常。)
现在你需要创建2个文件,让KDE知道你要用另外的窗口管理器Compiz而不是默认的Kwin。以root打开kate编辑器-KDE启动按钮(绿色SUSElogo,运行命令:kdesukate。输入root密码确定,把下面这行粘贴到新的空白文件中:
/usr/bin/compizgconf&/usr/bin/gnome-window-decorator&
以compiz.sh文件名保存到/usr/local/bin,然后赋予它可执行权限。KDE启动按钮,系统,文件管理器,文件管理器-超级用户模式(输入密码确定)。用这个文件管理器访问/usr/local/bin,右键单击=compiz.sh,属性,权限,确定可执行被选中。
创建另一个文件,大体步骤像compiz.sh一样,但是以kdewm.sh文件名保存到/opt/kde3/env,它的内容是:
exportKDEWM=/usr/local/bin/compiz.sh
同样步骤给文件可执行权限。这就告诉KDE以后执行compiz.sh而不是kwin。完成后,注销重新登录KDE。Xgl将配合KDE运行。
参看Xgl问题解决页面相关部分。
配置Compiz
DesktopEffects工具也可以用来配置compiz。在gnome控制中心中打开它,"WindowEffects","DesktopCube"和"OtherFeatures"标签栏都可以设置compiz。
如上所述,一些快捷键和窗口管理设置也可以通过GNOME"快捷键"和"窗口"控制面板设置。
有一些更复杂(或新加的以及第三方插件的)的compiz选项在DesktopEffects工具中无法配置。所有配置都在"gconf-editor"工具(SUSE10.1菜单中的"GNOME配置编辑器",也在SLED的ApplicationBrowser中)的"/apps/compiz/"下面。在那里可以看到关于每个选项的用途的小部分说明,Compiz页面也有一些。
此外可以用gset-compiz或者gcompizthemer软件包,在这里下载。
问题解决
Nvidia:鼠标指针闪烁或残留尾迹
如果你有Nvidia显卡(测试时用的6600GT),而且鼠标指针闪烁,你需要在/etc/X11/xorg.conf的[Screen]部分把HWCursoroption设为"On"。
KDE用户
如果你是按照SUSELinux10.1默认KDE桌面环境安装的,可能会有问题。登录管理器之前你可能会被弹回console文本界面,dmesg会得到"Xserverstartuptimeout,terminating"错误。如果你也安装了gnome,那么在/etc/sysconfig/displaymanager中设为DISPLAYMANAGER="gdm"(原来是kdm)。这样你就学会了简化Xgl/Compiz在SUSE Linux10.1和SUSE Linux EnterpriseDesktop10的安装配置。
【编辑推荐】