我注意到我的系统在 3D 游戏中的表现与我在 Windows 上体验到的相比显得平淡无奇,所以我在 Arch Linux wiki 上搜索了更好的图形驱动程序,发现建议使用模式设置驱动程序而不是驱动程序xf86-video-intel
(不能发布超过 2 个链接。相信我的话,或者搜索页面Intel Graphics
。)。因此,我卸载了xf86-video-intel
驱动程序,并设置了一个 Xorg.conf 文件/etc/X11/xorg.conf.d/10-monitor.conf
。尽管我到处搜索配置中可能存在的错误,但我还是搞不清楚为什么我只能让其中一台显示器默认打开。
我的设置包括以下内容:
- 笔记本电脑屏幕,
LVDS-1
。 - 戴尔显示器,
HDMI-1
。 - 夏普电视
VGA-1
。这会发送不正确的 EDID 数据,因此我使用自定义模式来获取分辨率1368x768
。
我想要的效果是禁用笔记本电脑屏幕,将戴尔显示器作为主显示器,将夏普电视作为戴尔显示器右侧的扩展显示器。
这是我当前的配置:
# DEVICES
Section "Device"
Identifier "Intel HD Graphics 4000"
Driver "modesetting"
Option "ModeDebug" "true"
EndSection
# MONITORS
# Primary Dell Monitor
Section "Monitor"
Identifier "HDMI-1" # HDMI Port 1 - HDMI-1
Option "Primary" "true" # Primary
Option "PreferredMode" "1920x1080" # 1920x1080
Option "Enable" "true" # Enable
EndSection
# Extended Sharp TV
Section "Monitor"
Identifier "VGA-1" # VGA Port 1 - VGA-1
Option "Primary" "false" # Extended
# Add custom mode, because TVs send inaccurate EDID data.
Mode "1368x768"
DotClock 85.25
HTimings 1368 1440 1576 1784
VTimings 768 771 781 798
Flags "-HSync" "+VSync"
EndMode
Option "PreferredMode" "1368x768" # 1368x768
Option "Enable" "true" # Enable
EndSection
# Disabled Laptop Screen
Section "Monitor"
Identifier "LVDS-1" # Built In Screen
Option "Enable" "false" # Disable
EndSection
# SCREENS
Section "Screen"
Identifier "Screen 0"
Device "Intel HD Graphics 4000"
Monitor "HDMI-1"
EndSection
Section "Screen"
Identifier "Screen 1"
Device "Intel HD Graphics 4000"
Monitor "VGA-1"
EndSection
# SERVER LAYOUTS
Section "ServerLayout"
Identifier "Layout"
Screen "Screen 0"
Screen "Screen 1" RightOf "Screen 0"
EndSection
使用此配置启动时,这是 处的日志/var/log/Xorg.0.log
,请注意,我打开了模式设置调试消息。这里最重要的部分是(EE) modeset(0): failed to set mode: Invalid argument
。
出于好奇,我尝试启动没有此配置移至/etc/X11/xorg.conf.d/10-monitor.conf
我的桌面。这结果是。奇怪的是,(EE) modeset(0): failed to set mode: Invalid argument
仍然存在。
那么,为什么会发生这个错误?
系统信息:
- 操作系统:Linux 4.9.11-1-ARCH x86_64
- 显卡:英特尔高清显卡 4000
- 德国:XFCE
- XRandR 版本:1.5