C O D E - I N F O . R U

Linux Debian: установка разрешения экрана (XRandR)


Как установить\вернуть разрешение экрана в Linux Debian\Ubuntu, которое отсутствует в списке доступных разрешений, или
vga-кабель, сбой разрешения экрана в linux Недавно возникла проблема с разрешением экрана в операционной системе Linux Debian, после замены VGA кабеля на новый (в Windows 7 - разрешение тоже "слетело", но там, нужное разрешение не "исчезло" и выбрав его из списка в "настройках экрана" всё стало хорошо). На форумах нашел информацию, что в некоторых VGA кабелях отсутствуют (не "звонятся") 9-й, 12-й или 15-й pin(ы),  с помощью которых ОС получает данные о поддерживаемых режимах монитора. Многие советовали обменять это VGA-кабель у продавца, но мне этот вариант не подошел (причины оставлю "за кадром", думаю никто не обидится =) ).

И так:
ПРОБЛЕМА:
проблема с установкой разрешения экрана. Нет нужного разрешения в списке утилиты "Настройки экрана".

РЕШЕНИЕ:
Самое красивое и полное решение нашел на официальном форуме Ubuntu (проверял на Debian).

XRandR — расширение X сервера, позволяющее производить настройки режимов работы мониторов.
Например, можно изменить разрешение, вывести изображение на внешний монитор, повернуть изображение
и тому подобное. Утилита часто полезна для настройки корректного разрешения при подключении к внешнему монитору или телевизору.

Вывод доступных мониторов и режимов
Введя в терминале команду
xrandr
мы увидим список интерфейсов по которым могут быть подключены мониторы и доступные режимы работы монитора
(разрешение и частота смена кадров в герцах).
Пример вывода:
Screen 0: minimum 320 x 200, current 1024 x 600, maximum 4096 x 4096
LVDS1 connected 1024x600+0+0 (normal left inverted right x axis y axis) 223mm x 125mm
1024x600 60.0*+
800x600 60.3 56.2
640x480 59.9
VGA1 disconnected (normal left inverted right x axis y axis)


Возможные названия интерфейсов:
    LVDS1 — экран ноутбука;
    VGA-0 — экран, подключаемый через VGA;
    DVI1 — экран, подключаемый через DVI;

Названия интерфейсов могут отличаться в зависимости от используемой видеокарты. Для последующей работы с конкретным
интерфейсом, необходимо запомнить его название (например, VGA1 если мы работам на видео от Intel и подключаем монитор по VGA, который и хотим настроить через XRandR).

Если нужный вам режим всё-таки оказался прописан:
Изменение разрешения
Лучше всего рассмотреть пример:
xrandr --output LVDS1 --mode 800x600

Опция --output предназначена для указания на нужный интерфейс, а --mode собственно на выбираемый режим работы.
Обратите внимание, что выбираемый режим должен быть указан в выводе команды xrandr

Если нужный вам режим отсутствует:
Если нужный вам режим не прописан, то необходимо добавить его вручную. Это поможет настроить монитор на нужное разрешение, если в списке разрешений отсутствует правильное разрешение (например, если при подключении 1080p монитора
в программах настройки экрана доступно лишь намного меньшее разрешение).
Создание нового режима
Если режим уже существует (смотреть перввую часть статьи), но не связан с нужным интерфейсом, то можно добавить режим
таким образом:
xrandr --addmode VGA1 1024x600
— добавляем режим с разрешением 1024x600 и 60 Гц частотой для монитора, подключённого по VGA1.

Если режима ещё не существует, то сначала вызываем утилиту CVT (Coordinated Video Timing) с необходимым разрешением и
частотой кадров в качестве параметров (в качестве примера добавим режим 1600x900 при 60Гц):
cvt 1600 900 60

Вывод утилиты cvt с нашими параметрами таков:
# 1600x900 59.95 Hz (CVT 1.44M9) hsync: 55.99 kHz; pclk: 118.25 MHz
Modeline "1600x900_60.00" 118.25 1600 1696 1856 2112 900 903 908 934 -hsync +vsync


Далее мы скопируем всё, что после Modeline при вызове xrandr с ключём создания нового режима:
xrandr --newmode "1600x900_60.00" 118.25 1600 1696 1856 2112 900 903 908 934 -hsync +vsync

Теперь осталось "привязать" созданный режим к нужному интерфейсу (в нашем примере к VGA1):
xrandr --addmode VGA1 1600x900_60.00

Наконец, мы можем выбрать нужное нам разрешение для монитора:
xrandr --output VGA1 --mode 1600x900_60.00

Также, решил сохранить и эту инфу, возможно когда-то пригодится:

Режимы работы с несколькими мониторами
Отключение дисплея
Отключить не нужный в данный момент дисплей можно с помощью опции --off:
xrandr --output LVDS1 --off
— отключаем монитор ноутбука.

Расположение мониторов относительно друг-друга
xrandr --output VGA1 --right-of LVDS1
— монитор, подключённый по VGA1 будет располагаться "справа" от монитора ноутбука
(переходить на внешний монитор необходимо будет через правый угол монитора ноутбука).

Аналогично используется опция --left-of
xrandr --output LVDS1 --primary
— монитор ноутбука становится основным.

Чтобы сделать виртуальный экран большего разрешения, чем физический (в таком режиме, чтобы увидеть всё изображение
необходимо будет передвигать курсор за границы) применяем команду:
xrandr --output LVDS1 --mode 1024x600 --fb 1280x720 --panning 1280x720

После этого у вас будет виртуальное разрешение 1280x720 при 1024x600 физическом.
Поворот
Используйте следующие опции применительно к нужному интерфейсу:
    --rotate normal
    --rotate left
    --rotate right
    --rotate inverted (поворот на Пи радиан)

Сохранение настроек
Для активации необходимых настроек при старте, создайте файл ~/.xprofile (~/ указывает на расположение в домашней директории) и внесите в него необходимые строки команд xrandr.
или создаем баш скрипт и устанавливаем его в автозагрузку :)

#!/bin/bash

#  ubuntu разрешение монитора
#  1. Открываем консоль. Узнаем список видеовыходов и поддерживаемых
#  разрешений для каждого выхода командой
#  Код:
# xrandr
#VGA-0 connected 1024x768+0+0 (normal left inverted right x axis y axis) 0mm x 0mm
#   1360x768       59.8 
#   1152x864       60.0 
#   1024x768       60.0
#   800x600        60.3 
#   640x480        59.9 
#DVI-0 disconnected (normal left inverted right x axis y axis)
#S-video disconnected (normal left inverted right x axis y axis)

# 2. Создаем Modeline для нужного режима:
cvt 1024 768 85
#    Первые два числа — разрешение, третье — частота обновления экрана.
#    Команда выдаст примерно следующее:
#    Код:# 1024x768 84.89 Hz (CVT 0.79M3) hsync: 68.68 kHz; pclk: 94.50 MHz
#    Modeline "1024x768_85.00"   94.50  1024 1096 1200 1376  768 771 775 809 -hsync +vsync

#    3. Создаем режим:
#    Код:
xrandr  --newmode "1024x768_85.00"  94.50  1024 1096 1200 1376  768 771 775 809 -hsync +vsync
#    (после --newmode вставляем вывод команды cvt без слова Modeline).

#    4. Добавляем новый режим к нужному выходу:
#    Код:
xrandr --addmode VGA-0 "1024x768_85.00"

#    5. Вводим xrandr и видим, что режим добавился. Теперь можно запустить
#    стандартную утилиту (Система > Параметры > Экран) и поставить всё, что
#    нужно. Из консоли поменять разрешение монитора можно так:
#    Код:
xrandr --output VGA-0 --mode "1024x768_85.00"

 

Техническая


Четверг 27 сентября 2018

[Просмотров: 1806]

Источник: forum.ubuntu.ru \ Автор: alex_flc