我已经为解决分辨率问题苦苦挣扎了 3 天,却无能为力
所以我有 2 个显示器,一个是 4k 3840x2160,另一个是 1920x1080 全高清,我的 GPU 能够达到“7680x4320@60Hz”,因此它符合要求,我可以毫无问题地以 4k + 全高清运行系统。当我想要转到 2560x1440 时,问题就开始了。
一些奇怪的事情:
在 fedora 33 上,我能够运行 2560x1440,并且 nvidia 驱动程序工作了几个月,没有任何问题,但我不得不迁移到 ubuntu,在 ubuntu 中安装 nvidia 驱动程序后,噩梦就开始了。
即使没有 nvidia 驱动程序,groovy gorilla 也无法显示 2560x1440,它是 4k,然后直接跳转到 1920x1080,但使用 hippo 时,我没有 nvidia 驱动程序就有 2k 分辨率,但在安装 nvidia 驱动程序后(尝试了几乎所有驱动程序版本),分辨率从显示器设置实用程序中消失
在所有上述情况下,2560x1440 仍然保留/显示在 nvidias xserver 选项卡中,但它被称为“2560x1440 缩放”,如果我从 xserver 更改分辨率,linux 就会变得无响应、冻结并崩溃。
我还尝试从 xrandr 实用程序添加行,手动添加分辨率并在所有 ubuntus 上得到这个:sudo xrandr --addmode DP-0 2560x1440_60.00 X 失败请求的错误:BadMatch(无效参数属性)失败请求的主要操作码:140(RANDR)失败请求的次要操作码:18(RRAddOutputMode)失败请求的序列号:37 输出流中的当前序列号:38
我没有更换任何电缆或硬件,几乎尝试了所有我能做的事情……但都无济于事。我需要 2560x1440 才能工作,就像我在 Fedora 33 上遇到的那样。我联系了开发人员并提交了一个错误,他们告诉我一些关于内核差异的事情,换句话说,他们不知道可能是什么问题,救命!!!
我不想仅仅因为 2560x1440 分辨率问题而更改 Linux 发行版。
答案1
我遇到了同样的问题。您必须手动添加分辨率。我通过这种方式解决了。
通过这些命令,您将获得可能的“模式行”设置,用于添加新的分辨率。
sudo get-edid > ~/lg_edid
parse-edid < ~/lg_edid
你会得到类似的东西:
Section "Monitor"
Identifier "LF27T850"
ModelName "LF27T850"
VendorName "SAM"
# Monitor Manufactured week 22 of 2020
# EDID version 1.3
# Digital Display
DisplaySize 600 340
Gamma 2.20
Option "DPMS" "true"
Horizsync 27-112
VertRefresh 48-72
# Maximum pixel clock is 300MHz
#Not giving standard mode: 1680x1050, 60Hz
#Not giving standard mode: 1280x800, 60Hz
#Not giving standard mode: 1280x720, 60Hz
#Not giving standard mode: 1280x1024, 60Hz
#Not giving standard mode: 1440x900, 60Hz
#Not giving standard mode: 1600x900, 60Hz
#Not giving standard mode: 1152x864, 75Hz
#Extension block found. Parsing...
Modeline "Mode 7" 148.50 1920 2008 2052 2200 1080 1084 1089 1125 +hsync +vsync
Modeline "Mode 0" 291.75 2560 2608 2640 2720 1440 1443 1448 1490 +hsync -vsync
Modeline "Mode 1" 148.500 1920 2008 2052 2200 1080 1084 1089 1125 +hsync +vsync
Modeline "Mode 2" 148.500 1920 2448 2492 2640 1080 1084 1089 1125 +hsync +vsync
Modeline "Mode 3" 74.250 1280 1390 1420 1650 720 725 730 750 +hsync +vsync
Modeline "Mode 4" 74.250 1280 1720 1760 1980 720 725 730 750 +hsync +vsync
Modeline "Mode 5" 27.027 720 736 798 858 480 489 495 525 -hsync -vsync
Modeline "Mode 6" 27.000 720 732 796 864 576 581 586 625 -hsync -vsync
Modeline "Mode 8" 148.50 1920 2448 2492 2640 1080 1084 1089 1125 +hsync +vsync
Modeline "Mode 9" 74.25 1280 1390 1430 1650 720 725 730 750 +hsync +vsync
Modeline "Mode 10" 74.25 1280 1720 1760 1980 720 725 730 750 +hsync +vsync
Option "PreferredMode" "Mode 7"
EndSection
就我而言,我对名为“Mode 0”的 Modeline 感兴趣,因为它包含我感兴趣的 2560x1440 分辨率。
"Mode 0" 291.75 2560 2608 2640 2720 1440 1443 1448 1490 +hsync -vsync
“Mode 0” 是一个名称,您可以在后续步骤中将其更改为任何您想要的名称。我将其更改为“2560x1440”。
现在您必须使用 添加设置xrandr
。首先,检查您感兴趣的输出。您xrandr
只需在终端中输入命令即可使用该命令。在我的情况下,我得到:
Screen 0: minimum 320 x 200, current 4480 x 1440, maximum 16384 x 16384
eDP-1 connected 1920x1080+0+360 (normal left inverted right x axis y axis) 294mm x 165mm
1920x1080 59.93*+
1680x1050 59.95 59.88
1600x1024 60.17
1400x1050 59.98
1600x900 59.99 59.94 59.95 59.82
1280x1024 60.02
1440x900 59.89
1400x900 59.96 59.88
1280x960 60.00
1440x810 60.00 59.97
1368x768 59.88 59.85
1360x768 59.80 59.96
1280x800 59.99 59.97 59.81 59.91
1152x864 60.00
1280x720 60.00 59.99 59.86 59.74
1024x768 60.04 60.00
960x720 60.00
928x696 60.05
896x672 60.01
1024x576 59.95 59.96 59.90 59.82
960x600 59.93 60.00
960x540 59.96 59.99 59.63 59.82
800x600 60.00 60.32 56.25
840x525 60.01 59.88
864x486 59.92 59.57
800x512 60.17
700x525 59.98
800x450 59.95 59.82
640x512 60.02
720x450 59.89
700x450 59.96 59.88
640x480 60.00 59.94
720x405 59.51 58.99
684x384 59.88 59.85
680x384 59.80 59.96
640x400 59.88 59.98
576x432 60.06
640x360 59.86 59.83 59.84 59.32
512x384 60.00
512x288 60.00 59.92
480x270 59.63 59.82
400x300 60.32 56.34
432x243 59.92 59.57
320x240 60.05
360x202 59.51 59.13
320x180 59.84 59.32
DP-1 disconnected (normal left inverted right x axis y axis)
HDMI-1 disconnected (normal left inverted right x axis y axis)
HDMI-2 connected primary 2560x1440+1920+0 (normal left inverted right x axis y axis) 597mm x 336mm
1920x1080 60.00 50.00 59.94
1680x1050 59.88
1600x900 60.00
1280x1024 75.02 60.02
1440x900 59.90
1280x800 59.91
1152x864 75.00
1280x720 60.00 50.00 59.94
1024x768 75.03 70.07 60.00
832x624 74.55
800x600 72.19 75.00 60.32 56.25
720x576 50.00
720x480 60.00 59.94
640x480 75.00 72.81 66.67 60.00 59.94
720x400 70.08
2560x1440 71.99*
我对 HDMI-2 输出感兴趣。
现在我们需要添加我们的 Modeline:
xrandr --newmode "2560x1440" 291.75 2560 2608 2640 2720 1440 1443 1448 1490 +hsync -vsync
xrandr --addmode HDMI-2 2560x1440
就是这样。显示设置中应该有一个选项可以选择分辨率。
但是这些设置并不是永久的。要使它们永久生效,您必须~/.profile
通过添加两行代码来修改文件。
这将打开您感兴趣的文件:
gedit ~/.profile
将这两行粘贴到文件中,一切就会正常工作。
xrandr --newmode "2560x1440" 291.75 2560 2608 2640 2720 1440 1443 1448 1490 +hsync -vsync
xrandr --addmode HDMI-2 2560x1440
答案2
好的,谢谢你的回复。我在这里做了一些研究,发现了一些有趣的事情:
- 我正在使用 DisplayPort,它在 nvidias 菜单中标记为 DP-0
看起来 edid 1.3 无法识别显示端口或者我做错了什么?它说:
> This is read-edid version 3.0.2. Prepare for some fun. Attempting to
> use i2c interface No EDID on bus 0 No EDID on bus 1 No EDID on bus 2
> No EDID on bus 3 Looks like no busses have an EDID. Sorry!
然后我尝试使用 HDMI 而不是 DPort ,它被 edid 命令识别,如下所示:
Checksum Correct
Section "Monitor"
Identifier "LG Ultra HD"
ModelName "LG Ultra HD"
VendorName "GSM"
# Monitor Manufactured week 5 of 2016
# EDID version 1.3
# Digital Display
DisplaySize 600 340
Gamma 2.20
Option "DPMS" "true"
Horizsync 30-135
VertRefresh 56-61
# Maximum pixel clock is 300MHz
#Not giving standard mode: 1152x864, 60Hz
#Not giving standard mode: 1280x1024, 60Hz
#Not giving standard mode: 1280x720, 60Hz
#Not giving standard mode: 1600x900, 60Hz
#Not giving standard mode: 1920x1080, 60Hz
#Not giving standard mode: 1280x800, 60Hz
#Extension block found. Parsing...
Modeline "Mode 8" 148.50 1920 2008 2052 2200 1080 1084 1089 1125 +hsync +vsync
Modeline "Mode 0" 297.00 3840 4016 4104 4400 2160 2168 2178 2250 +hsync +vsync
Modeline "Mode 1" 148.50 1920 2008 2052 2200 1080 1084 1089 1125 +hsync +vsync
Modeline "Mode 2" 148.500 1920 2008 2052 2200 1080 1084 1089 1125 +hsync +vsync
Modeline "Mode 3" 74.250 1920 2008 2052 2200 1080 1084 1089 1125 +hsync +vsync
Modeline "Mode 4" 74.250 1920 2008 2052 2200 1080 1082 1087 1125 +hsync +vsync interlace
Modeline "Mode 5" 74.250 1280 1390 1420 1650 720 725 730 750 +hsync +vsync
Modeline "Mode 6" 27.027 720 736 798 858 480 489 495 525 -hsync -vsync
Modeline "Mode 7" 25.200 640 656 752 800 480 490 492 525 -hsync -vsync
Option "PreferredMode" "Mode 8"
结束部分
这里没有 2560,我想可能是因为使用了 HDMI 电缆?在说任何话之前,我再次说明,我能够在 fedora + nvidia 驱动程序下以 2560x1440 分辨率工作,这台显示器(已列出分辨率)没有问题,我可以在 ubuntu 上以该分辨率工作,但不需要 nvidia 驱动程序。
这里有什么可行的步骤吗?或者,当显示器通过 DisplayPort DP-0 连接时,如何让 edid 看到我的显示器?
PS 在 Windows 中也没有问题,它始终被列为 2560x1440,无论使用什么驱动程序,我都可以随时将我的显示器设置为该分辨率。
答案3
它不会起作用 - 在 Linux 中,nvidia 驱动程序在支持高刷新率(分辨率)方面存在限制。此外,由于 nvidia 元模式,在使用 nvidia 驱动程序时使用 xrandr 是没有意义的。上面的这些家伙没有告诉你的是,他们很可能使用 amd gpu。对于 amd,他们的配方将适用于 nvidia - 不,你的希望是新的 nvidia 470 驱动程序 - 也许它会在 wayland 上工作