
У меня Nvidia RTX 3070 и монитор Samsung C49RG90. Монитор подключен к видеокарте через HDMI. Все работает отлично, если только я не приостанавливаю систему, а затем снова ее пробуждаю. Когда это происходит, разрешение меняется на 1024x768. Я могу войти в систему, открыть панель управления Nvidia и вернуть правильное разрешение, но если я снова уберу ее в спящий режим, разрешение всегда возвращается к 1024x768.
Я использую версию 470.86 драйвера Nvidia, но более старые версии ведут себя так же.
Когда я вручную устанавливаю разрешение после пробуждения и затем запускаю xrandr
, я получаю это:
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)
Когда я перевожу машину в спящий режим, а затем снова пробуждаю ее и запускаю xrandr
, я получаю следующее:
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
Вот мой xorg.conf
файл:
# 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
Я понимаю, что, скорее всего, потребуется дополнительная информация, но не знаю, где ее искать.
решение1
После пары лет периодических попыток разобраться в этом вопросе, я, кажется, решил его.
Первый,этот вопросна форумах разработчиков Nvidia практически идентична моей проблеме. Как и автор этого вопроса, я считаю, что корень проблемы в том, что мой монитор не предоставляет информацию EDID при выходе из спящего режима, из-за чего Ubuntu выбирает разрешение по умолчанию 1024x768.
Чтобы обойти это, я экспортировал свой EDID, как описаноздесь. Я сохранил файл как ASCII и назвал его crg-edit.txt
, затем переместил его в /etc/X11
. Однако я сделалнетвыполните команды в разделах "Загрузка EDID дисплея из файла". Вместо этого я вручную открыл свой /etc/X11/xorg.conf
файл и отредактировал его следующим образом (см. комментарии в конфигурации):
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
После этих шагов монитор выходил из спящего режима с более высоким разрешением 3840x1080, но все еще не с моим целевым разрешением 5120x1440. Поэтому я запустил xrandr --verbose
и отметил, что это разрешение по какой-то причине было предпочтительным:
...
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
...
Осмотревшись еще немного, я обнаружил,этотвопрос. Затем я xorg.conf
снова отредактировал свой следующим образом:
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
и
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
Я не уверен, были ли нужны как пользовательский EDID, так и другие настройки, и мне все равно, потому что это работает, и я хочу оставить это в покое. Но я хотел поделиться своими выводами на случай, если это поможет кому-то еще.
EDIT: Я проделал этот процесс, когда устанавливал Ubuntu 22.04, и все работало нормально. Просто заметьте, что после первого входа в систему после выполнения этих шагов экран по умолчанию стал 3840x1080. Я использовал панель управления Ubuntu, чтобы изменить разрешение обратно на 5120x1440, и он остается с этой настройкой после перезагрузки и приостановки.
решение2
У меня та же проблема, и у меня Pop!_OS 22.04, и это началось некоторое время назад после некоторых обновлений. Это, должно быть, проблема с драйверами. Я заметил, что когда мониторы переходили в спящий режим, а затем снова включались, и это мог быть любой монитор, разрешение снижалось до 800x400. В основном, моим побочным действием было выключение монитора, а затем его повторное включение. Мои мониторы — 27-дюймовые Asus VQR, которые я только что получил с Рождества. Я знаю, что это не мониторы, потому что это зависит от того, какой из них я установил в качестве первого монитора.
Я экспериментировал с частотой обновления и разрешением дисплея и считаю, что проблема не в мониторах (подключенных через DP). Это произошло, когда я установил 20.04 и обновился до 21.10, а затем снова до 22.04. Так что, хотя я на самом деле не знаю, что вызвало вашу проблему, я считаю, что у меня проблема с драйверами, и поскольку я не гуру в драйверах, мне придется подождать исправлений.
Я знаю, что можно настроить файл с помощью xrandr, чтобы задать определенное разрешение и мощность мониторов при каждом запуске компьютера, и я собираюсь поискать и попробовать это в следующий раз. Это действительно вышло из строя, когда я использовал 3 монитора.