Не могу изменить разрешение с помощью xrandr

Я пытаюсь переключить разрешение экрана с помощью xrandr. Я вывел доступные режимы с xrandr -q какой вывод:

Экран 0: минимум 8 x 8, ток 1920 x 1080, максимум 32767 x 32767
eDP-1-1, подключенный к первичному 1920x1080+0+0 (нормальный левый, инвертированный справа x ось y) 346 мм x 194 мм 3840x2160 60,00 +
   2048x1536     60,00 1920x1440 60,00 1856x1392 60,01 1792x1344 60,01 1920x1200 59,95 1920x1080 59,93* 
   1600х1200 60,00 1680x1050 59,95 59,88 1600x1024 60,17 1400x1050 59,98 1280x1024 60,02 1440x900 59,89 1280x960 60,00 1360x768 59,80 59,96 1152x864 60,00 1024x768 60,04 60,00 960x720 60,00 928x696 60,05 896x672 60,01 960x600 60,00 960x540 59,99 800х600 60,00 60,32 56,25 840x525 60,01 59,88 800x512 60,17 700x525 59,98 640x512 60,02 720x450 59,89 640x480 60,00 59,94 680x384 59,80 59,96 576x432 60,06 512x384 60,00 400x300 60,32 56,34 320x240 60,05  
DP-1-1 отключен (нормальный левый инвертированный, правая ось y ось y отключен)
HDMI-1-1 отключен (отключен)
HDMI-1-1 отключен (HDMI-1-1 отключен ось y) DP-1-2 отключен (нормальное левое инвертировано, правая ось x ось y) HDMI-1-2 отключено (нормальное левое инвертировано правая ось x, ось y) 

Как вы видите, я сейчас нахожусь на 1920x1080, я пытаюсь переключиться на предпочтительное разрешение 3840x2160. Поэтому я пытаюсь переключиться:

 $ xrandr -s 3840x2160
Размер 3840x2160 не найден в доступных режимах 

Я пробовал переключаться по индексу:

 $ xrandr -s 1
Индекс размера 1 слишком велик, есть только 1 размер

Я попытался добавить псевдоним с --screen 0: но это не меняет результат.

Я что-то упустил или я делаю что-то не так?

3 ответа

Решение

Ну разобрался, чего мне не хватало, нужно было --output eDP-1-1, До сих пор не совсем уверен, почему это не подразумевается и что работало, когда я не учел это, но теперь это работает.

Я не понимаю, как произошел этот глюк.

Кажется, это сбрасывается с помощью --auto; больше ничего не работало, и это было простое однострочное исправление:

$ sudo xrandr --output eDP-1-1 --auto

Ubuntu 19.10

Возможный ответ (у меня сработало):

Перечисленные режимы являются поддельными, и вам придется вручную добавлять модельную линию, как обычно. Обратите внимание на вывод xrandr:

      $ xrandr
eDP-1-1 connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 346mm x 194mm
   3840x2160     60.00 +
   2048x1536     60.00  
   ...

(мы знаем, что eDP-1-1 — это экран ноутбука, потому что на нем написано «подключено», а остальные отключены)

Обратите внимание на цифры3840,2160,60.00(пиксели по горизонтали, пиксели по вертикали, частота обновления). Рассчитайте модельную линию с помощью калькулятора математической модели, который предустановлен в большинстве дистрибутивов:

      $ cvt 3840 2160 60.00
# 3840x2160 59.98 Hz (CVT 8.29M9) hsync: 134.18 kHz; pclk: 712.75 MHz
Modeline "3840x2160_60.00"  712.75  3840 4160 4576 5312  2160 2163 2168 2237 -hsync +vsync

скопируйте эту выделенную часть (игнорируйте «Modeline»):

Модельная линия"3840x2160_60.00" 712.75 3840 4160 4576 5312 2160 2163 2168 2237 -hsync +vsync

Дайте модельному ряду любое имя; мы будем использовать имя3840x2160_60.00в примере ниже, но вы можете изменить это, если хотите. Однако обратите внимание: если у вас есть игры или программное обеспечение, использующее LibGDX, например, некоторые игры Steam, вы можете удалить подчеркивание и/или точку, чтобы избежать того, что может быть ошибкой LibGDX.Теперь мы объявим его как модельную линию, не привязанную к какому-либо конкретному выводу, просто скопировав выделенную выше часть и добавивxrandr --newmode:

      xrandr --newmode "3840x2400_60.00"  712.75  3840 4160 4576 5312  2160 2163 2168 2237 -hsync +vsync

Теперь мы добавляем модельную линию к конкретному выводу, см.man xrandrдля--addmode OUTPUT MODENAME:

      xrandr --addmode 3840x2400_60.00

Модельная строка теперь должна появиться внизу соответствующего вывода с помощью () (вам может пригодиться команда grep для проверки наличия большого количества модельных строк). Теперь перейдем к обмену, xrandr:

      (sudo???) xrandr --output eDP-1-1 --mode "3840x2400_60.00"

xrandr не должен требовать привилегий sudo ( sudo xrandr --output ...), но по какой-то причине без sudo это не сработало. В идеале этого следует избегать. Если у кого-то есть идеи, почему, например, флаг ядра nvidia-drm.modeset, пожалуйста, пишите в комментариях.

Если вы не можете добавить модели в свой xorg.conf (обычный способ сделать это постоянным), вы можете попробовать другой способ сделать его постоянным (я не знаю, как это сделать, но это может зависеть от вашего оконного менеджера).


Фон:

Действительно, я это заметилxrandr(-q) будет рекламировать режимы, как в вашем посте:

      Screen 0: minimum 8 x 8, current 1920 x 1080, maximum 32767 x 32767
eDP-1-1 connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 346mm x 194mm
   3840x2160     60.00 +
   2048x1536     60.00  

... и не может переключиться на них (без сообщения об ошибке, в отличие от вашего примера):

      $ xrandr -s 3840x2160
 [no output, seems successful but is not]

У меня есть выделенная дискретная видеокарта (dGPU) в качестве поставщика (?) для монитора ноутбука (в отличие от iGPU (интегрированного графического процессора), например, Intel, использующего Xorg). В частности, мой xorg.conf выглядит так:

      Section "ServerLayout"
    Identifier "layout"
    Screen 0 "nvidia"
    Inactive "intel"
EndSection

Section "Device"
    Identifier "nvidia"
    Driver "nvidia"
    BusID "PCI:1:0:0"
EndSection

Section "Screen"
    Identifier "nvidia"
    Device "nvidia"
    Option "AllowEmptyInitialConfiguration"
EndSection

Section "Device"
    Identifier "intel"
    Driver "modesetting"
    BusID "PCI:0:2:0"
    #Option "AccelMethod" "none"
EndSection

Section "Screen"
    Identifier "intel"
    Device "intel"
EndSection

Я думаю, что мой dGPU напрямую подключен к экрану через настройки BIOS.

Моя версия xrandr была следующей:

      % xrandr --version
xrandr program version       1.5.0
Server reports RandR version 1.6

Я решил эту ситуацию с помощью ответа, который написал выше, в середине 2023 года.

Другие вопросы по тегам