总结
当我发现我走在正确的道路上时,我编辑了我的问题并添加了这部分,现在剩下的问题是如何使用 Xrandr 设置 50 Hz(VESA 兼容)和 56 Hz(HDMI 1.4 的最大值)的刷新率,而不是只有 44 Hz,这似乎是 Xrandr 使用来自 cvt 的此模式行允许的最大值:
"3440x1440_44.00" 299.75 3440 3664 4024 4608 1440 1443 1453 1479 -hsync +vsync
我猜是数字的问题。在 Windows 下,使用名为“自定义分辨率实用程序”的工具,56 Hz 和 50 Hz 确实可以在相同的设备上工作,但此工具计算的 56 Hz 像素时钟为 298.57 MHz。cvt 计算的 44 Hz 像素时钟更高,而它计算的 50 或 56 Hz 像素时钟则高得多。
CRU工具的工作设置如下:
Active: 3440 pixels 1440 lines
Front porch: 48 pixels 3 lines
Sync width: 32 pixels 10 lines
Back porch: 80 pixels 28 lines
Blanking: 160 pixels 41 lines
Total: 3600 pixels 1481 lines
Sync polarity: H + / V -
Refresh rate: 56.000 Hz Actual 56.000 Hz
Horizontal: 82.936 kHz Actual 82.936 kHz
Pixel clock: 298.57 MHz
Refresh rate: 50.000 Hz Actual 50.000 Hz
Horizontal: 74.050 kHz Actual 74.050 kHz
Pixel clock: 266.58 MHz
这可以转换为 2 个模式行 (分别针对 56 Hz 和 50 Hz) 吗?
长话短说:
我买了一台新的 3440x1440 显示器,但悲惨的是,我发现我的华硕 F/X571 笔记本电脑在全分辨率下只能获得 30 Hz,该笔记本电脑配有 Nvidia Geforce GTX 1650 显卡,运行 Ubuntu 22.04,目前使用 X 服务器和 Nvidia 驱动程序 535.113.01。这台笔记本电脑配有英特尔双显卡,但设置为 Nvidia 模式。
该显示器在 USB-C、DisplayPort 和 HDMI 2.0 上支持高达 100 Hz 的 3440x1440 刷新率。然而,笔记本电脑只有 HDMI 1.4,这将 3440x1440 的最大刷新率限制为 56.048 Hz。(来源)
我想将 Ubuntu 中的刷新率更改为 50 Hz 或 56 Hz,这样就可以正常工作,而 30 Hz 则不行。但我在各种旧帖子和最新帖子中找到的所有方法都失败了。
在 Nvidia 设置中更改刷新率(如图所示)这里) 无法实现,因为我没有分辨率和刷新率输入字段。它显示“PRIME 显示器无法通过 nvidia-settings 控制,必须通过外部 RandR 功能工具进行配置。”当我选择 X 屏幕设置时,我可以更改虚拟尺寸,但没有刷新率字段。
只需使用 xrandr 设置所需的刷新率,这是许多人最喜欢的解决方案这里,没有效果:
xrandr --输出 HDMI-1-1 --模式 3440x1440 --速率 50
同一线程中的第二个最佳解决方案建议编辑 ~/.config/monitors.xml – 此文件存在于我的系统中,但是它没有我当前监视器的条目。(它最后一次修改是在 2020 年 3 月……)
非常古老的线程,例如这建议编辑 xorg.conf,但是该方法似乎已经过时了。xorg.conf 似乎不再存在。
当然,我尝试使用 cvt 创建新的模式行,使用 xrandr 将其添加到我的可用模式中,然后使用 xandr 激活它,但不起作用:屏幕空白约 2 秒,然后恢复为 30 Hz。据我所知,我还应该能够在系统设置 GUI 中看到新模式并在那里选择它,但只有默认的 3440x1440 模式。
以下是我使用 xrandr -q 的结果以及尝试激活时出现的错误消息。我省略了内部屏幕 eDP-1-1 的数据,因为当我使用此显示器时,它始终处于停用状态。
$ xrandr -q
Screen 0: minimum 8 x 8, current 3440 x 1440, maximum 32767 x 32767
HDMI-1-1 connected primary 3440x1440+0+0 (normal left inverted right x axis y axis) 797mm x 334mm
3440x1440 29.99*
2560x1080 59.98 60.00 59.94 50.00
1720x1440 59.94
1920x1080 60.00 60.00 50.00 59.94
1920x1080i 60.00 50.00 59.94
1680x1050 59.88
1280x1024 75.02 60.02
1440x900 59.90
1280x720 60.00 50.00 59.94
1024x768 99.97 75.03 70.07 60.00
832x624 74.55
800x600 99.99 72.19 75.00 60.32 56.25
720x576 50.00
720x480 60.00 59.94
640x480 100.00 75.00 72.81 66.67 60.00 59.94
720x400 70.08
3440x1440_50.00 49.96
3440x1440_50.00 (0x267) 344.000MHz -HSync +VSync
h: width 3440 start 3672 end 4040 total 4640 skew 0 clock 74.14KHz
v: height 1440 start 1443 end 1453 total 1484 clock 49.96Hz
$ xrandr --output HDMI-1-1 --mode "3440x1440_50.00" --verbose
crtc 0: 3440x1440_50.00 49.96 +0+0 "HDMI-1-1"
xrandr: Configure crtc 0 failed
crtc 0: disable
crtc 1: disable
crtc 2: disable
screen 0: revert
crtc 0: revert
crtc 1: revert
crtc 2: revert
我现在没有主意,也找不到其他建议。我该怎么办?
我是否可以不添加新的“3440x1440_50.00”模式,而只需将刷新率添加到现有的“3440x1440”模式,以便系统自动选择最高刷新率?
答案1
我使用已有 10 年历史的命令行工具找到了解决方案联电(通用模式线计算器)能够计算 3440x1440 @ 56 Hz 的减少消隐时间的模式线:
"3440x1440x55.97" 298.000000 3440 3488 3520 3600 1440 1443 1447 1479 +HSync -VSync
尽可能接近 56 Hz,或者
"3440x1440x56.34" 300.000000 3440 3488 3520 3600 1440 1443 1447 1479 +HSync -VSync
这可能是最大值,因为大于 300 MHz 的像素时钟将无法工作。