第21章 其他文件系统
附录 D. OpenPGP 密钥
5.9.故障排除
如果鼠标不能工作,你需要在继续使用之前先配置它。在最新的 Xorg 版本中,xorg.conf 中的 InputDevice 部分被省略了,转而支持设备的自动检测。要恢复以前的方式,请在该文件的 ServerLayoutServerFlags 部分添加以下一行:
1
Option "AutoAddDevices" "false"
Copied!
然后可以像以前的版本一样配置输入设备,以及任何其他所需要的选项(例如,键盘布局切换)。
注意:
警告:
这一节包含了一些过时的内容。HAL 守护程序 (hald) 已经不再是 FreeBSD 桌面设置的一部分。
如前所述,默认情况下,hald 守护程序会自动检测你的键盘。某些情况下你的键盘布局或型号有可能没有被正确匹配,不过 GNOME、KDE 或 Xfce 等桌面环境提供了配置键盘的工具。然而,也可以通过 setxkbmap(1) 工具或者通过 hald 的配置规则直接设置键盘属性。
例如,如果想使用法式布局的 PC 102 键键盘,我们必须为 hald 创建一个名为 x11-input.fdi 的键盘配置文件,并保存在 /usr/local/etc/hal/fdi/policy 目录下。这个文件应该包含以下几行。
1
<?xml version="1.0" encoding="utf-8"?>
2
<deviceinfo version="0.2">
3
<device>
4
<match key="info.capabilities" contains="input.keyboard">
5
<merge key="input.x11_options.XkbModel" type="string">pc102</merge>
6
<merge key="input.x11_options.XkbLayout" type="string">fr</merge>
7
</match>
8
</device>
9
</deviceinfo>
Copied!
如果这个文件已经存在,只需复制并添加到你的文件中有关键盘配置的行。
你需要重新启动你的机器,以让 hald 来读取这个文件。
也可以用下面的命令从 X 终端或脚本中进行同样的配置:
1
% setxkbmap -model pc102 -layout fr
Copied!
/usr/local/share/X11/xkb/rules/base.lst 列出了各种可用的键盘、布局和选项。
xorg.conf.new 配置文件现在可以根据你的需求进行微调。在文本编辑器中打开该文件,如 emacs(1)ee(1)。如果显示器是旧的或不寻常的型号,不支持同步频率的自动检测,那这些设置可以添加到 xorg.conf.new"Monitor" 部分中:
1
Section "Monitor"
2
Identifier "Monitor0"
3
VendorName "Monitor Vendor"
4
ModelName "Monitor Model"
5
HorizSync 30-107
6
VertRefresh 48-120
7
EndSection
Copied!
大多数显示器支持同步频率的自动检测,因此不需要手动输入这些值。对于少数不支持自动检测的显示器,只需输入制造商提供的数值,即可避免潜在的损害。
X 允许 DPMS(能源之星)功能与有线显示器一起使用。xset(1) 程序可以控制超时,并可以强制进入待机、休眠或关闭模式。如果你想为你的显示器启用 DPMS 功能,你必须在显示器部分添加以下一行。
1
Option "DPMS"
Copied!
xorg.conf.new 配置文件仍在编辑器中打开时,选择所需的默认分辨率和色深。这在 "Screen" 小节处定义:
1
Section "Screen"
2
Identifier "Screen0"
3
Device "Card0"
4
Monitor "Monitor0"
5
DefaultDepth 24
6
SubSection "Display"
7
Viewport 0 0
8
Depth 24
9
Modes "1024x768"
10
EndSubSection
11
EndSection
Copied!
DefaultDepth 关键字描述了默认运行的色深。可以用 Xorg(1)-depth 命令行开关来覆盖这个参数。Modes 关键字描述了在给定色深下运行的分辨率。注意,只有目标系统的图形硬件所定义的符合 VESA 标准的模式才被支持。在上面的例子中,默认的色深是每像素二十四位。在这种色深下,可接受的分辨率为 1024×768 像素。
最后,保存配置文件并使用上面给出的测试模式对其进行测试。
注意:
在故障排除过程中,Xorg 日志文件是可以帮助你的工具之一,它包含了 Xorg 服务器所连接的每个设备的信息。Xorg 日志文件名称的格式为 /var/log/Xorg.0.log。日志的确切名称可以从 Xorg.0.logXorg.8.log 等不同。
如果一切顺利,配置文件需要安装在 Xorg(1) 可以找到的常规位置。这通常是 /etc/X11/xorg.conf/usr/local/etc/X11/xorg.conf
1
# cp xorg.conf.new /etc/X11/xorg.conf
Copied!
Xorg 的配置过程现在已经完成。现在可以用 startx(1) 工具来启动 Xorg。Xorg 服务器也可以通过使用 xdm(8) 来启动。

5.9.1 配置英特尔® i810 图形芯片组

Intel® i810 集成芯片组的配置需要 Xorg 的 agpgart AGP编程接口来驱动该卡。更多信息请参见 agp(4) 驱动手册页面。
这将允许将硬件配置成任何其他图形显卡。注意,在没有把 agp(4) 驱动编译进内核的系统上,使用 kldload(8) 来加载模块将不起作用。该驱动必须在启动时编译加载进内核或使用 /boot/loader.conf 加载进内核。

5.9.2 添加宽屏幕平板显示器到设定文件

本节需要用到一些较为复杂的配置知识。如果使用上述标准配置工具没有达到要求,在日志文件中有足够的信息可以用来使设置更有效。这需要用到文本编辑器。
问题可能由目前的宽屏(WSXGA、WSXGA+、WUXGA、WXGA、WXGA+等)标准所支持的 16:10 和 10:9 格式或纵横比导致。一些常见的 16:10 纵横比的屏幕分辨率有:
  • 2560x1600
  • 1920x1200
  • 1680x1050
  • 1440x900
  • 1280x800
在某些情况下,在 Section "Screen" 中添加这些分辨率中的一种作为可能的 Mode 就可以解决:
1
Section "Screen"
2
Identifier "Screen0"
3
Device "Card0"
4
Monitor "Monitor0"
5
DefaultDepth 24
6
SubSection "Display"
7
Viewport 0 0
8
Depth 24
9
Modes "1680x1050"
10
EndSubSection
11
EndSection
Copied!
Xorg 足够聪明,它通过 I2C/DDC 信息标准从宽屏显示器上获取分辨率信息,因此它知道显示器能处理何种频率和分辨率。
如果这些 ModeLines 不存在于驱动中,我们可能需要给 Xorg 一点提示。使用 /var/log/Xorg.0.log,可以提取足够的信息来手动创建一个可以工作的ModeLine。只要寻找类似这样的信息就可以了:
1
(II) MGA(0): Supported additional Video Mode:
2
(II) MGA(0): clock: 146.2 MHz Image Size: 433 x 271 mm
3
(II) MGA(0): h_active: 1680 h_sync: 1784 h_sync_end 1960 h_blank_end 2240 h_border: 0
4
(II) MGA(0): v_active: 1050 v_sync: 1053 v_sync_end 1059 v_blanking: 1089 v_border: 0
5
(II) MGA(0): Ranges: V min: 48 V max: 85 Hz, H min: 30 H max: 94 kHz, PixClock max 170 MHz
Copied!
这些信息被称为 EDID 信息。要从这些信息中创建一个 ModeLine,只是需要把数字按正确顺序放置:
1
ModeLine &lt;name&gt; &lt;clock&gt; &lt;4 horiz. timings&gt; &lt;4 vert. timings&gt;
Copied!
因此,本例中 Section "Monitor" 中的 ModeLine 看起来像这样:
1
Section "Monitor"
2
Identifier "Monitor1"
3
VendorName "Bigname"
4
ModelName "BestModel"
5
ModeLine "1680x1050" 146.2 1680 1784 1960 2240 1050 1053 1059 1089
6
Option "DPMS"
7
EndSection
Copied!
现在完成这些简单的编辑步骤后,X 就可以在你的新宽屏显示器上顺利启动了。

5.9.3 排除 Compiz Fusion 的故障

5.9.3.1 我已经安装了 Compiz Fusion,在运行你提到的命令后,我的窗口没有标题栏和按钮。这是哪里出了问题?

你可能缺少了 /etc/X11/xorg.conf 中的设置。仔细查看这个文件,特别是检查 DefaultDepthAddARGBGLXVisuals 的设置。

5.9.3.2 当我运行命令启动 Compiz Fusion 时,X 服务器崩溃了,我回到了控制台。这是哪里出了问题?

如果你检查 /var/log/Xorg.0.log,你可能会发现 X 启动时的错误信息。最常见的是:
1
(EE) NVIDIA(0): Failed to initialize the GLX module; please check in your X
2
(EE) NVIDIA(0): log file that the GLX module has been loaded in your X
3
(EE) NVIDIA(0): server, and that the module is the NVIDIA GLX module. If
4
(EE) NVIDIA(0): you continue to encounter problems, Please try
5
(EE) NVIDIA(0): reinstalling the NVIDIA driver.
Copied!
这通常是在你升级 Xorg 时出现的情况。你需要重新安装 x11/nvidia-driver 软件包,以便让glx 重新编译。