强制刷新率

我想让我的显示器在1920×1080分辨率下以59hz工作,因为它在60hz时闪烁一点。 当然,它不是默认选项,所以我需要以某种方式强迫它。 在Windows中很容易做到,但在ubuntu中我无法做到,我尝试的任何选项,如xrandr,只是反弹,因为默认情况下不支持1920×1080 @ 59。 是他们的某种方式来实现它? 我的卡是nvidia 9600gt,310.32驱动程序。

使用xrandr给我这个输出:

请求失败的错误:BadMatch(参数属性无效)
失败请求的主要操作码:153(RANDR)失败请求的次要操作码:18(RRAddOutputMode)失败请求的序列号:31输出流中的当前序列号:32

使用xrandr -r 59给出:

速率59.0 Hz不适用于此尺寸

我设法将它改为1920×1080 @ 59,但监视被拒绝的时间,所以对我来说没有运气。 我想知道它为什么让它在59hz工作?

如果其他人会找到此主题,我通过添加更改了刷新率

选项“ExactModeTimingsDVI”“TRUE”

在modeline命令之前,它看起来像这样:

“Monitor”标识符“Monitor0”商店名称“Unknown”ModelName“Unknown”HorizSync 30.0 – 81.0 VertRefresh 56.0 – 75.0选项“DPMS”选项“ExactModeTimingsDVI”“TRUE”Modeline“1680x1050_60.00”146.25 1680 1784 1960 2240 1050 1053 1059 1089 -hsync + vsync EndSection

  • 计算分辨率所需的模型

    cvt 1920 1080 59 
  • 使用xrandr为监视器添加此新模式

     xrandr --newmode "1920x1080_59.00" {add what you got from cvt} -hsync +vsync 
  • 将此新模式添加到设备

     xrandr --verbose --addmode VGA-0 "1920x1080_59.00" 
  • 激活新模式

     xrandr --output VGA-0 --mode "1920x1080_59.00" 

顺便说说 …

 xrandr -r 59 

可能会工作,但这可能取决于卡和/ pr xrandr版本。


另外,请不要忘记检查显示器:某些显示器允许您使用显示器上的按钮设置刷新率。


失败请求的主要操作码

该问题可能是由于video卡无法从监视器读取EDID信息。 在xorg.conf的设备部分,您可以强制系统不使用edid信息。

 Section "Device" <..> Option "UseEDID" "FALSE" EndSection 

操作码错误的另一个原因可能是video驱动程序不允许非edid模式(这实际上是当前NVidia驱动程序的默认模式)。 您可以按照上面的说法禁用EDID,这样可以正常工作,但如果您的EDID信息确实正确,那么这不是最佳选择,因为您将丢失监视器大小信息(预计字体大小错误)和监视器报告的默认EDID模式等内容。 相反,请使用以下内容:

  Option "ModeValidation" "AllowNonEdidModes" 

ModeValidation的另一个好处是它允许更细粒度的控制(在多显示器设置的情况下每个输出); 查看NVidia驱动程序自述文件以获取更多信息。


然后,您可以将模式行添加到Section "Monitor"

 Section "Monitor" Identifier "Monitor0" VendorName "Unknown" ModelName "CRT-0" HorizSync 28.0 - 55.0 VertRefresh 43.0 - 72.0 Option "DPMS" Modeline "1920x1080_59.00" {bunch of numbers from cvt} -hsync +vsync EndSection 

以及Section "Screen"的模式。

 SubSection "Display" Depth 24 Modes "1920x1080_59" EndSubSection