You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

求助:如何设置可正常应用的1920级分辨率(添加1920x1080后被强制退回低分辨率)

求助:如何设置可正常应用的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

火山引擎 最新活动