Xorg "vergisst" nach Suspend höchste Auflösung von externem Monitor
Unter Ubuntu 22.04 mit Xorg 1.21.1.4 trat nach dem Rückkehr aus dem Stromsparmodus bei externen Monitoren immer mal wieder das Problem auf, dass die höchste Auflösung von 1920×1080 auf einmal „vergessen“ wurde. Stattdessen war das Display auf 1680×1050 eingestellt und lediglich ein Neustart oder manchmal auch ein ab- und wieder abstöpseln des Monitors brachte die Auflösung zurück.
Wirkliche Fehlermeldungen dafür oder Erklärungen fanden sich nicht. Der eine Monitor startete als modeset(0): Output HDMI-1 using initial mode 1920x1080 +1920+0
direkt am HDMI-Port und der andere als modeset(0): Output DP-1 using initial mode 1920x1080 +3840+0
an einem externen Hub.
In den Weiten des Internets fanden sich jedoch immer wieder Hinweise darauf, dass dem Xorg-Server einfach Monitordaten in die Konfiguration geschrieben werden sollten, da die automatisch ausgelesenen EDID (Extended display identification data) fehlerhaft seien. Wirklich belegen ließ sich die These nicht, da auch nach dem Aufwachen des Monitors und einem testweisen Auslesen der EDID diese offenbar in Ordnung waren.
Zum Auslesen der EDID muss read-edid
am besten gleich noch mit edid-decode
und den i2c-tools
mittels apt install read-edid edid-decode i2c-tools
installiert werden. Danach lässt sich mit sudo get-edid | parse-edid
der erste findbare Monitor auslesen.
This is read-edid version 3.0.2. Prepare for some fun.
Attempting to use i2c interface
No EDID on bus 1
No EDID on bus 2
No EDID on bus 3
No EDID on bus 5
No EDID on bus 6
No EDID on bus 7
No EDID on bus 8
No EDID on bus 9
No EDID on bus 10
No EDID on bus 11
No EDID on bus 14
No EDID on bus 15
No EDID on bus 16
4 potential busses found: 0 4 12 13
Will scan through until the first EDID is found.
Pass a bus number as an option to this program to go only for that one.
Bus 0 doesn't really have an EDID...
Checksum Correct
Section "Monitor"
Identifier "PHL 221V8"
ModelName "PHL 221V8"
VendorName "PHL"
# Monitor Manufactured week 48 of 2022
# EDID version 1.3
# Digital Display
DisplaySize 480 270
Gamma 2.20
Option "DPMS" "true"
Horizsync 30-85
VertRefresh 48-75
# Maximum pixel clock is 180MHz
#Not giving standard mode: 1920x1080, 60Hz
#Not giving standard mode: 1680x1050, 60Hz
#Not giving standard mode: 1440x900, 60Hz
#Not giving standard mode: 1280x1024, 60Hz
#Not giving standard mode: 1280x960, 60Hz
#Not giving standard mode: 1280x720, 60Hz
#Extension block found. Parsing...
Modeline "Mode 13" 27.00 720 736 798 858 480 489 495 525 -hsync -vsync
Modeline "Mode 0" 148.50 1920 2008 2052 2200 1080 1084 1089 1125 +hsync +vsync
Modeline "Mode 1" 174.50 1920 1968 2000 2080 1080 1083 1088 1119 +hsync -vsync
Modeline "Mode 2" 148.500 1920 2008 2052 2200 1080 1084 1089 1125 +hsync +vsync
Modeline "Mode 3" 148.500 1920 2448 2492 2640 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 1920 2448 2492 2640 1080 1082 1089 1125 +hsync +vsync interlace
Modeline "Mode 6" 74.250 1280 1390 1420 1650 720 725 730 750 +hsync +vsync
Modeline "Mode 7" 74.250 1280 1720 1760 1980 720 725 730 750 +hsync +vsync
Modeline "Mode 8" 27.027 720 736 798 858 480 489 495 525 -hsync -vsync
Modeline "Mode 9" 27.000 720 732 796 864 576 581 586 625 -hsync -vsync
Modeline "Mode 10" 27.027 720 736 798 858 480 489 495 525 -hsync -vsync
Modeline "Mode 11" 27.000 720 732 796 864 576 581 586 625 -hsync -vsync
Modeline "Mode 12" 25.200 640 656 752 800 480 490 492 525 -hsync -vsync
Modeline "Mode 14" 74.25 1280 1390 1430 1650 720 725 730 750 +hsync +vsync
Modeline "Mode 15" 27.00 720 736 798 858 480 489 495 525 -hsync -vsync
Modeline "Mode 16" 27.00 720 732 796 864 576 581 586 625 -hsync -vsync
Option "PreferredMode" "Mode 13"
EndSection
256-byte EDID successfully retrieved from i2c bus 4
Looks like i2c was successful. Have a good day.
In diesem Falle wäre es der Monitor, der direkt am HDMI-Anschluss ist. Im vorliegenden Fall gibt es jedoch noch einen Monitor an einem externen USB-C-Hub, der zwar auch per HDMI angeschlossen ist, aber eben nicht der erste EDID-Monitor ist.
In obigem Ausdruck findet sich der Hinweis auf potenziell andere Anschlüsse 4 potential busses found: 0 4 12 13
, die man einzeln durchgehen kann, bis der richtige Monitor gefunden ist. sudo i2cdetect -l
listet insgesamt folgende Anschlüsse auf.
i2c-0 smbus SMBus I801 adapter at efa0 SMBus adapter
i2c-1 i2c Synopsys DesignWare I2C adapter I2C adapter
i2c-2 i2c Synopsys DesignWare I2C adapter I2C adapter
i2c-3 i2c i915 gmbus dpa I2C adapter
i2c-4 i2c i915 gmbus dpb I2C adapter
i2c-5 i2c i915 gmbus dpc I2C adapter
i2c-6 i2c i915 gmbus tc1 I2C adapter
i2c-7 i2c i915 gmbus tc2 I2C adapter
i2c-8 i2c i915 gmbus tc3 I2C adapter
i2c-9 i2c i915 gmbus tc4 I2C adapter
i2c-10 i2c i915 gmbus tc5 I2C adapter
i2c-11 i2c i915 gmbus tc6 I2C adapter
i2c-12 i2c AUX A/DDI A/PHY A I2C adapter
i2c-13 i2c AUX USBC1/DDI TC1/PHY TC1 I2C adapter
i2c-14 i2c AUX USBC2/DDI TC2/PHY TC2 I2C adapter
i2c-15 i2c AUX USBC3/DDI TC3/PHY TC3 I2C adapter
i2c-16 i2c AUX USBC4/DDI TC4/PHY TC4 I2C adapter
sudo get-edid -b 0 | parse-edid
führt nicht zum Ziel.
Bus 0 doesn't really have an EDID...
Couldn't find an accessible EDID on this bus.
...
Aber unter der „4“ findet sich nach dem Aufruf von sudo get-edid -b 4 | parse-edid
dann der gesuchte Monitor.
This is read-edid version 3.0.2. Prepare for some fun.
Attempting to use i2c interface
Only trying 4 as per your request.
Checksum Correct
Section "Monitor"
Identifier "PHL 221V8"
ModelName "PHL 221V8"
VendorName "PHL"
# Monitor Manufactured week 48 of 2022
# EDID version 1.3
# Digital Display
DisplaySize 480 270
Gamma 2.20
Option "DPMS" "true"
Horizsync 30-85
VertRefresh 48-75
# Maximum pixel clock is 180MHz
#Not giving standard mode: 1920x1080, 60Hz
#Not giving standard mode: 1680x1050, 60Hz
#Not giving standard mode: 1440x900, 60Hz
#Not giving standard mode: 1280x1024, 60Hz
#Not giving standard mode: 1280x960, 60Hz
#Not giving standard mode: 1280x720, 60Hz
#Extension block found. Parsing...
Modeline "Mode 13" 27.00 720 736 798 858 480 489 495 525 -hsync -vsync
Modeline "Mode 0" 148.50 1920 2008 2052 2200 1080 1084 1089 1125 +hsync +vsync
Modeline "Mode 1" 174.50 1920 1968 2000 2080 1080 1083 1088 1119 +hsync -vsync
Modeline "Mode 2" 148.500 1920 2008 2052 2200 1080 1084 1089 1125 +hsync +vsync
Modeline "Mode 3" 148.500 1920 2448 2492 2640 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 1920 2448 2492 2640 1080 1082 1089 1125 +hsync +vsync interlace
Modeline "Mode 6" 74.250 1280 1390 1420 1650 720 725 730 750 +hsync +vsync
Modeline "Mode 7" 74.250 1280 1720 1760 1980 720 725 730 750 +hsync +vsync
Modeline "Mode 8" 27.027 720 736 798 858 480 489 495 525 -hsync -vsync
Modeline "Mode 9" 27.000 720 732 796 864 576 581 586 625 -hsync -vsync
Modeline "Mode 10" 27.027 720 736 798 858 480 489 495 525 -hsync -vsync
Modeline "Mode 11" 27.000 720 732 796 864 576 581 586 625 -hsync -vsync
Modeline "Mode 12" 25.200 640 656 752 800 480 490 492 525 -hsync -vsync
Modeline "Mode 14" 74.25 1280 1390 1430 1650 720 725 730 750 +hsync +vsync
Modeline "Mode 15" 27.00 720 736 798 858 480 489 495 525 -hsync -vsync
Modeline "Mode 16" 27.00 720 732 796 864 576 581 586 625 -hsync -vsync
Option "PreferredMode" "Mode 13"
EndSection
256-byte EDID successfully retrieved from i2c bus 4
Looks like i2c was successful. Have a good day.
Dann mit den obigen Daten unter /etc/X11/xorg.conf.d
eine Datei mit beispielsweise dem Namen 20-monitore.conf
angelegt, die dann so aussieht.
Section "Monitor"
Identifier "PHL 227E6"
ModelName "PHL 227E6"
VendorName "PHL"
# Monitor Manufactured week 52 of 2015
# EDID version 1.3
# Digital Display
DisplaySize 480 270
Gamma 2.20
Option "DPMS" "true"
Horizsync 30-83
VertRefresh 56-76
# Maximum pixel clock is 170MHz
#Not giving standard mode: 1920x1080, 60Hz
#Not giving standard mode: 1440x900, 60Hz
#Not giving standard mode: 1440x900, 75Hz
#Not giving standard mode: 1680x1050, 60Hz
#Not giving standard mode: 1280x720, 60Hz
#Not giving standard mode: 1280x1024, 60Hz
#Extension block found. Parsing...
Modeline "Mode 16" 148.50 1920 2008 2052 2200 1080 1084 1089 1125 +hsync +vsync
Modeline "Mode 0" 148.50 1920 2008 2052 2200 1080 1084 1089 1125 +hsync +vsync
Modeline "Mode 1" 25.200 640 656 752 800 480 490 492 525 -hsync -vsync
Modeline "Mode 2" 27.027 720 736 798 858 480 489 495 525 -hsync -vsync
Modeline "Mode 3" 27.027 720 736 798 858 480 489 495 525 -hsync -vsync
Modeline "Mode 4" 74.250 1920 2008 2052 2200 1080 1082 1087 1125 +hsync +vsync interlace
Modeline "Mode 5" 27.027 1440 1478 1602 1716 480 484 487 525 -hsync -vsync interlace
Modeline "Mode 6" 27.027 1440 1478 1602 1716 480 484 487 525 -hsync -vsync interlace
Modeline "Mode 7" 148.500 1920 2008 2052 2200 1080 1084 1089 1125 +hsync +vsync
Modeline "Mode 8" 27.000 720 732 796 864 576 581 586 625 -hsync -vsync
Modeline "Mode 9" 27.000 720 732 796 864 576 581 586 625 -hsync -vsync
Modeline "Mode 10" 74.250 1280 1720 1760 1980 720 725 730 750 +hsync +vsync
Modeline "Mode 11" 74.250 1920 2448 2492 2640 1080 1082 1089 1125 +hsync +vsync interlace
Modeline "Mode 12" 27.000 1440 1464 1590 1728 576 578 581 625 -hsync -vsync interlace
Modeline "Mode 13" 27.000 1440 1464 1590 1728 576 578 581 625 -hsync -vsync interlace
Modeline "Mode 14" 148.500 1920 2448 2492 2640 1080 1084 1089 1125 +hsync +vsync
Modeline "Mode 15" 74.250 1280 1390 1420 1650 720 725 730 750 +hsync +vsync
Modeline "Mode 17" 27.00 720 736 798 858 480 489 495 525 -hsync -vsync
Modeline "Mode 18" 74.25 1280 1390 1430 1650 720 725 730 750 +hsync +vsync
Modeline "Mode 19" 27.00 720 732 796 864 576 581 586 625 -hsync -vsync
Option "PreferredMode" "Mode 16"
EndSection
Section "Monitor"
Identifier "PHL 221V8"
ModelName "PHL 221V8"
VendorName "PHL"
# Monitor Manufactured week 48 of 2022
# EDID version 1.3
# Digital Display
DisplaySize 480 270
Gamma 2.20
Option "DPMS" "true"
Horizsync 30-85
VertRefresh 48-75
# Maximum pixel clock is 180MHz
#Not giving standard mode: 1920x1080, 60Hz
#Not giving standard mode: 1680x1050, 60Hz
#Not giving standard mode: 1440x900, 60Hz
#Not giving standard mode: 1280x1024, 60Hz
#Not giving standard mode: 1280x960, 60Hz
#Not giving standard mode: 1280x720, 60Hz
#Extension block found. Parsing...
Modeline "Mode 13" 27.00 720 736 798 858 480 489 495 525 -hsync -vsync
Modeline "Mode 0" 148.50 1920 2008 2052 2200 1080 1084 1089 1125 +hsync +vsync
Modeline "Mode 1" 174.50 1920 1968 2000 2080 1080 1083 1088 1119 +hsync -vsync
Modeline "Mode 2" 148.500 1920 2008 2052 2200 1080 1084 1089 1125 +hsync +vsync
Modeline "Mode 3" 148.500 1920 2448 2492 2640 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 1920 2448 2492 2640 1080 1082 1089 1125 +hsync +vsync interlace
Modeline "Mode 6" 74.250 1280 1390 1420 1650 720 725 730 750 +hsync +vsync
Modeline "Mode 7" 74.250 1280 1720 1760 1980 720 725 730 750 +hsync +vsync
Modeline "Mode 8" 27.027 720 736 798 858 480 489 495 525 -hsync -vsync
Modeline "Mode 9" 27.000 720 732 796 864 576 581 586 625 -hsync -vsync
Modeline "Mode 10" 27.027 720 736 798 858 480 489 495 525 -hsync -vsync
Modeline "Mode 11" 27.000 720 732 796 864 576 581 586 625 -hsync -vsync
Modeline "Mode 12" 25.200 640 656 752 800 480 490 492 525 -hsync -vsync
Modeline "Mode 14" 74.25 1280 1390 1430 1650 720 725 730 750 +hsync +vsync
Modeline "Mode 15" 27.00 720 736 798 858 480 489 495 525 -hsync -vsync
Modeline "Mode 16" 27.00 720 732 796 864 576 581 586 625 -hsync -vsync
Option "PreferredMode" "Mode 13"
EndSection
X.org dann neu gestartet und seitdem tritt das Problem nicht mehr auf. Zumindest vorerst ….
Stichworte: Edid, Get-edid, I2ctools, Modelines, Monitor, Xfce, Xorg
Kategorien: Linux , Ubuntu