本节介绍初级管理(LPIC-1)考试 101 的主题 1.110.2 的内容。该主题的权重为 3。
在本节中,将学习如何:
- 设置并定制显示管理器
- 修改显示管理器的问候语
- 为显示管理器修改缺省位平面
- 配置显示管理器供 X 客户机使用
所涉及的显示管理器有 XDM(X Display Manager)、GDM(GNOME Display Manager)和 KDM(KDE Display Manager)。
显示管理器
在上一节中,如果在以前没有安装过 X 的系统上安装并配置 X,那么可能会注意到要获得任何类型的图形显示,都必须先登录到一个终端窗口中,并运行 startx 命令。尽管这对于本地显示来说可以很好地工作,但是这却是一件麻烦的事情。况且,这对于远程 X 终端来说并不能工作。
解决方案是使用一个显示管理器 来呈现一个图形登录屏幕,并处理身份验证操作。一旦用户通过身份验证,显示管理器就可以为这个用户在运行显示管理器的系统上启动一个会话。图形输出显示在用户输入自己登录凭证的屏幕上。这可能是一个本地显示器,也可能是一个通过网络连接的 X 显示器。
XFree86 和 X.Org 中都提供了 XDM 显示管理器。另外两个显示管理器也非常流行,就是 KDE 和 GNOME。在本节中,将学习如何设置并定制这三个显示管理器。
然而,要设置一个图形化的登录界面,需要理解 Linux 系统初始化的过程。在马上就要发表的教程 LPI 考试 102 准备(主题 106):引导、初始化、关机和运行级别以及 LPI 考试 201 准备(主题 202):系统启动 中可以学习有关这方面的更多内容。
在诸如 Red Hat® 和 SUSE 之类的系统中,X 通常都是在运行级别 5 中启动的。Debian 系统会同等地对待运行级别 2 和 5,并缺省启动级别 2。对缺省运行级别的决定是在 /etc/inittab 中完成的,如清单 9 所示。
hwALinux联盟
清单 9. 在 /etc/inittab 中设置缺省的运行级别
# The default runlevel is defined here
id:5:initdefault:
|
另外一行,例如清单 10(用于 SUSE 系统)或清单 11(用于 Ubuntu 系统)中给出的内容,决定了最先运行的脚本或程序。
hwALinux联盟
清单 10. SUSE(或 Red Hat)系统使用的初始化脚本
# First script to be executed, if not booting in emergency (-b) mode
si::bootwait:/etc/init.d/boot
|
hwALinux联盟
清单 11. Ubuntu(或 Debian)系统使用的初始化脚本
# Boot-time system configuration/initialization script.
# This is run first except when booting in emergency (-b) mode.
si::sysinit:/etc/init.d/rcS
|
然后,这些初始化脚本(/etc/init.d/boot 或 /etc/init.d/rcS)会运行其他脚本。最终会运行一系列为这个运行级别选定的脚本。对于上面的例子来说,这些脚本可能包括 /etc/rc2.d/S13gdm(Ubuntu)或 /etc/init.d/rc5.d/S16xdm(SUSE),它们都是用来运行显示管理器的脚本。您会发现 /etc/init.d 中的 rcn.d 目录中通常都会包含一些指向 /etc/init.d 中没有前面的 S(或 K)和数字的脚本的符号链接。S 表示在进入这个运行级别时应该运行这个脚本,K 表示在结束这个运行级别时应该运行这个脚本。数字说明这些脚本应该按照从 1 到 99 的顺序运行。
提示: 如果试图确定显示管理器是如何启动的,请查找以 dm 结尾的脚本。
如果可以找到运行显示管理器的脚本,例如 /etc/init.d/rc5.d/S16xdm,这可能是一个小脚本,其中包含了其他逻辑来确定实际上要运行哪个显示管理器。因此,尽管很多系统都允许通过配置来控制这些内容,但是仍然可以通过检查自己的初始化文件来确定要运行的是哪个显示管理器程序。
通过在适当的 rcn.d 目录中创建用来启动和停止显示管理器的符号链接,可以确定显示管理器是否在启动时启动,这应该一点儿都不奇怪。另外,如果需要停止或启动显示管理器,可以直接使用 /etc/init.d 中的脚本,如清单 12 所示。
hwALinux联盟
清单 12. 停止和启动显示管理器
root@pinguino:~# /etc/init.d/gdm stop
* Stopping GNOME Display Manager... [ ok ]
root@pinguino:~# /etc/init.d/gdm start
* Starting GNOME Display Manager... [ ok ]
|
现在您已经知道如何启动和停止显示管理器了,接下来让我们看一下这三个显示管理器的配置。
XDM
X Display Manager(XDM)包含在 XFree86 和 X.Org 包中。按照 Filesystem Hierarchy Standard 标准,配置文件应该在 /etc/X11/xdm 目录中。主要的配置文件是 /etc/X11/xdm/xdm-config。这个文件包含了 XDM 使用的其他文件的位置,有关授权需求的信息,为某个用户执行各种任务所运行的脚本名,以及其他一些配置信息。
Xservers 文件确定了 XDM 应该管理哪个本地显示。它通常包含一行如清单 13 所示的内容。
hwALinux联盟
清单 13. 样例 Xservers 文件
:0 local /usr/X11R6/bin/X :0 vt07
|
清单 13 说明 X 应该在虚拟终端 7 上运行。大部分系统都支持使用 Ctrl-Alt-F1 到 Ctrl-Alt-F7 在不同的虚拟终端之间进行切换,其中 vt01 到 vt06 是文本模式的终端,而 vt07 是 X 终端。
如果希望支持远程 X 终端,那么就需要一个 Xaccess 文件。这个文件控制 XDM 如何与支持 X Display Manager Control Protocol(XDCMP)的终端进行通信。不支持这种协议的终端是在 Xservers 文件中定义的。XDCMP 使用了知名的 UDP 端口 177。由于安全原因,应该将 XDCMP 的使用限制在具有适当防火墙保护的可信赖的内部网络上。
可以通过更新 /etc/X11/xdm 中的脚本来定制 XDM 工作的方式。具体来说,Xsetup(或 Xsetup_0)脚本让我们可以定制问候语。图 2 给出了一个增加了数字时钟的 XDM 问候语。
hwALinux联盟
图 2. 修改后的 XDM 问候语hwALinux联盟
hwALinux联盟
修改后的 Xsetup_0 文件的源代码如清单 14 所示。
hwALinux联盟
清单 14. 样例 Xsetup_0 文件
#!/bin/sh
xclock -geometry 80x80 -bg wheat&
xconsole -geometry 480x130-0-0 -daemon -notify -verbose -fn fixed -exitOnFail
|
图 2 所示的问候语来自于一个使用 640x480 像素分辨率的 256 色系统。XDM 使用了 XF86Config 或 xorg.conf 文件中的缺省分辨率。要修改缺省的系统范围的屏幕分辨率,可以修改这个文件或使用系统中提供的工具。清单 15 给出了一个 XF86Config 文件的 Screen 部分。注意,DefaultDepth 是 16,因此 X 服务器将尝试首先运行为这个色深指定的可能分辨率,在这种情况中是 1024x768。
hwALinux联盟
清单 15. 配置屏幕的分辨率
Section "Screen"
DefaultDepth 16
SubSection "Display"
Depth 15
Modes "1280x1024" "1024x768" "800x600" "640x480"
EndSubSection
SubSection "Display"
Depth 16
Modes "1024x768" "800x600" "640x480"
EndSubSection
SubSection "Display"
Depth 24
Modes "1280x1024" "1024x768" "800x600" "640x480"
EndSubSection
SubSection "Display"
Depth 32
Modes "1280x1024" "1024x768" "800x600" "640x480"
EndSubSection
SubSection "Display"
Depth 8
Modes "1280x1024" "1024x768" "800x600" "640x480"
EndSubSection
Device "Device[0]"
Identifier "Screen[0]"
Monitor "Monitor[0]"
EndSection
|
注意,Depth 是指构成每个像素的位数。您也可能会看到这被称为每像素位数(bits per pixel) 或位平面(bitplane)。因此,使用 8 位平面(即为每种颜色使用 8 位)总共可以允许有 256 种颜色,而 16 位的色深则允许总共 65536 种颜色。使用现在的图形卡,更高的色深(例如 24 或 32 位)都是很常见的。
可以使用 xwininfo 命令的 -root 选项来检查分辨率,从而了解正在运行的 X 服务器的特性,如清单 16 所示。hwALinux联盟
Linux联盟收集整理 ,转贴请标明原始链接,如有任何疑问欢迎来本站Linux论坛讨论