monitor-overlocking.rst 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  1. .. ARU (c) 2018 - 2022, Pavel Priluckiy, Vasiliy Stelmachenok and contributors
  2. ARU is licensed under a
  3. Creative Commons Attribution-ShareAlike 4.0 International License.
  4. You should have received a copy of the license along with this
  5. work. If not, see <https://creativecommons.org/licenses/by-sa/4.0/>.
  6. ****************
  7. Разгон монитора
  8. ****************
  9. .. index:: monitor, overlocking, refresh-rate
  10. .. _monitor-overlocking:
  11. ==================================================
  12. Разгон монитора и исправление цветового диапозона
  13. ==================================================
  14. В этом разделе мы опишем новый способ разгона монитора, который
  15. является более универсальным чем предыдущий через различные
  16. манипуляции с конфигом Xorg.
  17. Суть способа состоит в редактировании EDID файла вашего монитора, что
  18. позволяет этому способу работать на любой конфигурации.
  19. Для начала найдем нужный нам EDID файл через команду::
  20. find /sys/devices/pci*/ -name edid
  21. .. warning:: Вывод команды может быть пуст для пользователей NVIDIA
  22. если вы не включили DRM KMS. Чтобы его включить `смотрите
  23. предыдущие разделы
  24. <https://ventureo.codeberg.page/source/first-steps.html#nvidia-tweaking>`_
  25. Команда выведет список EDID файлов для различных типов подключения, вы
  26. должны выбрать нужный вам и скопировать его в домашнюю директорию.
  27. Например мне нужен EDID файл для моего монитора который подключен по
  28. HDMI, значит::
  29. cp -r /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/drm/card0/card0-HDMI-A-1/edid ~/
  30. Отлично, теперь выполним установку редактора EDID. В нашем случае это
  31. будет нативный wxedid из AUR, но вы можете воспользоваться любым
  32. другим. ::
  33. git clone https://aur.archlinux.org/wxedid.git # Стянуть исходники ПО
  34. cd wxedid # Переходим в директорию
  35. makepkg -sric # Сборка и установка
  36. Откроем редактор через меню или команду::
  37. wxedid
  38. После запуска редактора в контекстном меню выбираем **File -> Open EDID
  39. binary** для редактирования нашего EDID файла в домашней директории.
  40. Теперь, для активации полного цветового диапазона меняем данные в строках:
  41. 1) SPF: Supported features -> изменить значение vsig_format на 0b00
  42. 2) CHD: CEA-861 header -> изменить значение YCbCr4:2:2 и YCbCr4:4:4 на 0
  43. 3) VSD: Vendor Specific Data Block -> изменить значение DC_Y444 на 0
  44. Это необходимо чтобы исправить давнюю проблему с неверно выставляемым
  45. в Linux цветовым диапозоном вашего монитора.
  46. .. warning:: У Mutter начиная с версии GNOME 45 появилась поддержка форматов
  47. YUV (https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2191), поэтому
  48. пользователи этого окружения могут пропустить данные шаги.
  49. .. image:: images/wxedid-fullrgb.png
  50. Для разгона же вам нужно выбрать *DTD: Detailed Timing Descriptor*. У
  51. вас их может быть несколько, т.к. каждый из них работает для
  52. отдельного разрешения монитора. Вам нужно выбрать тот, у которого
  53. самое большое разрешение. Вы это поймете по строчкам *H-Active pix* и
  54. *V-Active lines*. После этого перейдите во вкладку *DTD Constructor* и
  55. постепенно увеличиваете значение *Pixel Clock* до нужной вам частоты
  56. монитора.
  57. .. image:: images/wxedid-pixel-clock.png
  58. В контекстном меню сохраняем изменения (*File-> Save EDID Binary*) и
  59. выходим из редактора.
  60. Дело осталось за малым, нужно подменить используемый ядром EDID файл.
  61. .. warning:: Следующие шаги нужно пропустить если вы используете
  62. закрытый драйвер NVIDIA. Читайте далее.
  63. Скопируем модифицированный файл из нашей домашней директории в
  64. ``/usr/lib/firmware/edid``::
  65. sudo mkdir -p /usr/lib/firmware/edid
  66. sudo cp -r ~/*.bin /usr/lib/firmware/edid/edid2.bin
  67. Чтобы ядро предпочитало использовать отредактированный файл EDID вместо
  68. стандартного, нам нужно указать специальный параметр ядра для модуля ``drm``:
  69. .. code-block:: shell
  70. :caption: ``sudo nano /etc/modprobe.d/drm.conf``
  71. options drm edid_firmware=edid/edid2.bin
  72. Также необходимо добавить файл ``/usr/lib/firmware/edid/edid2.bin`` в образы
  73. initramfs. Для этого редактируем файл ``/etc/mkinitcpio.conf`` и в строке
  74. ``FILES=()`` пишем следующее::
  75. FILES=(/usr/lib/firmware/edid/edid2.bin)
  76. После чего обновляем образы initramfs через команду ``sudo mkinitcpio
  77. -P``.
  78. Затем перезагружаемся и наслаждаемся новой плавностью картинки.
  79. .. warning:: Если вы используете закрытый драйвера NVIDIA, то параметр
  80. ядра ``drm.edid_firmware`` для вас просто не будет работать. Вместо
  81. него вы должны прописать параметр ``Option "CustomEDID"
  82. "HDMI-0:/home/ваше_имя_пользователя/edid.bin"`` (тип подключения
  83. меняете на требуемый) в ваш конфиг ``/etc/X11/xorg.conf``. Как
  84. можно понять, при этом разгон не будет работать в Wayland.