54 FreeBSD连载:配置文件XF86Config

配置文件XF86Config位于/etc目录下的XF86Config文件是XFree86的X服务器的配置文件,XF86Setup或者xf86config在配置完后就将配置信息保存在这个文件中 。XFree86也提供了一个配置文件的样例文件,/usr/X11R6/lib/X11/XF86Config.eg,可以用作参考 。很多情况下需要对X的行为进行微调,而并不想重新启动设置程序重复进行整个设置过程,这样手工修改配置文件就更为方便 。
有一些X服务器的参数使用配置程序并不能进行配置,必须在原有XF86Config上手工更改配置文件 。
下面将以一个简单的配置文件为例进行简单介绍XFree86的设置选项 。
文件搜寻路径
Section "Files"RgbPath"/usr/X11R6/lib/X11/rgb"FontPath"/usr/X11R6/lib/X11/fonts/75dpi/:unscaled"FontPath"/usr/X11R6/lib/X11/fonts/100dpi/:unscaled"FontPath"/usr/X11R6/lib/X11/fonts/misc/"FontPath"/usr/X11R6/lib/X11/fonts/75dpi/"FontPath"/usr/X11R6/lib/X11/fonts/100dpi/"#FontPathtcp/fontserver:7000#ModulePath "/usr/X11R6/lib/modules"EndSection上面是配置文件的第一部分 “Files”,这个文件部分定义了X Window使用的搜索文件路径,如调色板文件的路径RGBPath,字体路径FontPath,以及ModulePath用来设置X服务器的动态可加载模块的路径 。
其中字体路径可以使用多行来设置多个路径,也可以在一行之内设置多个路径,路径之间使用逗号分隔 。字体路径也能定义为网络上的字体服务器,这需要指定协议、主机名和端口地址,例如tcp/fontserver:7000表示一台名为fontserver的字体服务器使用tcp端口7000提供字体服务 。Unscaled用于修饰表示对这个路径下的字体不进行缩放处理,处理固定字体可减少系统资源的消耗 。使用字体服务器可以让多个服务器同享字体,从而达到节约磁盘空间的目的 。
在行首使用符号 “#”,表示这一行为注释,并不被X服务器处理 。
可加载模块
# Section "Module"# Load "xf86Jstk.so"# EndSection【54 FreeBSD连载:配置文件XF86Config】如果前面Files部分定义了ModulePath,这个"Module"部分就用来装载相应路径下具体的模块 。一般情况下,并不需要使用这个功能,除非是使用了一些非标准的功能,需要可加载模块的支持,如xf86Jstk.so就是一个游戏杆的驱动程序 。
X服务器选项
Section "ServerFlags"#NoTrapSignals#DontZap#DontZoom#DisableVidModeExtension#AllowNonLocalXvidtune#DisableModInDev#AllowNonLocalModInDxevEndSection"ServerFlags"部分设置一些X服务器的运行参数,对应于XF86Setup中的Other选项中所设置的内容,一般不需改变 。
NoTrapSignals选项使得X服务器程序不去处理发送到X服务器的各个信号,正常情况下不设置这个选项,X服务器应该接收并处理这些信号,当接收到某些信号时就释放X服务器占用的资源,切换显示模式并退出X服务器的执行 。因此打开这个选项就使得发送到X服务器的信号没有得到处理,在错误不严重的情况下,X程序仍将继续执行而不退出 。因此可以用于调试X服务器,观察X的出错原因及其影响 。
DontZap选项用于屏蔽Crtl-Alt-BackSpace热键,通常不设置这个选项时,使用者能够使用这个组合热键退出X服务器 。当要将XFree86系统用作公用X终端时,最好使用这个选项屏蔽退出热键,让用户使用正常的退出方式退出登录会话 。
DontZoom这个选项用于屏蔽<小键盘 “ ” >或<小键盘 “-” >两个用于动态切换分辨率模式的组合键,当然X服务器必须同时设置了多个分辨率模式,这两个组合键才有意义 。
xvidtune能实时改变X服务器的显示模式,例如调整显示区域位于显示器中的位置等 。然而一旦针对某个显示器的显示模式调整正确之后,就没有必要动态改变了,因此可以使用DisableVidModeExtension选项屏蔽xvidtune实时改变显示模式的能力,以保证显示器的安全 。一般只有本服务器上的xvidtune可以完成这个操作,在当前X服务器上运行远程计算机上的xvidtune不允许改变本服务器的状态 。但是,也可以通过设置AllowNonLocalXvidtune选项,使得非本服务器上的xvidtune也有能力和本地的X服务器进行通信 。第二个选项必须在第一个没有设置的条件下才能设置 。为了安全的原因,不应该允许远程系统上的xvidtune获得本服务器的硬件设置信息,不要设置这个选项 。

推荐阅读