Настройка двухмониторной системы в xorg.conf

Вопрос или проблема

У меня настроена система с двумя мониторами, где второй (меньший) монитор расширяет рабочий стол первого.

Это работает прекрасно с использованием настроек монитора KDE/XRandr, но поведение Xorg по умолчанию заключается в том, что он дублирует первый монитор и устанавливает для него более низкое разрешение, что приводит к двум установкам режима: первая — с правильными разрешениями (установленными radeon при загрузке) на экране входа KDM и вторая — после входа в систему.

Теперь я хотел бы правильно настроить xorg.conf.
Насколько я знаю, мне нужно включить объединенный кадровый буфер, как описано здесь, однако я не знаю, как должна выглядеть полная, рабочая конфигурация.

На данный момент мне удалось отключить ненужную установку режима, но второй экран все еще дублирует (а сейчас и обрезает) первый:

Section "Screen"
        Identifier "Первый экран"
        DefaultDepth 24
        SubSection "Display"
                Depth 24
                Modes "1920x1080"
        EndSubSection
EndSection

Section "Screen"
        Identifier "Второй экран"
        DefaultDepth 24
        SubSection "Display"
                Depth 24
                Modes "1280x1024"
        EndSubSection
EndSection

Section "Device"
        Identifier "ATI"
        Driver "radeon"
        Option "MergedFB" "true"
        Option "MergedNonRectangular" "true"
        Option "CRT2Position" "RightOf"
        Option "MetaModes" "1920x1080-1280x1024"
EndSection

Я знаю, что мне нужно указать Virtual 3200 1080 где-то в разделе “Display”. Я пробовал добавить это в оба существующих подпункта, в дополнительный подпункт и в дополнительный раздел “Screen”, но ни один из вариантов не оказался успешным.

Важные строки — это метамоды и TwinViewOrientation в разделе Screen. Вам нужно найти названия ваших мониторов и установить их правильно. Легче всего сделать это, установив проприетарные драйверы, а затем использовать aticonfig для генерации вашего xorg.conf.

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

Section "ServerLayout"
    Identifier     "Layout0"
    Screen      0  "Screen0" 0 0 # Это устанавливает ориентацию мониторов
    InputDevice    "Keyboard0" "CoreKeyboard"
    InputDevice    "Mouse0" "CorePointer"
    Option         "Xinerama" "0"
EndSection

Section "Monitor"
    Identifier     "Monitor0"
    VendorName     "Unknown"
    ModelName      "Seiko/Epson"
    HorizSync       37.2 - 55.8
    VertRefresh     40.0 - 60.0
    Option         "DPMS"
EndSection

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "Quadro FX 880M"
EndSection

## Обратите внимание, что есть только один раздел Screen, я думаю, это и делает 
## расширенный рабочий стол. 
Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    Option         "Stereo" "0"
    ## Эта строка устанавливает разрешения для каждого монитора
    Option         "metamodes" "DP-3: 1600x900, VGA-0: 1440x900"
    ## Это устанавливает monitor0 для расширения экрана вправо
    Option         "TwinViewOrientation" "RightOf"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

Ответ или решение

Для настройки двухмониторного режима в xorg.conf с использованием драйвера radeon, рекомендуется следовать следующему примеру конфигурации. Данная конфигурация будет обеспечивать расширение рабочего стола на второй монитор, избегая клонирования и неправильного разрешения.

Section "ServerLayout"
    Identifier     "Layout0"
    Screen      0  "Screen0" 0 0      # Указывает, как размещены мониторы
    Screen      1  "Screen1" RightOf "Screen0" # Размещение второго экрана справа
    InputDevice    "Keyboard0" "CoreKeyboard"
    InputDevice    "Mouse0" "CorePointer"
    Option         "Xinerama" "0"     # Отключает Xinerama для упрощенной конфигурации
EndSection

Section "Monitor"
    Identifier     "Monitor0"
    VendorName     "Unknown"
    ModelName      "Основной монитор"
    HorizSync       30.0 - 80.0        # Ширина частоты для основного монитора
    VertRefresh     50.0 - 75.0        # Частота обновления основного монитора
    Option         "DPMS"              # Включает DPMS (энергосбережение)
EndSection

Section "Monitor"
    Identifier     "Monitor1"
    VendorName     "Unknown"
    ModelName      "Второй монитор"
    HorizSync       30.0 - 80.0        # Ширина частоты для второго монитора
    VertRefresh     50.0 - 75.0        # Частота обновления второго монитора
    Option         "DPMS"              # Включает DPMS для второго монитора
EndSection

Section "Device"
    Identifier     "Device0"
    Driver         "radeon"
    Option         "MergedFB" "true"      # Включает объединенный фреймбуфер
    Option         "MergedNonRectangular" "true" # Позволяет не прямоугольные объединенные экраны
    Option         "CRT2Position" "RightOf" # Указывает позицию второго монитора
EndSection

Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    Option         "MetaModes" "1920x1080, 1280x1024" # Указывает разрешения для каждого монитора
    SubSection     "Display"
        Depth       24
        Virtual     3200 1080              # Указывает виртуальный размер десктопа
    EndSubSection
EndSection

Section "Screen"
    Identifier     "Screen1"
    Device         "Device0"
    Monitor        "Monitor1"
    DefaultDepth    24
    Option         "MetaModes" "1920x1080, 1280x1024"
    SubSection     "Display"
        Depth       24
        Virtual     3200 1080              # Виртуальный размер для второго экрана; должен совпадать по высоте
    EndSubSection
EndSection

Объяснение ключевых параметров:

  1. Section "ServerLayout": Этот раздел отвечает за общую компоновку экранов. Мы указываем, что "Screen0" является основным экраном, а "Screen1" расположена справа от него.

  2. Section "Monitor": Отдельные разделы для каждого монитора позволяют указать их свойства, такие как диапазоны горизонтальной и вертикальной синхронизации.

  3. Section "Device": Указываем драйвер (radeon) и включаем объединенный фреймбуфер MergedFB, что позволяет легко управлять несколькими экранами.

  4. Section "Screen": Разделяем параметры屏幕 для каждого монитора, указываем метамоды для настройки разрешений и виртуальный размер (Virtual), который должен учитывать размеры обоих экранов.

Этот пример конфигурации должен помочь вам настроить два монитора для работы в режиме расширенного рабочего стола. Убедитесь, что все параметры соответствуют вашим экранам и их разрешениям. После внесения изменений в xorg.conf, перезагрузите систему или перезапустите X-сервер, чтобы применить изменения.

Оцените материал
Добавить комментарий

Капча загружается...