分享
 
 
 

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

王朝system·作者佚名  2006-11-23
窄屏简体版  字體: |||超大  

配置文件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/"# FontPath tcp/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

如果前面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这个选项用于屏蔽<Crtl><Alt><小键盘 “+” >或<小键盘 “-” >两个用于动态切换分辨率模式的组合键,当然X服务器必须同时设置了多个分辨率模式,这两个组合键才有意义。

xvidtune能实时改变X服务器的显示模式,例如调整显示区域位于显示器中的位置等。然而一旦针对某个显示器的显示模式调整正确之后,就没有必要动态改变了,因此可以使用DisableVidModeExtension选项屏蔽xvidtune实时改变显示模式的能力,以保证显示器的安全。一般只有本服务器上的xvidtune可以完成这个操作,在当前X服务器上运行远程计算机上的xvidtune不允许改变本服务器的状态。但是,也可以通过设置AllowNonLocalXvidtune选项, 使得非本服务器上的xvidtune也有能力和本地的X服务器进行通信。第二个选项必须在第一个没有设置的条件下才能设置。为了安全的原因,不应该允许远程系统上的xvidtune获得本服务器的硬件设置信息,不要设置这个选项。

使用DisableModInDev选项,可以屏蔽客户程序对输入设备(鼠标或键盘)的动态改变。 而AllowNonLocalModInDxev选项可以许可非本地的程序(xset)能动态改变键盘或鼠标的设置。同样,这两个选项是冲突的。

键盘设置

Section "Keyboard" Protocol "Standard"# Protocol "Xqueue"AutoRepeat 500 5# ServerNumLock# Xleds 1 2 3 LeftAlt Meta RightAlt ModeShift RightCtl Compose ScrollLock ModeLock# XkbDisable XkbKeycodes "xfree86" XkbTypes "default" XkbCompat "default" XkbSymbols "us(pc101)" XkbGeometry "pc" XkbRules "xfree86" XkbModel "pc104" XkbLayout "us"EndSection

"Keyboard"用于定义键盘的参数,指定了键盘使用的协议、重复率以及对一些功能键的重映射。通常在XF86Setup下就可以设置这些选项,而不必手工修改这些设置。

"Standard"和"Xqueue"是两种不同的键盘协议,一般应该使用Standard协议,Xqueue是一种同时支持键盘和鼠标的硬件使用的协议,在个人计算机平台上很少使用。

"AutoRepeat"用于定义键盘的重复速度,"ServerNumLock"让X服务器处理NumLock的状态,否则是由系统的键盘驱动程序处理这个状态。有些X客户程序不能从系统键盘驱动程序中获得小键盘的情况,此时就需要设置这个选项。”Xleds”允许X程序,如xset,能够改变键盘上三个LED状态灯NumLock、CapsLock和ScrollLocal的状态。

下面的"LeftAlt"等设置,用于将个人计算机键盘上的键重新映射为一些传统Unix工作站的键盘上使用的键,如Meta、Compose等,由于传统X程序大多数是在工作站上开发的,因此这些程序需要这些特殊的功能键来完成操作,就需要映射这些键的定义以保证兼容性。

"XkbDisable"选项可以用于屏蔽X服务器对键盘的扩展能力, 通常不应该屏蔽这个能力,而不设置这个参数。这样就可以在设置文件中使用下面的设置选项重新定义键盘的类型、排列方式、符号类型、型号、编码等等。当然一般情况下可以不重新定义这些参数,缺省设置为101键PC键盘,适用于绝大多数的情况。

鼠标设置

Section "Pointer" Protocol "Sysmouse" Device “/dev/sysmouse”# Protocol "Microsoft"# Device "/dev/ttyd0"# BaudRate 1200# SampleRate 150# Emulate3Buttons# Emulate3Timeout 50# ChordMiddleEndSection

"Pointer"部分用于定义鼠标的参数,最重要的内容是定义鼠标的类型和使用的设备文件。对于使用moused来管理鼠标的情况,鼠标配置相当容易,首先在控制台下设置好鼠标,然后使用/dev/sysmouse作设备文件,Sysmouse作为鼠标类型即可。如果不打算使用moused来管理鼠标,而想直接使用鼠标设备,就需要正确指定鼠标类型及其设备文件。例如最常见的MS两键串口鼠标使用/dev/ttyd0(或ttyd1串口),使用Microsoft鼠标类型,等等。

注意必须保证系统内核识别出所使用的鼠标设备(或者串口设备)。

此外,BaudRate与SampleRate参数定义鼠标驱动程序与设备通信的波特率和采样率,Emulate3Buttons和Emulate3Timeout让两键鼠标能模拟三键鼠标, 然而伪设备Sysmouse的模拟三键能力的设置需要在moused的启动参数中设置,这里的设置是无效的。ChordMiddle与上面参数意义相反,定义按下三键鼠标的中间键,等价于同时按下左右两键。

显示器设置

Section "Monitor" Identifier "Hyundai DeluxScan 15G+" VendorName "Unknown" ModelName "Unknown" HorizSync 30-70 VertRefresh 50-150# ModeLine "1024x768i" 45 1024 1048 1208 1264 768 776 784 817 Interlace# Mode "1024x768i"# DotClock 45# HTimings 1024 1048 1208 1264# VTimings 768 776 784 817# Flags "Interlace"# EndMode# 800x600 @ 72 Hz, 48.0 kHz hsyncModeline "800x600" 50 800 856 976 1040 600 637 643 666 +hsync +vsync# 1024x768 @ 70 Hz, 56.5 kHz hsyncModeline "1024x768" 75 1024 1048 1184 1328 768 771 777 806 -hsync -vsync# 1280x1024 @ 87 Hz interlaced, 51 kHz hsyncModeline "1280x1024" 80 1280 1296 1512 1568 1024 1025 1037 1165 InterlaceEndSection

"Monitor"部分定义了显示器的各种属性,其中前三项设置Identifier、VendorName、ModelName起到的只是标识显示器的作用, 如果具备多个显示器定义选项的时候可以用来区分不同的定义选项,因此这三个设置主要用在配置文件内部,并不重要。 后面的水平同步HorizSync与垂直刷新VertRefresh的数据才是真正定义显示器属性的参数,应该与具体的硬件相一致,这将决定显示器能否工作在具体的显示模式下。

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"# VideoRam 256# Clocks 25.2 28.3EndSectionSection "Device" Identifier "ViRGE/DX or /GX" VendorName "Unknown" BoardName "Unknown" #VideoRam 2048EndSection

"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" ViewPort 0 0 Virtual 800 600 EndSubsectionEndSectionSection "Screen" Driver "accel" Device "ViRGE/DX or /GX" Monitor "Hyundai DeluxScan 15G+" DefaultColorDepth 16 Subsection "Display" Depth 24 Modes "800x600" "640x480" ViewPort 0 0 Virtual 800 600 EndSubsection Subsection "Display" Depth 8 Modes "800x600" "640x480" ViewPort 0 0 Virtual 800 600 EndSubsection Subsection "Display" Depth 16 Modes "1024x768" "800x600" "640x480" ViewPort 0 0 Virtual 1024 768 EndSubsectionEndSection

“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部分描述的显示器相联系。

在一个Screen部分中也可以定义多个Display子部分,每个Display子部分为对应一种色彩深度的显示模式设置,颜色深度Depth可以使用的值有8位(256色)、16位伪真彩色、24位真彩色和32位真彩色(实际只用了24位),DefaultColorDepth用于设置缺省使用的色彩深度。X服务器不能动态切换显示颜色深度,只能在同一个颜色深度下切换不同的显示模式。这个颜色深度下可供使用的分辨率模式需要使用Modes定义,缺省的分辨率为第一个模式,然后可以使用热键向前或向后切换。

动态切换分辨率不影响应用程序的显示,应用程序的显示内容也不变,XFree86提供了虚屏能力。虚屏提供了比实际屏幕更大的显示范围,例如使用800x600的显示模式,虚屏的大小可以是1024x768,这样可以显示更多的数据,实际屏幕之外的数据可随鼠标的移动而显示出来。这样在切换模式的时候,虚屏的大小却不变,可以移动鼠标来查看应用程序切换到虚屏之外的部分。缺省情况下,虚屏

[1] [2] 下一页

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有