如何将屏幕刷新率降低至 60hz?

如何将屏幕刷新率降低至 60hz?

我在 Lenovo Legion 5 笔记本电脑上运行 Pop!_OS 21.04 (Nvidia)。我想将屏幕刷新率从通常的 144 降低到 60hz。我可以在 Windows 上的“显示设置”中执行此操作,但是在 Linux 上似乎无法执行此操作。运行 xrandr 显示我唯一的选择是 144 赫兹。

jeff@pop-os:~/.local/share/applications$ xrandr
Screen 0: minimum 8 x 8, current 1920 x 1080, maximum 32767 x 32767
DP-0 disconnected (normal left inverted right x axis y axis)
DP-1 disconnected (normal left inverted right x axis y axis)
DP-2 disconnected (normal left inverted right x axis y axis)
DP-3 disconnected (normal left inverted right x axis y axis)
HDMI-0 disconnected (normal left inverted right x axis y axis)
DP-4 connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 381mm x 214mm
   1920x1080    144.00*+

我尝试过的事情:

  • 转到“显示”并将速率更改为 60hz,但下拉菜单上的唯一选项是 144。

  • 进入 BIOS 并尝试更改刷新率,但没有选项可以这样做。

  • 在 Windows 上手动设置刷新率,然后启动回 Linux,但在 Linux 上刷新率始终停留在 144。

  • 运行xrandr -r 60和其他变化以及附近的值,但它总是说Rate 60.00 Hz not available for this size,即使我能够在 Windows 上这样做。

  • 正在运行xrandr --output DP-4 --mode 1920x1080 --refresh 60,但是没有输出,似乎没有任何变化。

  • 正在编辑~/.config/monitors.xml,但是该文件在我的系统上不存在。

  • 保存 x 配置并将/etc/X11/xorg.conf刷新率更改为 60,但这似乎没有效果。

  • 执行以下操作来尝试添加自定义分辨率+刷新率:xrandr --newmode "1920x1080_60.00" 173.00 1920 2048 2248 2576 1080 1083 1088 1120 -hsync +vsync,但是我得到

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

(这些数字取自 的输出cvt 1920 1080 60)。

我现在没有主意了,我尝试了网上找到的所有解决方案,但没有一个起作用。有人可以帮我降低显示器刷新率吗?

答案1

经过几天的尝试,我终于通过修改 EDID 在我的 Legion 5 上找到了解决方案。如果您不知道,图形驱动程序会访问显示器的 EDID 来确定支持哪些视频模式。

EDID 定义刷新率范围和像素时钟等值,但它还报告支持的特定视频模式。我发现 xrandr 和 Nvidia X Server Settings 都只能使用明确定义的模式,并拒绝所有其他模式,甚至是有效的模式。这就是我解决这个问题的方法。

  1. 打开 Nvidia X Server 设置,然后选择左侧 GPU 0 下的内置显示器。右下角有一个“获取 Edid...”按钮。单击该按钮可获得 EDID.bin 文件(它只是显示器 EDID 的转储)。
  2. 不知何故,您需要将该文件传输到 Windows,因为您将使用以下命令修改它自定义分辨率实用程序。打开 CRU,然后单击“导入”按钮。您应该在右上角的框中至少看到一种“详细模式”,具有所需的分辨率和本机刷新率。突出显示它并单击“编辑...”,然后记下全部未变灰的值,不更改任何值。
  3. 仍在 CRU 中,添加新的“详细”分辨率。放全部的值与您在现有模式中找到的值完全相同,但将刷新率更改为您想要的值 (60hz)。
  4. 单击 CRU 右下角的“导出”,并使用简单的名称(例如“60edid.bin”)保存它。
  5. 将该文件返回到 Linux 上并将其存储在方便的地方。就我而言,我将其保存在/home/my_name/.60edid.bin.
  6. 打开xorg.conf,并向其中添加以下内容(我使用“DP-4”作为连接器名称,但根据 xrandr 将其切换为您计算机上的任何内容):
Section "Device"

...

Option "CustomEDID" "DP-4:/path/to/60edid.bin"

Option "IgnoreEDID" "false"

Option "UseEDID"    "true"

...

EndSection
  1. 保存xorg.conf并重新启动。打开 Nvidia X Server 设置,选择您的显示器,然后将分辨率更改为 1920x1080。 60hz 现在应该可以作为刷新率选项。选择后请务必单击“保存到X配置文件”!

请注意,即使在完成所有这些之后,它仍然不持久。为了使其持久化,我创建了以下脚本并在我的 .profile 中将其作为后台进程调用(例如. myscript.sh &):

sleep 3s
xrandr --output DP-4 --mode 1920x1080 --rate 60

相关内容