Вопрос или проблема
Я пытаюсь настроить режим xrandr для X-дисплея, но при попытке найти соответствующие параметры я заметил два разных расчетных программы (см. ниже).
Почему разница в значениях?
Какой набор мне использовать для дисплея, не являющегося CRT?
$ gtf 1600 1200 60
# 1600x1200 @ 60.00 Hz (GTF) hsync: 74.52 kHz; pclk: 160.96 MHz
Modeline "1600x1200_60.00" 160.96 1600 1704 1880 2160 1200 1201 1204 1242 -HSync +Vsync
$ cvt 1600 1200 60
# 1600x1200 59.87 Hz (CVT 1.92M3) hsync: 74.54 kHz; pclk: 161.00 MHz
Modeline "1600x1200_60.00" 161.00 1600 1712 1880 2160 1200 1203 1207 1245 -hsync +vsync
Перед использованием CVT или GTF попробуйте позволить X произвести расчет самостоятельно. Создание конфигурационного файла для предоставления моделей – это анахронизм. Учитывая правильные характеристики дисплея, которые обычно предоставляет EDID, X превосходно справляется с генерацией необходимых моделей. С тех пор как 16 лет назад Xorg отделился от XFree86 и используя много разных аппаратных средств с Linux, я еще не нашел ни одной аппаратной комбинации, где CVT или GTF работали бы лучше, чем сервер, учитывая правильные характеристики дисплея. Эти две спецификации могут быть указаны через HorizSync и VertRefresh в секции “Monitor” в файле /etc/X11/xorg.con*, когда EDID оказывается недостаточным для их предоставления.
Как заметил Хилтон для Debian 12, за последние несколько лет текущие дистрибутивы начали преобразовывать /etc/X11/xorg.conf в необязательный файл, а /etc/X11/xorg.conf.d/ в необязательную директорию. Теперь рекомендованный способ настройки конфигурации X, если это необходимо или желаемо, заключается в том, чтобы создать все необходимое в /etc/X11/xorg.conf.d/.
Section "Monitor"
Identifier "DefaultMonitor"
HorizSync 30-115
VertRefresh 50-160
EndSection
Сохраните вышеуказанное как /etc/X11/xorg.conf.d/50-monitor.conf, после изменения HorizSync и VertRefresh на правильные значения в соответствии со спецификациями вашего дисплея, и попробуйте. По идее, по крайней мере, это должно делать то, что вам нужно, но некоторые аппаратные комбинации просто не будут хорошо работать вместе. Иногда заявленные характеристики на самом деле не поддерживаются. Экраны с супершироким соотношением сторон являются одними из самых проблемных.
Ответ или решение
Команды cvt
и gtf
являются утилитами для генерации параметров модулей для видеорежимов, но они используют разные алгоритмы вычисления частот и настроек, что может приводить к различиям в их выводах.
Причины различий в значениях
Основное различие между cvt
и gtf
заключается в методах, которыми они вычисляют значения.
-
Генерация строк модуля:
- GTF (Generalized Timing Formula): Основывается на формуле, предложенной в виде стандартов VESA и принимает во внимание различные параметры, такие как частота обновления, горизонтальная и вертикальная разрешающая способность. GTF был разработан для более точного контроля временных характеристик.
- CVT (Coordinated Video Timings): Это усовершенствованное решение, которое учитывает различные нестандартные разрешения и адаптируется к современным дисплеям. CVT также использует формулы, но они отличаются от GTF, что и приводит к различиям в расчете.
-
Степень округления:
- Утилиты могут округлять значения по-разному, что тоже может повлиять на итоговые частоты, такие как
pclk
(частота пикселей) иhsync
.
- Утилиты могут округлять значения по-разному, что тоже может повлиять на итоговые частоты, такие как
В вашем случае наблюдаются следующие различия:
- Для GTF: Частота пикселей составляет 160.96 МГц, а горизонтальная синхронизация – 74.52 кГц.
- Для CVT: Частота пикселей — 161.00 МГц, а горизонтальная синхронизация — 74.54 кГц.
Разница в частоте пикселей незначительна, но может восприниматься разными дисплеями по-разному.
Какую утилиту использовать для ненастольного дисплея?
Если у вас есть ненастольный дисплей (например, ЖК или LED), рекомендуется использовать параметры, полученные с помощью команды cvt
. Основной причиной этого является то, что CVT более актуален для современных технологий отображения, которые могут лучше справляться с предоставленными параметрами.
Заключение:
Для настройки режима отображения, особенно для современных дисплеев, вы можете сначала попробовать использовать возможности автоматической настройки X-сервера в соответствии с командой xrandr
. Если это не дает нужного результата, используйте cvt
для создания нового модуля. Убедитесь, что предоставлены правильные значения HorizSync
и VertRefresh
в конфигурационном файле, которые могут помочь X-серверу в автоматической генерации подходящих режимов.
Итак, несмотря на то что обе утилиты могут предоставлять приемлемые параметры, cvt
может оказаться более надежным выбором для современных ненастольных дисплеев.