我最近买了全新的 ASUS PB278Q 显示器。
尝试连接到我的笔记本电脑时,一切都运行良好,只是我无法让显示器的原始分辨率 (2560x1440) 正常工作。自动分辨率为 1920x1080。
我的显卡是 Nvidia GeForce 320m。
以下是lspci
它的输出:
~$ lspci | grep VGA
02:00.0 VGA compatible controller: NVIDIA Corporation GT216M [GeForce GT 320M] (rev a2)
并且xrandr
:
~$ xrandr
Screen 0: minimum 8 x 8, current 3286 x 1437, maximum 8192 x 8192
VGA-0 disconnected (normal left inverted right x axis y axis)
LVDS-0 connected primary 1366x768+0+669 (normal left inverted right x axis y axis) 344mm x 193mm
1366x768 60.0*+
HDMI-0 connected 1920x1080+1366+0 (normal left inverted right x axis y axis) 600mm x 340mm
1920x1080 60.0*+ 59.9 50.0 30.0 25.0 24.0 60.0 50.0
1680x1050 60.0
1440x900 59.9
1280x1024 75.0 60.0
1280x960 60.0
1280x800 59.8
1280x720 60.0 59.9 50.0
1152x864 75.0
1024x768 75.0 70.1 60.0
800x600 75.0 72.2 60.3 56.2
720x576 50.0
720x480 59.9
640x480 75.0 59.9 59.9
480x576 50.0
480x480 59.9
我的机器上安装了专有驱动程序,以下是有关显示器的信息nvidia-settings
(实际上我没有足够的声誉来发布图片,所以这里是文字):
Chip Location: Internal
Signal: TDMS
Connection link: Single
Native resolution: 2560x1440
Refresh rate: 60.00 Hz
显示器通过 HDMI 电缆连接到笔记本电脑,老实说,我不知道它是什么版本,也不知道我的显卡的 HDMI 输出是什么版本。我试图在网上找到解决办法,但没有成功。另外,我的显卡只有 VGA 和 HDMI 输出,所以我无法测试 DVI-D 电缆和 DisplayPort。
所以显然那里有问题。至少我想确切地知道发生了什么。我试图看看这是否是 Linux 特有的问题,但 Windows 也默认给了我相同的解决方案。
我已经尝试过的:
- 通过 VGA 连接(愚蠢的,当然它给了我 1920x1080)。
- 检查了两根 HDMI 电缆(不确定它们是否相同,如上所述)。
- 尝试
xrandr
并添加了自定义模式。没有帮助。 - 在网上查找了很多信息,但未能得到合适的结果。
实际上xrandr
给了我以下内容:
~$ cvt 2560 1440 60
# 2560x1440 59.96 Hz (CVT 3.69M9) hsync: 89.52 kHz; pclk: 312.25 MHz
Modeline "2560x1440_60.00" 312.25 2560 2752 3024 3488 1440 1443 1448 1493 -hsync +vsync
~$ xrandr --newmode "2560x1440_60.00" 312.25 2560 2752 3024 3488 1440 1443 1448 1493 -hsync +vsync
~$ xrandr
Screen 0: minimum 8 x 8, current 3286 x 1437, maximum 8192 x 8192
VGA-0 disconnected (normal left inverted right x axis y axis)
LVDS-0 connected 1366x768+0+669 (normal left inverted right x axis y axis) 344mm x 193mm
1366x768 60.0*+
HDMI-0 connected primary 1920x1080+1366+0 (normal left inverted right x axis y axis) 600mm x 340mm
1920x1080 60.0*+ 59.9 50.0 30.0 25.0 24.0 60.0 50.0
1680x1050 60.0
1440x900 59.9
1280x1024 75.0 60.0
1280x960 60.0
1280x800 59.8
1280x720 60.0 59.9 50.0
1152x864 75.0
1024x768 75.0 70.1 60.0
800x600 75.0 72.2 60.3 56.2
720x576 50.0
720x480 59.9
640x480 75.0 59.9 59.9
480x576 50.0
480x480 59.9
2560x1440_60.00 (0x34f) 312.2MHz
h: width 2560 start 2752 end 3024 total 3488 skew 0 clock 89.5KHz
v: height 1440 start 1443 end 1448 total 1493 clock 60.0Hz
~$ xrandr --addmode HDMI-0 2560x1440_60.00
X Error of failed request: BadMatch (invalid parameter attributes)
Major opcode of failed request: 140 (RANDR)
Minor opcode of failed request: 18 (RRAddOutputMode)
Serial number of failed request: 29
Current serial number in output stream: 30
我下一步打算做什么:
- 尝试另一根 HDMI 线?
- 试试 HDMI 转 DVI-D 电缆?
- 尝试使用 HDMI 转 DisplayPort 电缆?
- 还有其他类型的适配器吗?VGA 转 DVI-D?
- 再买一台配备另一张显卡的笔记本电脑。该死。
- 我的想法基本上就到此结束了。
有什么想法吗?
如果能解释一下它为什么不起作用,我们将不胜感激。
编辑:
我已设法通过 HDMI 转 DVI-D 电缆在 Windows 8 上使其工作,方法是在 nvidia 设置管理器中设置自定义分辨率。
虽然显示器经常输出坏电缆连接(它说需要双链路),但实际上设置了高分辨率。
我尝试设置自定义分辨率xrandr
失败,并出现与上述相同的错误。
答案1
以下是我让 ASUS PB278Q 工作的方法:在终端中:
$ cvt -v 2560 1440 40
2560x1440 39.96 Hz (CVT) hsync: 58.98 kHz; pclk: 201.00 MHz
Modeline "2560x1440_40.00" 201.00 2560 2720 2984 3408 1440 1443 1448 1476 -hsync +vsync
$ xrandr --newmode "2560x1440_40.00" 201.00 2560 2720 2984 3408 1440 1443 1448 1476 -hsync +vsync
$ xrandr --addmode HDMI1 "2560x1440_40.00"
答案2
我拥有与您相同的显示器,通过 HDMI 以原始分辨率 (2560x144) 运行。我的 Sony Vaio S 15 笔记本电脑配有 Intel Ivy HD 4000 显卡。
以下是否有效:
xrandr --newmode "2560x1440" 220.812 2560 2608 2640 2720 1440 1443 1448 1478 -hsync -vsync
xrandr --addmode HDMI1 2560x1440
xrandr --output HDMI1 --mode 2560x1440
答案3
这是一个编写的脚本,用于测试不同的刷新率并找到适合我的显示器的刷新率。
它有点不稳定,但在我输入“40”作为第一个参数即“./cv 40”并在 Ubuntu 显示设置中设置分辨率后它就起作用了。
如果在第二个参数 cvt 中传递“-i”会创建隔行刷新率,请将设备 DEV 更改为您的设备。-- hth
#!/bin/bash
DEV=HDMI1
NAME=2560x1440i
WID=2560
HIG=1440
FRQ=$1
INTERLACE=$2
MODELINE=`cvt $INTERLACE $WID $HIG $FRQ | sed "1 d" | sed 's/^.*\"//'`
echo $MODELINE
xrandr --delmode $DEV "$NAME" &2>/dev/null
xrandr --rmmode "$NAME" &2>/dev/null
echo creating new mode $NAME $MODELINE
xrandr --newmode "$NAME" $MODELINE
echo adding mode.
xrandr --addmode $DEV $NAME