Разгон монитора#

Опасно

Инструкции в данном разделе можно выполнять по желанию, цель автора лишь показать саму возможность разгона в Linux, а не призвать всех это делать.

В этом разделе мы опишем новый способ разгона монитора, который является более универсальным чем предыдущий через различные манипуляции с конфигом Xorg.

Подготовка#

Суть способа состоит в редактировании EDID файла вашего монитора, что позволяет этому способу работать на любой конфигурации.

Для начала найдем нужный нам EDID файл через команду:

find /sys/devices/pci*/ -name edid

Команда выведет список EDID файлов для различных типов подключения, вы должны выбрать нужный вам и скопировать его в домашнюю директорию. Например мне нужен EDID файл для моего монитора который подключен по HDMI, значит:

cp -r /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/drm/card0/card0-HDMI-A-1/edid ~/

Отлично, теперь выполним установку редактора EDID. В нашем случае это будет нативный wxedid из AUR, но вы можете воспользоваться любым другим.

git clone https://aur.archlinux.org/wxedid.git # Стянуть исходники ПО
cd wxedid                                      # Переходим в директорию
makepkg -sric                                  # Сборка и установка

Откроем редактор через меню или команду:

wxedid

Использование редактора wxedid#

После запуска редактора в контекстном меню выбираем File -> Open EDID binary для редактирования нашего EDID файла в домашней директории.

Теперь, для активации полного цветового диапазона меняем данные в строках:

  1. SPF: Supported features -> изменить значение vsig_format на 0b00

  2. CHD: CEA-861 header -> изменить значение YCbCr4:2:2 и YCbCr4:4:4 на 0

  3. VSD: Vendor Specific Data Block -> изменить значение DC_Y444 на 0

Это необходимо чтобы исправить давнюю проблему с неверно выставляемым в Linux цветовым диапозоном вашего монитора.

Предупреждение

У Mutter начиная с версии GNOME 45 появилась поддержка форматов YUV (https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2191), поэтому пользователи этого окружения могут пропустить данные шаги.

../_images/wxedid-fullrgb.png

Для разгона же вам нужно выбрать DTD: Detailed Timing Descriptor. У вас их может быть несколько, т.к. каждый из них работает для отдельного разрешения монитора. Вам нужно выбрать тот, у которого самое большое разрешение. Вы это поймете по строчкам H-Active pix и V-Active lines. После этого перейдите во вкладку DTD Constructor и постепенно увеличиваете значение Pixel Clock до нужной вам частоты монитора.

../_images/wxedid-pixel-clock.png

В контекстном меню сохраняем изменения (File-> Save EDID Binary) и выходим из редактора.

Дело осталось за малым, нужно подменить используемый ядром EDID файл.

Скопируем модифицированный файл из нашей домашней директории в /usr/lib/firmware/edid:

sudo mkdir -p /usr/lib/firmware/edid
sudo cp -r ~/*.bin /usr/lib/firmware/edid/edid2.bin

Чтобы ядро предпочитало использовать отредактированный файл EDID вместо стандартного, нам нужно указать специальный параметр ядра для модуля drm:

sudo nano /etc/modprobe.d/drm.conf#
options drm edid_firmware=edid/edid2.bin

Также необходимо добавить файл /usr/lib/firmware/edid/edid2.bin в образы initramfs. Для этого редактируем файл /etc/mkinitcpio.conf и в строке FILES=() пишем следующее:

FILES=(/usr/lib/firmware/edid/edid2.bin)

После чего обновляем образы initramfs через команду sudo mkinitcpio -P.

Затем перезагружаемся и наслаждаемся новой плавностью картинки.

Предупреждение

Если вы используете закрытый драйвера NVIDIA, то параметр ядра drm.edid_firmware для вас просто не будет работать. Вместо него вы должны прописать параметр Option "CustomEDID" "HDMI-0:/home/ваше_имя_пользователя/edid.bin" (тип подключения меняете на требуемый) в ваш конфиг /etc/X11/xorg.conf. Как можно понять, при этом разгон не будет работать в Wayland.