求助:如何设置可正常应用的1920级分辨率(添加1920x1080后被强制退回低分辨率)
问题描述
我在Linux系统里找不到切换到1920x1080分辨率的选项,但Windows系统明明支持这个分辨率。尝试用xrandr添加了60Hz的1920x1080分辨率选项后,点击应用却被GPU或内置显示器拒绝,分辨率直接被强制退回1024x768@60Hz。
以下是我的系统信息和相关命令输出:
xrandr --verbose 输出
$ xrandr --verbose Screen 0: minimum 320 x 200, current 1024 x 768, maximum 16384 x 16384 VGA-1 connected primary 1024x768+0+0 (0x42) normal (normal left inverted right x axis y axis) 0mm x 0mm Identifier: 0x40 Timestamp: 66227 Subpixel: unknown Gamma: 1.0:1.0:1.0 Brightness: 1.0 Clones: CRTC: 0 CRTCs: 0 1 Transform: 1.000000 0.000000 0.000000 0.000000 1.000000 0.000000 0.000000 0.000000 1.000000 filter: link-status: Good supported: Good, Bad CTM: 2591090 1 7737 0 2017 -2147483648 41175 -2147483648 -1154733 0 44695 -2147483648 45328 0 21316 -2147483648 3727858 1 CONNECTOR_ID: 61 supported: 61 non-desktop: 0 range: (0, 1) 1024x768 (0x42) 65.000MHz -HSync -VSync *current h: width 1024 start 1048 end 1184 total 1344 skew 0 clock 48.36KHz v: height 768 start 771 end 777 total 806 clock 60.00Hz 800x600 (0x43) 40.000MHz +HSync +VSync h: width 800 start 840 end 968 total 1056 skew 0 clock 37.88KHz v: height 600 start 601 end 605 total 628 clock 60.32Hz 800x600 (0x44) 36.000MHz +HSync +VSync h: width 800 start 824 end 896 total 1024 skew 0 clock 35.16KHz v: height 600 start 601 end 603 total 625 clock 56.25Hz 848x480 (0x45) 33.750MHz +HSync +VSync h: width 848 start 864 end 976 total 1088 skew 0 clock 31.02KHz v: height 480 start 486 end 494 total 517 clock 60.00Hz 640x480 (0x46) 25.175MHz -HSync -VSync h: width 640 start 656 end 752 total 800 skew 0 clock 31.47KHz v: height 480 start 490 end 492 total 525 clock 59.94Hz
显卡与硬件信息
$ lspci -k | grep -EA3 'VGA|3D|Display' 00:02.0 VGA compatible controller: Intel Corporation 4th Generation Core Processor Family Integrated Graphics Controller (rev 06) Subsystem: Gigabyte Technology Co., Ltd 4th Generation Core Processor Family Integrated Graphics Controller Kernel driver in use: i915 Kernel modules: i915
- CPU:Intel® Core™ i3-4130 CPU @ 3.40GHz × 4
- 显卡:Mesa Intel® HD Graphics 4400 (HSW GT2)
- 内存:4 GB
解决方案
嗨,我来帮你搞定这个问题!从你的xrandr输出能看到,显示器被识别成了0mm×0mm,说明系统没正确读取显示器的EDID信息,这大概率是高分辨率被拒绝的核心原因。结合你的Intel核显配置,给你几个逐步排查的方法:
1. 重新加载显卡驱动,尝试恢复EDID识别
先试试重新加载i915驱动,让系统重新读取显示器信息:
sudo modprobe -r i915 && sudo modprobe i915
执行完后再运行xrandr,看看显示器的物理尺寸是否正常显示。如果还是不行,就继续往下走。
2. 用cvt生成标准1920x1080时序并添加到xrandr
有时候自动生成的模式时序不对,导致显示器不兼容,我们用cvt生成标准的60Hz模式:
第一步,生成标准时序:
cvt 1920 1080 60
你会得到类似这样的输出(数值可能略有差异,以实际输出为准):
# 1920x1080 59.96 Hz (CVT 2.07M9) hsync: 67.16 kHz; pclk: 173.00 MHz Modeline "1920x1080_60.00" 173.00 1920 2048 2248 2576 1080 1083 1088 1120 -hsync +vsync
第二步,把这个Modeline添加到xrandr:
xrandr --newmode "1920x1080_60.00" 173.00 1920 2048 2248 2576 1080 1083 1088 1120 -hsync +vsync xrandr --addmode VGA-1 "1920x1080_60.00"
现在回到系统设置的分辨率选项里,选择这个新添加的模式试试。如果还是被退回,可能需要强制应用,或者检查线材。
3. 强制应用分辨率(谨慎操作,准备好恢复方案)
如果上面的方法无效,可以尝试强制让系统应用这个模式:
xrandr --output VGA-1 --mode 1920x1080_60.00 --force
⚠️ 注意:如果执行后出现黑屏,不要慌,按Ctrl+Alt+F1切换到终端,输入xrandr --output VGA-1 --mode 1024x768恢复,再按Ctrl+Alt+F7切回图形界面。
4. 永久设置分辨率(避免每次重启都要重新添加)
如果临时设置成功了,想要永久生效,可以创建Xorg配置文件:
新建/etc/X11/xorg.conf.d/10-monitor.conf文件(没有这个目录的话先创建),内容如下(替换成你自己的Modeline):
Section "Monitor" Identifier "VGA-1" Modeline "1920x1080_60.00" 173.00 1920 2048 2248 2576 1080 1083 1088 1120 -hsync +vsync Option "PreferredMode" "1920x1080_60.00" EndSection Section "Screen" Identifier "Screen0" Device "Card0" Monitor "VGA-1" SubSection "Display" Modes "1920x1080_60.00" "1024x768" EndSubSection EndSection Section "Device" Identifier "Card0" Driver "i915" EndSection
保存后重启电脑,系统应该会默认加载1920x1080分辨率。
额外排查点
别忘了检查你的VGA连接线!劣质、老化或者损坏的VGA线可能无法稳定传输1080p信号,导致显示器拒绝高分辨率模式,换一根质量好的线试试,说不定能解决问题。
备注:内容来源于stack exchange,提问作者Arafat Rahman




