我在 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 都只能使用明确定义的模式,并拒绝所有其他模式,甚至是有效的模式。这就是我解决这个问题的方法。
- 打开 Nvidia X Server 设置,然后选择左侧 GPU 0 下的内置显示器。右下角有一个“获取 Edid...”按钮。单击该按钮可获得 EDID.bin 文件(它只是显示器 EDID 的转储)。
- 不知何故,您需要将该文件传输到 Windows,因为您将使用以下命令修改它自定义分辨率实用程序。打开 CRU,然后单击“导入”按钮。您应该在右上角的框中至少看到一种“详细模式”,具有所需的分辨率和本机刷新率。突出显示它并单击“编辑...”,然后记下全部未变灰的值,不更改任何值。
- 仍在 CRU 中,添加新的“详细”分辨率。放全部的值与您在现有模式中找到的值完全相同,但将刷新率更改为您想要的值 (60hz)。
- 单击 CRU 右下角的“导出”,并使用简单的名称(例如“60edid.bin”)保存它。
- 将该文件返回到 Linux 上并将其存储在方便的地方。就我而言,我将其保存在
/home/my_name/.60edid.bin
. - 打开
xorg.conf
,并向其中添加以下内容(我使用“DP-4”作为连接器名称,但根据 xrandr 将其切换为您计算机上的任何内容):
Section "Device"
...
Option "CustomEDID" "DP-4:/path/to/60edid.bin"
Option "IgnoreEDID" "false"
Option "UseEDID" "true"
...
EndSection
- 保存
xorg.conf
并重新启动。打开 Nvidia X Server 设置,选择您的显示器,然后将分辨率更改为 1920x1080。 60hz 现在应该可以作为刷新率选项。选择后请务必单击“保存到X配置文件”!
请注意,即使在完成所有这些之后,它仍然不持久。为了使其持久化,我创建了以下脚本并在我的 .profile 中将其作为后台进程调用(例如. myscript.sh &
):
sleep 3s
xrandr --output DP-4 --mode 1920x1080 --rate 60