Все об Arch Linux

Arch Linux будет тем, что вы из него сделаете!

Драйвер 570+ и мониторы 240 Гц: режимы, EDID, modeline

Монитор на 240 Гц не обязан выдавать 240 Гц, и виноватым почти всегда оказывается не видеокарта. Режим не создаётся из воздуха: его предлагает EDID монитора, фильтрует валидатор драйвера NVIDIA, потом проверяет пропускная способность кабеля и порта, а сверху всё это может отменить конфиг Xorg. Разбираю по слоям — от железа до modeline в 20-nvidia.conf, с рабочими командами cvt и xrandr.

Почему монитор 240 Гц не показывает 240 Гц?

Порядок проверки простой. Сначала посмотри, что система вообще знает про монитор:

xrandr -q

Если в списке есть строка вроде 2560x1440 +reduced или 2560x1440R, а рядом 240.00* со звёздочкой — режим есть и он активен. Если там только 60.00* и 120.00, а 240 Гц в списке нет, драйвер его не получил: источник проблемы — EDID, порт или валидатор режимов.

Дальше смотри, на каком разъёме сидит видеокарта. Разница между 60 и 240 Гц на одном мониторе часто объясняется тем, что DisplayPort работает на полной полосе, а HDMI — на урезанной, и оба подписаны одним и тем же именем. Про то, как порты и кабели ведут себя по-разному, я писал в статье про DisplayPort и HDMI на NVIDIA.

И последнее звено — конфигурация. Если Xorg запускается с MetaModes, в котором прописан режим на 60 Гц, то каждый раз при старте сессии система честно вернётся к нему, даже если ты руками переключил монитор на 240 Гц.

Что изменилось в драйвере 570 и новее?

Ветка 570 — не только новые фичи для игр, но и заметная работа с дисплеями. Главное для мониторов: добавлена поддержка DisplayPort 2.1b, а именно она нужна для экранов 360 Гц и выше без ужима разрешения. На новых картах вроде Blackwell драйвер ставится только в открытом виде, и это отдельная тема со своими граблями.

Техническая деталь, которая объясняет часть странных ошибок загрузки: начиная с 570 прошивка GSP обязательна, а не опциональна. Если модуль не может инициализировать GSP, он не загрузится вообще, и никакие настройки разрешения тут не помогут. Плюс в 560 появился Smooth Motion, а ветка 555 осталась последней с поддержкой Kepler.

Проверить, что реально стоит в системе, можно так:

nvidia-smi --query-gpu=driver_version,name --format=csv
cat /proc/driver/nvidia/version

Если версия не совпадает с тем, что ты ставил, или после обновления ядра модуль перестал собираться — начни с подбора версии драйвера под ядро, это отдельный разбор.

Хватает ли кабеля и порта?

Вот где чаще всего и происходит затык. Считать надо в цифрах, а не на глаз. Требуемая полоса равна pclk × 24 для 8 бит на канал и pclk × 30 для 10 бит. Потолки у разъёмов такие: DisplayPort 1.4 с четырьмя лейнами даёт около 25,9 Гбит/с, DisplayPort 1.2 — около 17,3 Гбит/с, HDMI 2.0 — ровно 18 Гбит/с, HDMI 2.1 — 48 Гбит/с.

Возьми для примера 2560x1440 на 240 Гц и посчитай:

cvt 2560 1440 240 -r

На Arch команда выдаёт расчёт в таком виде:

# 2560x1440 239.91 Hz (CVT) hsync: 388.42 kHz; pclk: 1056.50 MHz
Modeline "2560x1440R"  1056.50  2560 2608 2640 2720  1440 1443 1448 1619 +hsync -vsync

1056,5 МГц при 8 битах — это 25,4 Гбит/с. Впритык в DisplayPort 1.4, и совсем не влезает ни в DisplayPort 1.2, ни в HDMI 2.0. Пересчитай без -r, получится 1442,5 МГц и 34,6 Гбит/с — это уже за пределами DisplayPort 1.4. На 10 бит полоса вырастет ещё на четверть, и 240 Гц при 1440p перестанет влезать куда бы то ни было.

Отсюда практические выводы. Координаты 1440p240 без DSC требуют DisplayPort 1.4, лучше с четырьмя лейнами и кабелем, который действительно HBR3, а не маркированный на 8.27 Гбит/с. DSC решает задачу с большим запасом: 4:2:2 срезает полосу почти вдвое, и тот же режим начинает помещаться в DisplayPort 1.2. Драйвер включает DSC сам, ручного переключателя нет, но он жестко отказывается включать его, если ты попросил сжатие, которое монитор не умеет. HDMI 2.1 для 1440p240 избыточен по полосе и удобен тем, что работает с одним кабелем на два монитора; HDMI 2.0 ограничит тебя 120 Гц, и никакой modeline это не обойдёт.

Как добавить режим вручную?

Если EDID молчит, режим можно создать самому. Скопируй modeline из вывода cvt и зарегистрируй его тремя командами:

xrandr --newmode "2560x1440R" 1056.50 2560 2608 2640 2720 1440 1443 1448 1619 +hsync -vsync
xrandr --addmode DP-1 2560x1440R
xrandr --output DP-1 --mode 2560x1440R --rate 240

Имя DP-1 бери из xrandr -q, а не из головы: у HDMI будет HDMI-1, у второго DisplayPort — DP-2, и по именам вывода можно угадывать долго. Если после --addmode режим не появился в списке, скорее всего, его отбил валидатор драйвера NVIDIA: у режимов с уменьшенным blanking нет таймингов в EDID, и проверка пиковой частоты считает их превышением.

После перезагрузки всё это исчезнет, потому что xrandr ничего не сохраняет. Постоянный вариант — конфиг Xorg, и это следующий раздел.

Как зафиксировать режим в 20-nvidia.conf?

Файл Option "MetaModes" перечисляет разрешения, между которыми система переключается, а ModeValidation отключает проверку пиковой частоты, которая иначе зарежет ручной режим на 240 Гц:

sudo nano /etc/X11/xorg.conf.d/20-nvidia.conf

В блоке Section "Monitor" нужного монитора:

Option "MetaModes" "DP-1: 2560x1440R 240.00 +DP-1 2560x1440 60.00"
Option "ModeValidation" "NoMaxPClkCheck"

Первая строка задаёт рабочий режим и запасной, вторая разрешает тайминги, которых нет в EDID. Правку можно примерить без перезагрузки командой xrandr, а постоянный результат проверить так:

nvidia-settings -q CurrentMetaMode

Если в выводе 60 Гц, а не 240, значит MetaModes не применился: проверь имя вывода в конфиге, посмотри journalctl -b | grep -i nvidia на предмет сообщений о неизвестных опциях и убедись, что файл лежит именно в xorg.conf.d с расширением .conf. Второй момент, о котором забывают: в 20-nvidia.conf нельзя описывать EDID и другие вещи, относящиеся к серверу, — этот файл принадлежит драйверу.

Как это работает под Wayland?

Под Wayland композитор не спрашивает у драйвера список режимов через Xrandr, поэтому ручной --newmode там не действует, а смена частоты идёт через панель мониторов compositor — в KDE Plasma она называется «Настройка частоты обновления», в GNOME такого пункта для NVIDIA обычно нет вовсе. Панели в KDE доступен ползунок VRR, который включает переменную частоту через G-SYNC, но требует включённого в модуле режима DRM KMS: параметры nvidia_drm.modeset=1 и связанные с ними я разбирал в материале про параметры ядра и командную строку.

Практический совет: ручные режимы через xrandr, cvt и MetaModes держи для Xorg-сессии — там они работают предсказуемо. Под Wayland оставляй автоопределение, а частоту и VRM крути в настройках compositor.

В nvidia-settings два пункта напрямую относятся к картинке на высоких частотах: Force Full Composition Pipeline заставляет всё идти через GPU и лечит разрывы на 144/240 Гц, а Allow G-SYNC снимает ограничение на 60 Гц, из-за которого проигрыватели кадров не дожимают частоту. Стоит знать про побочный эффект: full composition увеличивает нагрузку на процессор и добавляет задержку ввода.

Частые вопросы

Почему после перезагрузки монитор снова на 60 Гц?

Потому что ручной режим не сохранился: xrandr работает только в текущей сессии, а EDID не предлагает 240 Гц заново. Единственный устойчивый способ — прописать MetaModes в 20-nvidia.conf, иначе Xorg при каждом старте выберет максимум из того, что прислал монитор.

Как откатить неработающий MetaModes?

Файл с непонятным режимом может помешать старту Xorg. Загрузись в tty, проверь лог и отредактируй строку, вернув обычное разрешение: sudo nano /etc/X11/xorg.conf.d/20-nvidia.conf. Если и это не помогает, временно убери файл целиком — Xorg на modesetting с nouveau или с открытым модулем NVIDIA поднимется и без него.

Нужен ли монитору DSC и можно ли его включить руками?

Если режим влезает в полосу без сжатия, DSC не нужен и лучше его не иметь: картинка остаётся полной. Когда без него не влезает, драйвер включает сжатие сам, если монитор сообщил о поддержке в EDID. Принудительно форсировать DSC через конфиг нельзя, единственный рычаг — снизить глубину цвета или попросить компромиссный тайминг через cvt -r.

Можно ли получить 240 Гц по HDMI 2.0?

Нет, и modeline тут не поможет: 18 Гбит/с физически не хватает на 1440p240 даже в сжатом виде, который через этот разъём не передаётся. Нужен DisplayPort 1.4, желательно с DSC, либо HDMI 2.1.

Полезные ресурсы

  • NVIDIA (ArchWiki) — конфигурация Xorg, MetaModes, валидация режимов и опции драйвера.
  • Xrandr (ArchWiki) — синтаксис --newmode, --addmode и --output во всех подробностях.

Заключение

Монитор 240 Гц упирается в три вещи: полосу порта, EDID и валидатор NVIDIA. Считай pclk × 24 и сравнивай с потолком разъёма, добавляй режим через cvt -r и xrandr, а чтобы он пережил перезагрузку — прописывай MetaModes с ModeValidation в 20-nvidia.conf. Под Wayland ручные режимы не работают, там частотой и VRR управляет compositor.



Не получилось? Поможем настроить

Задай вопрос в чате — отвечаем быстро, по делу и без воды.

Читайте также

Комментарии

Загрузка…

Откроется GitHub: создайте новый issue с вашим комментарием (кнопка «Submit new issue»). После отправки обновите эту страницу — комментарий появится ниже.

Telegram Max