AMDGPU: патчим edid.bin под свой монитор-тв, как убрать розовый экран и оставить только RGB

Question

Выполняем команды в консоли под root:

sudo -i

Ищем файл для корректировки:

find /sys/devices/pci*/*/*/*/card*/*HDMI* -name «*edid*»

Получаем

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

Далее копируем «edid» для редактирования в файл edid.bin:

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

Устанавливаем «wxedid», в Debian-Ubuntu установка элементарна:

apt-get install wxedid

Запускаем «wxedit» и меняем в 3 блоках 4 параметра:

SPF: Supported features — vsig_format = 0b00
CHD: CEA-861 header — YCbCr 4:2:2 & YCbCr 4:4:4 = 0
VSD: Vendor Specific Data Block — DC_Y444 = 0

После чего в меню wxedit-option выполняете «Assemble EDID» и сохраняете в файл, я его сохранил в тот самый «edid.bin».

Копируем патченный файл в папку firmware:

sudo cp ~/edid.bin /lib/firmware/

Редактируем grub.cfg:

nano /etc/default/grub

Добавляем в строчку «GRUB_CMDLINE_LINUX_DEFAULT=» после «quiet» «drm.edid_firmware=edid.bin»

Получается примерно такая строка:

GRUB_CMDLINE_LINUX_DEFAULT=»quiet drm.edid_firmware=edid.bin»

Обновляем GRUB:

update-grub

А теперь шаманим с initramfs-hook:

nano /etc/initramfs-tools/hooks/edid

вставляем:

#!/bin/sh
PREREQ=»»
prereqs()
{
echo «$PREREQ»
}

case $1 in
prereqs)
prereqs
exit 0
;;
esac

. /usr/share/initramfs-tools/hook-functions
# Begin real processing below this line
mkdir -p «${DESTDIR}/lib/firmware/edid»
cp -a /lib/firmware/edid.bin «${DESTDIR}/lib/firmware/edid.bin»
exit 0

ставим права на файл:

chmod +x /etc/initramfs-tools/hooks/edid

обнвляем initramfs:

update-initramfs -u

УРА У НАС ПОЛУЧИЛОСЬ 🙂

0
root 1 месяц 2021-08-19T12:00:11+03:00 0 Answers 4 views 0

Leave an answer

Browse
Browse

Captcha Click on image to update the captcha .