Вопрос или проблема
У меня настроена система с двумя мониторами, где второй (меньший) монитор расширяет рабочий стол первого.
Это работает прекрасно с использованием настроек монитора 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
Объяснение ключевых параметров:
-
Section "ServerLayout": Этот раздел отвечает за общую компоновку экранов. Мы указываем, что "Screen0" является основным экраном, а "Screen1" расположена справа от него.
-
Section "Monitor": Отдельные разделы для каждого монитора позволяют указать их свойства, такие как диапазоны горизонтальной и вертикальной синхронизации.
-
Section "Device": Указываем драйвер (
radeon
) и включаем объединенный фреймбуферMergedFB
, что позволяет легко управлять несколькими экранами. -
Section "Screen": Разделяем параметры屏幕 для каждого монитора, указываем метамоды для настройки разрешений и виртуальный размер (Virtual), который должен учитывать размеры обоих экранов.
Этот пример конфигурации должен помочь вам настроить два монитора для работы в режиме расширенного рабочего стола. Убедитесь, что все параметры соответствуют вашим экранам и их разрешениям. После внесения изменений в xorg.conf
, перезагрузите систему или перезапустите X-сервер, чтобы применить изменения.