关于X11的重要配置文件xorg.conf

来源:互联网 发布:源码生成器 编辑:程序博客网 时间:2024/05/22 15:24

http://blog.csdn.net/mydsyc/article/details/41868669

由于工作的需要,开发的时候搭建的linux系统终端在关于屏幕分辨率的自适应问题上面非常的头疼。其实很重要的就是写好xorg.conf文件,这个文件没有配置好,显示就会非常的奇怪。

这个配置文件最主要的作用是在于启动X11的时候以适当的分辨率去适应屏幕,而关于启动服务后的屏幕变化的自适应就关联到窗口管理器了,这边我就不记载了。

下面列上我用的xorg.conf的配置文件


Section "Device"
Identifier "Configured Video Device"
EndSection

Section "Monitor"
Identifier "Configured Monitor"
Horizsync 30-81
Vertrefresh 56-75
Modeline "1440x900"  106.50  1440 1528 1672 1904  900 903 909 934 -hsync +vsync
Modeline "1920x1080"  173.00  1920 2048 2248 2576  1080 1083 1088 1120 -hsync +vsync
Option          "PreferredMode" "1440x900"
EndSection

Section "Screen"
Identifier "Default Screen"
Monitor "Configured Monitor"
Device "Configured Video Device"
SubSection "Display"
Modes "1920x1080" "1440x900" "1366x768" "1280x768"
EndSubSection
EndSection

就这么一段就好了。当然相应的一些X11的驱动模块你是要放到他默认的路径下的。这个配置文件简化了。

我这边其实想主要说明关于分辨率的。

先说说Modes "1920x1080" "1440x900" "1366x768" "1280x768"这一项吧,这边我列出了几个可供X11服务选择的分辨率,X11会默认启动第一个分辨率,如果第一个分辨率不存在或者过高那么启用第二个,依次类推。

那么什么时候会不存在或者过高呢。其实显示器都有适应的最高的分辨率,这里可以用ddcprobe命令来查看,这个命令我没有研究过,我看过代码应该是获取显示器寄存器内的适应的Timing时序的,代码中有一段获取的内嵌汇编,额我看不大懂。不说这个了。另外可以用xrandr命令来查看当前的显示分辨率以及支持的分辨率,xranr列出的分辨率都可以写在Modes这一行。X11会自动加载并显示那个分辨率(按顺序查找)。

那么xranr中没有的可以加入么,我试过是可以的,有些高的分辨率也可以加入。列如要显示1440x900的分辨率,而xranr中没有显示,我也是可以加入并且让它显示的。可以使用命令cvt 1440 900 60 这个60是频率,这个配置的范围也在这个文件中Horizsync 30-81 Vertrefresh 56-75。

cvt 1440 900 60后会获取到一列数据如Modeline "1440x900"  106.50  1440 1528 1672 1904  900 903 909 934 -hsync +vsync。然后将这一行信息加入到xorg.conf的monitor字段中,这样显示器就能显示我们添加的分辨率了,当然如果显示器支持不了这么高的分辨率的话,应该会提示输入的序列错误的,也就无法显示画面了。对于这个显示器到底能支持多少的分辨率我也不大清楚,之前的ddcprobe命令应该可以看到,不过我还没弄懂希望网友也可以帮个忙啊。