SDB:配置显卡和显示器设置
有时X服务器可能无法正确读取显示器的扩展显示识别数据 (EDID),并回退到远低于其能力的低分辨率。
在这种情况下,可能需要修改/etc/X11/xorg.conf.d/50-monitor.conf文件。
例如,一款分辨率为1680x1050的Acer X223w显示器需要定义其HorizSync和VertRefresh才能显示其原生分辨率。
Section "Monitor" Identifier "Monitor1" VendorName "Unknown" ModelName "Acer X223W" HorizSync 31.0 - 84.0 VertRefresh 56.0 - 77.0 EndSection
您需要查找适合您自己的显示器的正确的HorizSync和VertRefresh值。
然后使用CTRL-ALT-Backspace (两次) 重新启动X服务器。
您也可以添加一个modeline,但首先尝试上述方法。
要计算modeline,您需要使用cvt命令。请在此处查看关于其用法的讨论:http://forums.opensuse.org/english/get-technical-help-here/how-faq-forums/unreviewed-how-faq/430150-opensuse-graphic-card-practical-theory-guide-users-6.html#post2280876
例如,对于1680x1050的分辨率
回答
# 1680x1050 59.95 Hz (CVT 1.76MA) hsync: 65.29 kHz; pclk: 146.25 MHz Modeline "1680x1050_60.00" 146.25 1680 1784 1960 2240 1050 1053 1059 1089 -hsync +vsync
/etc/X11/xorg.conf.d/50-monitor.conf文件现在看起来像这样。
Section "Monitor" Identifier "Monitor1" VendorName "Unknown" ModelName "Acer X223W" HorizSync 31.0 - 84.0 VertRefresh 56.0 - 77.0 ModeLine "1680x1050_60.00" 146.25 1680 1784 1960 2240 1050 1053 1059 1089 -hsync +vsync EndSection
这可能发生在nouveau驱动程序(nVIDIA显卡和新型LCD显示器,它们在“原生”分辨率下工作最佳,如其供应商所声明)的情况下,但也可能发生在其他图形驱动程序中。
在这些情况下,显示器没有以正确的分辨率工作,即使xrandr命令也没有显示所需的分辨率。例如,您期望您的显示器(Display ASUS VE228H + nouveau 0.0.16_20120321,甚至1.0.2)以全高清分辨率(1920x1080)工作,但实际分辨率却不同(远低于),并且您无法通过xrandr或您的桌面环境(DE)的显示管理器选择正确的分辨率。<bf /> 但是,如果您打开文件/var/log/Xorg.0.log并查找屏幕的本机分辨率(例如1920x1080,高清分辨率),您会发现
[ 1205.464] (II) NOUVEAU(0): Using EDID range info for horizontal sync [ 1205.464] (II) NOUVEAU(0): Using EDID range info for vertical refresh [ 1205.464] (II) NOUVEAU(0): Printing DDC gathered Modelines: [ 1205.464] (II) NOUVEAU(0): Modeline "1920x1080"x0.0 148.50 1920 2008 2052 2200 1080 1084 1089 1125 +hsync +vsync (67.5 kHz eP) [ 1205.464] (II) NOUVEAU(0): Modeline "800x600"x0.0 40.00 800 840 968 1056 600 601 605 628 +hsync +vsync (37.9 kHz e) [ 1205.464] (II) NOUVEAU(0): Modeline "800x600"x0.0 36.00 800 824 896 1024 600 601 603 625 +hsync +vsync (35.2 kHz e)
如您在此真实示例中所见,该显示器分辨率的modeline由EDID提供,并由Xorg列出,但未由xrandr提供。此外,请注意,命令
(包括gtf 1920 1080命令),它们都生成了标准的,但错误的测试显示器的modeline。
因此,如果您遇到相同的问题,您应该检查上面以粗体显示的modeline的等效项。也就是说,例如,您可以使用以下命令序列(实际上将新的modeline添加到您的显示器,但作为不会在X11重新启动后保留的临时设置)
xrandr --newmode "1920x1080" 148.50 1920 2008 2052 2200 1080 1084 1089 1125 +hsync +vsync
VGA_out="$(xrandr -q | grep -m 1 '\<connected\>' | cut -d ' ' -f1)"
xrandr --addmode $VGA_out "1920x1080"
xrandr --output $VGA_out --mode "1920x1080"
当然,您需要将"1920x1080" ...替换为从显示器EDID收集的,并适合您的LCD屏幕的modeline。如果您发现这些设置工作良好,请相应地修改文件/etc/X11/xorg.conf.d/50-screen.conf(或者,您可以将上面的命令序列放入bash脚本中,以便在图形登录时自动运行,以实现每个用户、每个会话的设置)。