Настройка Xorg для нестандартного монитора достаточна проста. Например, на старенькой машине при установке Fedora 30 «из коробки» не завелась графическая подсистема. На мониторе, а точнее стареньком телевизоре SHARP, появилась надпись «Out of Range». Ошибка понятна — неправильная частота обновления экрана, не поддерживаемое разрешение, хотя anaconda работала при инсталляции нормально.
Начнём с создания собственного конфигурационного файла Xorg. Делается это с помощью команды
X -configure. При этом в текущей директории создается файл xorg.conf.new со стандартной конфигурацией. Его и будем редактировать для ручной настройки.
Во-первых посмотрим какие разрешения поддерживает наш телевизор (инструкция, естественно, отсутствует). Используем утилиту настройки xrandr, если вдруг её нет, то нужно утилиту установить.
dnf install xorg-x11-server-utils
Итак, запустим
xrandr (вывод обрезан)
1 2 3 4 5 6 7 8 9 10 |
1360x768 59.88 59.85 1280x800 59.99 59.97 59.81 59.91 1152x864 59.97 1280x720 60.00 59.99 59.86 59.74 1024x768 60.04 60.00 59.95 960x720 60.00 928x696 60.05 896x672 60.01 1024x576 59.95 59.96 59.90 59.82 960x600 59.93 60.00 |
В первой строчке показывается максимально возможное разрешение экрана, его и попытаемся настроить. Вторым шагом используем утилиту подсчета параметров видеорежимов cvt с параметрами максимального разрешения.
cvt 1360 768
1 2 |
# 1360x768 59.80 Hz (CVT) hsync: 47.72 kHz; pclk: 84.75 MHz Modeline "1360x768_60.00" 84.75 1360 1432 1568 1776 768 771 781 798 -hsync +vsync |
Теперь нам необходимо вставить полученную строку «Modeline…» в конфигурационный файл xorg.conf.new, но с небольшой поправкой: вместо первого параметра «1360x768_60.00» поставим параметр определённый утилитой cvt «1360×768 59.80».
Отредактируем файл xorg.conf.new в секции «Monitor», подставив параметры выданные cvt
1 2 3 4 5 6 7 8 9 |
Section "Monitor" Identifier "Monitor0" VendorName "Monitor Vendor" ModelName "Monitor Model" HorizSync 47.72 VertRefresh 59.80 Modeline "1360x768_59.80" 84.75 1360 1432 1568 1776 768 771 781 798 -hsync +vsync Option "DPMS" EndSection |
и в секции «Screen» оставим только одну подсекцию (остальные можно закомментировать)
1 2 3 4 5 6 7 8 9 10 11 12 |
Section "Screen" Identifier "Screen0" Device "Card0" Monitor "Monitor0" DefaultDepth 16 Option "UseEDID" "FALSE" Option "ExactModeTimingsDVI" "TRUE" SubSection "Display" Depth 16 Modes "1360x768_59.80" EndSubSection EndSection |
Обратите внимание на опции:
— Option «UseEDID» «FALSE» — запрещает использовать информацию, которую сообщает о себе монитор (параметры разрешений и частоты синхронизаций);
— Option «ExactModeTimingsDVI» «TRUE» — включает принудительную синхронизацию с точными параметрами, указанными в ModeLine в секции «Monitor».
Сохраняем файл и проверяем наши изменения с помощью команды
X -config xorg.conf.new, должно загрузиться графическое окружение рабочего стола. Следующим этапом копируем наш отредактированный файл на место рабочего файла Xorg.
cp xorg.conf.new /etc/X11/xorg.conf
Теперь можно установить загрузку графического режима по умолчанию, если эта настройка не отработала сама после перезагрузки.
systemctl set-default graphical.target
1 |
Created symlink from /etc/systemd/system/default.target to /usr/lib/systemd/system/graphical.target. |