13.1. 配置 X11 服务

初次配置图形界面可能不太顺利,新上市的显卡通常不能被 Debian 稳定版中附带的 X.org 完美支持。

简要提醒:X.org 是允许图形程序在屏幕上显示窗口的软件组件。它包含高效利用显卡的驱动程序。这些特性通过标准接口提供给应用程序, X11 (Jessie 包含 X11R7.7 版本)。

观点 X11, XFree86 and X.org

X11 是在类 Unix 系统上应用最为广泛的图形系统(还有 Windows 和 Mac OS)。严格来说,“X11”术语仅涉及协议规范,但是也用于描述执行方法。

X11 开头并不顺,19世纪90年代融合 XFree86 作为执行方式,因其是自由软件,可移植,并且有协作社区维护。然而到后来,除了加入新驱动,几乎没什么更新了。在这种情况下,又产生了许可争议,导致X.org 在2004年分岔。这就产生了如今的实施方法,Debian Jessie 使用 X.org 7.7。

当前版本的 X.org 可以自动侦测可用的硬件:适应于显卡和显示器,还有键盘和鼠标;实际上,它是如此方便,以至于软件包不再需要创建 /etc/X11/xorg.conf 配置文件。由于 Linux 内核的支持,才使这些特性成为可能(特别是键盘和鼠标),每种驱动会列出它所支持的显卡,并通过使用 DDC 协议获取显示器的信息。

键盘的配置保存在 /etc/default/keyboard。该文件用于配置文本控制台也用于图形界面,由keyboard-configuration 处理。配置键盘布局的细节在第 8.1.2 节 “键盘配置”中。

xserver-xorg-core 软件包提供X.org 7.x系列的通用X 服务。该服务是模块化的并使用一套相互独立的驱动来处理很多不同类型的显卡。安装 xserver-xorg 确保服务和至少一种显卡驱动被安装。

请注意,如果侦测到的显卡不能被任何可用的驱动所支持, X.org 会尝试使用 VESA 和 fbdev 驱动。前者基本上是万能驱动,但是能力有限(分辨率小,不支持硬件加速等),而后者则基于内核缓冲区(framebuffer)设备。X 服务将其消息写入/var/log/Xorg.0.log 日志文件,在其中可以找到正在使用中的驱动。如下的片段与加载 intel 驱动程序时的输出相似:

  1. (==) Matched intel as autoconfigured driver 0
  2. (==) Matched modesetting as autoconfigured driver 1
  3. (==) Matched vesa as autoconfigured driver 2
  4. (==) Matched fbdev as autoconfigured driver 3
  5. (==) Assigned the driver to the xf86ConfigLayout
  6. (II) LoadModule: "intel"
  7. (II) Loading /usr/lib/xorg/modules/drivers/intel_drv.so

其他 专利驱动

有些显卡制造商(特别是nVidia)拒绝发布其产品的硬件规格,而编写良好的自由驱动程序需要这些规格。他们提供专用驱动支持其硬件。这种政策是极其恶毒的,因为即使有驱动,但是却不能很好的工作;更重要的是,它不会随着X.org 更新而更新,这就会导致最新的驱动加载出问题(并非所有)。建议尽量避免选择这些生产商,选择那些更合作的厂家。

如果你还是使用了这样的显卡,就需要使用 non-free 中的软件包: nvidia-glx 用于nVidia 显卡, fglrx-driver 用于ATI 显卡。两者都需要与之相匹配的内核。这些模块可以通过安装 nvidia-kernel-dkms ( nVidia), 或 fglrx-modules-dkms (ATI)自动创建。

“nouveau”项目的目的是为 nVidia 显卡开发自由软件。在 Jessie中,它的特性不比专有驱动。由于原始开发者的抵触,所需要的信息只能通过逆向工程来获取,这增加了难度。用于 ATI 显卡的自由驱动,称为“radeon”,在这方面要好的多,虽然它需要非自由(non-free)固件的支持。