54 FreeBSD连载:配置文件XF86Config( 三 )


ModeLine或Mode定义了具体显示模式使用的时序等参数,只有在这里定义了相应模式,X服务器才能使用对应的模式,并在各种模式之间动态切换 。然而XF86Setup并没有设置在显示器的同步频率范围内支持的全部模式,因此会需要手工增加所需要的模式 。而xf86config能将很多显示模式都加进设置文件中,其中很多是不必要的,例如320x200等低分辨率,需要手工删除 。此外一个分辨率可能会有多个显示模式相对应,但不同模式的刷新频率不同,显然应该保留一个显示器支持的非隔行扫描、并具备最高刷新频率的模式 。这些显示模式受到水平同步和垂直刷新数据的限制,X服务器会在启动时屏蔽超过前面定义的水平同步和垂直刷新数据范围的模式,一避免损坏显示器 。
显然,Modeline和Mode选项中的设置数据是一般使用者无法正确设置的,因此就需要从XFree86的文档中查询各种常见的显示器和及其常用的显示模式数据,来决定最接近自己显示器的显示模式,在复制到自己的设置文件中 。XFree86的文档位于在/usr/X11R6/lib/X11/doc目录下,Readme.Config和VideoModes.doc文件描述了各种显示模式的对应数据,Monitors文件中收集了各种常见显示器的水平同步和垂直刷新数据 。
如果没有定义多个模式,就不能使用X Server提供的动态切换分辨率模式的功能 。
显示卡设置
Section "Device"Identifier "Generic VGA"VendorName "Unknown"BoardName"Unknown"Chipset"generic"#VideoRam256#Clocks25.2 28.3EndSectionSection "Device"Identifier"ViRGE/DX or /GX"VendorName"Unknown"BoardName"Unknown"#VideoRam2048EndSection"Device"部分定义显示卡设备的参数,同样Identifier、VendorName、ModelName起到标识作用,具体设置如使用的芯片、显示内存等设置应与所使用的硬件相一致,但也可以不配置,留给X服务器自动探测 。同样,也可以定义多个Device设置,某个具体的X服务器程序只使用某个选项中的设置 。
如果要针对某个显示卡更改具体参数,除了查阅显示卡手册之外,还要阅读/usr/X11R6/lib/X11/doc/目录下的Devices、modeDB.txt和AccelCards等文档,在其中查找与具体显示卡相关的数据信息 。
屏幕设置
Section "Screen"Driver"vga16"Device"Generic VGA"Monitor"Hyundai DeluxScan 15G "Subsection "Display"Modes"640x480"ViewPort0 0Virtual800 600EndSubsectionEndSectionSection "Screen"Driver"accel"Device"ViRGE/DX or /GX"Monitor"Hyundai DeluxScan 15G "DefaultColorDepth 16Subsection "Display"Depth24Modes"800x600" "640x480"ViewPort0 0Virtual800 600EndSubsectionSubsection "Display"Depth8Modes"800x600" "640x480"ViewPort0 0Virtual800 600EndSubsectionSubsection "Display"Depth16Modes"1024x768" "800x600" "640x480"ViewPort0 0Virtual1024 768EndSubsectionEndSection“Screen”部分将具体定义X服务器的显示属性,以及具体使用的设备和显示模式 。同时可以存在多个Screen部分,而每个screen部分对应一种X服务器 。虽然一般情况下都只使用一个X服务器,然而也可能会使用标准VGA模式的X服务器(如使用XF86Setup时),因此一般配置文件中都至少有两个Screen部分的定义,一个由标准VGA的X服务器XF86_VGA16使用,在其中的Driver项中指定了vga16类型,另一个Screen定义由支持更高模式的具备硬件加速能力的显示卡X服务器使用,如XF86_S3V,Driver项为accel类型 。X服务器根据Driver项的设置来寻找正确的Screen部分设置参数 。
除了在Driver选项中指定了Screen选项与具体X服务器的联系之外,接下来的Device设置选项将指出这个Screen部分(也就是对应的X服务器)使用哪个显示设备,这个选项的值与设置文件前面定义的某一个Device部分中Identifier值相同,这就将X服务器和指定的显示设备相联系起来(会存在多个定义显示卡设备的Device部分) 。同样,Monitor项将Screen部分与某个Monitor部分描述的显示器相联系 。

推荐阅读