Ubuntu 20.04 verliert nach dem Aufwachen aus dem Ruhezustand die Monitorauflösung

Ubuntu 20.04 verliert nach dem Aufwachen aus dem Ruhezustand die Monitorauflösung

Ich habe eine Nvidia RTX 3070 und einen Samsung C49RG90-Monitor. Der Monitor ist über HDMI mit der Grafikkarte verbunden. Alles funktioniert einwandfrei, es sei denn, ich versetze das System in den Ruhezustand und reaktiviere es dann wieder. In diesem Fall ändert sich die Auflösung auf 1024 x 768. Ich kann mich anmelden, die Nvidia-Systemsteuerung öffnen und die Auflösung problemlos wiederherstellen, aber wenn ich es wieder in den Ruhezustand versetze, wird die Auflösung immer wieder auf 1024 x 768 zurückgesetzt.

Ich verwende Version 470.86 des Nvidia-Treibers, aber ältere Versionen verhalten sich genauso.

Wenn ich die Auflösung nach dem Aufwachen und anschließendem Ausführen manuell einstelle xrandr, erhalte ich Folgendes:

Screen 0: minimum 8 x 8, current 5120 x 1440, maximum 32767 x 32767
HDMI-0 connected primary 5120x1440+0+0 (normal left inverted right x axis y axis) 1mm x 1mm
   3840x1080     59.97 +
   5120x1440     59.98*   29.98  
   3840x2160     59.94    50.00    29.97    25.00    23.98  
   2560x1440     59.95  
   2560x1080     60.00    59.94  
   1920x1080     60.00    59.94    50.00  
   1680x1050     59.95  
   1600x900      60.00  
   1440x900      59.89  
   1280x1024     75.02    60.02  
   1280x800      59.81  
   1280x720      60.00    59.94    50.00  
   1152x864      75.00  
   1024x768      75.03    70.07    60.00  
   800x600       75.00    72.19    60.32    56.25  
   720x576       50.00  
   720x480       59.94  
   640x480       75.00    72.81    59.94  
DP-0 disconnected (normal left inverted right x axis y axis)
DP-1 disconnected (normal left inverted right x axis y axis)
DP-2 disconnected (normal left inverted right x axis y axis)
DP-3 disconnected (normal left inverted right x axis y axis)
DP-4 disconnected (normal left inverted right x axis y axis)
DP-5 disconnected (normal left inverted right x axis y axis)

Wenn ich den Rechner in den Ruhezustand versetze, ihn dann wieder aufwecke und dann ausführe xrandr, erhalte ich Folgendes:

Screen 0: minimum 8 x 8, current 5120 x 1440, maximum 32767 x 32767
HDMI-0 connected primary 1024x768+3327+362 (normal left inverted right x axis y axis) 0mm x 0mm panning 5120x1440+0+0
   3840x1080     59.97 +
   5120x1440     59.98    29.98  
   3840x2160     59.94    50.00    29.97    25.00    23.98  
   2560x1440     59.95  
   2560x1080     60.00    59.94  
   1920x1080     60.00    59.94    50.00  
   1680x1050     59.95  
   1600x900      60.00  
   1440x900      59.89  
   1280x1024     75.02    60.02  
   1280x800      59.81  
   1280x720      60.00    59.94    50.00  
   1152x864      75.00  
   1024x768      75.03    70.07    60.00  
   800x600       75.00    72.19    60.32    56.25  
   720x576       50.00  
   720x480       59.94  
   640x480       75.00    72.81    59.94  
DP-0 disconnected (normal left inverted right x axis y axis)
DP-1 disconnected (normal left inverted right x axis y axis)
DP-2 disconnected (normal left inverted right x axis y axis)
DP-3 disconnected (normal left inverted right x axis y axis)
DP-4 disconnected (normal left inverted right x axis y axis)
DP-5 disconnected (normal left inverted right x axis y axis)
  1024x768 (0x208) 94.500MHz +HSync +VSync
        h: width  1024 start 1072 end 1168 total 1376 skew    0 clock  68.68KHz
        v: height  768 start  769 end  772 total  808           clock  85.00Hz

Hier ist meine xorg.confDatei:

# nvidia-settings: X configuration file generated by nvidia-settings
# nvidia-settings:  version 470.57.01

Section "ServerLayout"
    Identifier     "Layout0"
    Screen      0  "Screen0" 0 0
    InputDevice    "Keyboard0" "CoreKeyboard"
    InputDevice    "Mouse0" "CorePointer"
    Option         "Xinerama" "0"
EndSection

Section "Files"
EndSection

Section "Module"
    Load           "dbe"
    Load           "extmod"
    Load           "type1"
    Load           "freetype"
    Load           "glx"
EndSection

Section "InputDevice"
    # generated from default
    Identifier     "Mouse0"
    Driver         "mouse"
    Option         "Protocol" "auto"
    Option         "Device" "/dev/psaux"
    Option         "Emulate3Buttons" "no"
    Option         "ZAxisMapping" "4 5"
EndSection

Section "InputDevice"
    # generated from default
    Identifier     "Keyboard0"
    Driver         "kbd"
EndSection

Section "Monitor"
    # HorizSync source: edid, VertRefresh source: edid
    Identifier     "Monitor0"
    VendorName     "Unknown"
    ModelName      "Samsung C49RG9x"
    HorizSync       30.0 - 160.0
    VertRefresh     24.0 - 120.0
    Option         "DPMS"
EndSection

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "NVIDIA GeForce RTX 3070"
EndSection

Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    Option         "Stereo" "0"
    Option         "nvidiaXineramaInfoOrder" "DFP-0"
    Option         "metamodes" "5120x1440 +0+0; 800x600 +0+0; 640x480 +0+0"
    Option         "SLI" "Off"
    Option         "MultiGPU" "Off"
    Option         "BaseMosaic" "off"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

Mir ist bewusst, dass wahrscheinlich weitere Informationen erforderlich sind, aber ich weiß nicht, wo ich suchen soll.

Antwort1

Nachdem ich ein paar Jahre lang gelegentlich daran herumgebastelt habe, glaube ich, dass ich das Problem gelöst habe.

Erste,diese Fragein den Nvidia-Entwicklerforen ist so ziemlich identisch mit meinem Problem. Wie der Autor dieser Frage glaube ich, dass die Ursache des Problems darin liegt, dass mein Monitor beim Erwachen aus dem Ruhezustand keine EDID-Informationen bereitstellt, was dazu führt, dass Ubuntu eine Standardauflösung von 1024 x 768 auswählt.

Um dies zu umgehen, habe ich meine EDID wie beschrieben exportiertHier. Ich habe die Datei als ASCII gespeichert und benannt und crg-edit.txtsie dann nach verschoben /etc/X11. Allerdings habe ichnichtFühren Sie die Befehle im Abschnitt „Display-EDID aus Datei laden“ aus. Stattdessen habe ich meine Datei manuell geöffnet /etc/X11/xorg.confund wie folgt bearbeitet (siehe Kommentare in der Konfiguration):

Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    Option         "Stereo" "0"
    Option         "nvidiaXineramaInfoOrder" "DFP-0"
    Option         "CustomEDID" "GPU-0.HDMI-0:/etc/X11/crg-edid.txt" # I added this line
    Option         "metamodes" "5120x1440 +0+0" # I removed the 1024x768 option from here
    Option         "SLI" "Off"
    Option         "MultiGPU" "Off"
    Option         "BaseMosaic" "off"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

Nach diesen Schritten würde der Monitor aus dem Ruhezustand mit einer höheren Auflösung von 3840 x 1080 zurückkehren, aber immer noch nicht mit meiner Zielauflösung von 5120 x 1440. Also habe ich es ausprobiert xrandr --verboseund festgestellt, dass diese Auflösung aus irgendeinem Grund vorzuziehen war:

...
  3840x1080 (0x1be) 266.500MHz +HSync -VSync +preferred
        h: width  3840 start 3888 end 3920 total 4000 skew    0 clock  66.62KHz
        v: height 1080 start 1083 end 1093 total 1111           clock  59.97Hz
  5120x1440 (0x1bf) 469.000MHz +HSync -VSync *current
        h: width  5120 start 5168 end 5200 total 5280 skew    0 clock  88.83KHz
        v: height 1440 start 1443 end 1453 total 1481           clock  59.98Hz
...

Nachdem ich mich noch ein wenig umgesehen hatte, fand ichDasFrage. Ich habe meine dann xorg.confnoch einmal wie folgt bearbeitet:

Section "Monitor"
    # HorizSync source: edid, VertRefresh source: edid
    Identifier     "Monitor0"
    VendorName     "Unknown"
    ModelName      "Samsung C49RG9x"
    HorizSync       30.0 - 160.0
    VertRefresh     24.0 - 120.0
    Option         "DPMS"
    Option         "PreferredMode" "5120x1440" # I added this line
EndSection

Und

Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    Option         "Stereo" "0"
    Option         "nvidiaXineramaInfoOrder" "DFP-0"
    Option         "CustomEDID" "GPU-0.HDMI-0:/etc/X11/crg-edid.txt"
    Option         "metamodes" "5120x1440 +0+0"
    Option         "SLI" "Off"
    Option         "MultiGPU" "Off"
    Option         "BaseMosaic" "off"
    SubSection     "Display"
        Virtual     5120 1440 # I added this line
        Depth       24
    EndSubSection
EndSection

Ich bin mir nicht sicher, ob sowohl die benutzerdefinierte EDID als auch die anderen Einstellungen erforderlich waren, und es ist mir auch egal, da es funktioniert und ich es so lassen möchte. Aber ich wollte meine Erkenntnisse teilen, falls es jemandem anderen hilft.

BEARBEITEN: Ich habe diesen Vorgang bei der Installation von Ubuntu 22.04 durchlaufen und er hat einwandfrei funktioniert. Nur ein Hinweis: Nach der ersten Anmeldung nach Abschluss dieser Schritte wurde der Bildschirm standardmäßig auf 3840 x 1080 eingestellt. Ich habe die Auflösung über die Ubuntu-Systemsteuerung wieder auf 5120 x 1440 geändert und diese Einstellung bleibt auch nach Neustarts und Ruhezustand erhalten.

Antwort2

Ich habe das gleiche Problem und ich habe Pop!_OS 22.04 und das hat vor einiger Zeit nach einigen Updates angefangen. Das muss ein Treiberproblem sein. Ich habe festgestellt, dass die Monitore in den Ruhemodus gingen und beim Wiedereinschalten auf 800 x 400 heruntergingen, und das kann an beiden Monitoren liegen. Im Grunde habe ich den Monitor aus- und wieder eingeschaltet. Meine Monitore sind 27" Asus VQR, die ich gerade zu Weihnachten bekommen habe. Ich weiß, dass es nicht an den Monitoren liegt, denn es hängt davon ab, welchen ich als ersten Monitor einstelle.

Ich habe mit Bildwiederholraten und Bildschirmauflösungen herumgespielt und glaube, dass die Monitore (die mit DP angeschlossen sind) nicht das Problem sind. Es passierte, als ich 20.04 installierte und auf 21.10 aktualisierte, dann noch einmal auf 22.04. Obwohl ich also nicht wirklich weiß, was Ihr Problem verursacht hat, glaube ich, dass es an den Treibern liegt, und da ich kein Treiber-Guru bin, muss ich in der Zwischenzeit auf Fixes warten.

Ich weiß, dass man mit xrandr eine Datei konfigurieren kann, um bei jedem Start des Computers eine bestimmte Auflösung und Kardinalität der Monitore einzustellen. Das werde ich als Nächstes suchen und ausprobieren. Als ich 3 Monitore verwendet habe, ist es wirklich schiefgegangen.

verwandte Informationen