LINUX.ORG.RU

Телевизор-монитор, EDID и особенности дистрибутивов

 , , ,


1

2

Здравствуйте.

Использую телевизор Hisense, как монитор по HDMI. Он отдает не точную информацию о себе. Под Windows это обходится подменой monitor.inf с чужим edid (от Самсунга изначально)

Линуксы на свободных драйверах с ним не хотят разговаривать, как с 3840х2160@60 (только блоб nvidia сам это как-то делал)

На основе его железного EDID (снятого через i2c) и того Самсунгового EDID, спёртого из интернетов под Windows - сформировал свой, собственный, с указанием нужного и вырезанием ненужного.

С некоторыми приключениями, но на Ubuntu все-таки заработало - счастье есть.
Теперь и при загрузке не кашу показывает, а хорошую кратинку, и при старте lightdm правильно всё рисует, а при входе пользователя ещё и scale ему делаю - совсем всё прекрасно. Нормальные 4К с 60Гц для кин, которые выглядят как 1080p в интерфейсе. То что нужно.

Хотел повторить ту же процедуру на параллельно установленной Fedora. Делаю всё то же самое. Беру тот же самый hecmod.bin, который сформировал. Складываю в /lib/firmware/edid/. Прописываю в /etc/defult/grub строку drm.edid_firmware=HDMI-A-1:edid/hecmod.bin в параметры ядра, пересобираю initrd (тут есть различия, но не суть - результат один: этот bin успешно добавляется в ramfs).
Всё нормально подхватывается, edid подменяется.
Но.
Этот же самый edid в Fedora не даёт 3840х2160 - ни в 60, ни в 30. Вообще нет такого разрешения в xrandr.

У них разные парсеры? Надо делать разные edid для разных дистрибутивов?

Deleted

Вангую либо дрм ядреный разный либо меза.

mos ★★☆☆☆ ()

Всё нормально подхватывается, edid подменяется.

А как это проверено? Правильный ли EDID находится в /sys/class/drm/card0-HDMI-A-1/edid (или как у тебя там именован выход)?

Или поставь edid-decode и посмотри, что он говорит на этот файл. Все ли верно, сходится ли контрольная сумма, правильные ли параметры.

Zubok ★★★★★ ()
Последнее исправление: Zubok (всего исправлений: 1)
Ответ на: комментарий от Zubok

Да, вроде по всем показателям - всё сходится. Все суммы на месте. Все параметры устраивают и edid-decode, и parse-edid. Оба красивые. В dmesg отчеты об удачном разборе его. И при загрузке, и при откл./вкл. телевизора тоже переподхватывает.

Всё равно кажется, что где-то я напортачил. Сижу вот, перекладываю настройки edid туда-обратно, смотрю что получается. Пока получается только хуже сделать, чем был ночной вариант. А кажется что напортачил, потому что Ubuntu откуда-то все-таки берёт разрешения, которых точно нет edid. Или она может глядя на первый монитор, и видя на нем 1920х1200 - автоматом ещё и на второй монитор такое разрешение добавлять без спроса и вопреки edid?

Deleted ()
Ответ на: комментарий от Zubok

Вот кусок из лога Fedora:

(II) AMDGPU(0): EDID (in hex):
(II) AMDGPU(0):         00ffffffffffff0020a3210301000000
(II) AMDGPU(0):         0c190103805932780acf74a3574cb023
(II) AMDGPU(0):         09484c210800d1c081c0814081800101
(II) AMDGPU(0):         01010101010108e80030f2705a80b058
(II) AMDGPU(0):         8a00ba882100001e023a801871382d40
(II) AMDGPU(0):         582c4500ba882100001e000000fd0032
(II) AMDGPU(0):         4b0f873c000a202020202020000000fc
(II) AMDGPU(0):         0048454334304b3332310a2020200175
(II) AMDGPU(0):         02031cf2440304106123090707830100
(II) AMDGPU(0):         006a030c003000383c000000023a8018
(II) AMDGPU(0):         71382d40582c4500ba882100001e011d
(II) AMDGPU(0):         80d0721c1620102c2580c48e2100009e
(II) AMDGPU(0):         011d8018711c1620582c2500c48e2100
(II) AMDGPU(0):         009e0000000000000000000000000000
(II) AMDGPU(0):         00000000000000000000000000000000
(II) AMDGPU(0):         000000000000000000000000000000cb
(--) AMDGPU(0): HDMI max TMDS frequency 300000KHz
(II) AMDGPU(0): Printing probed modes for output HDMI-A-0
(II) AMDGPU(0): Modeline "1920x1080"x60.0  148.50  1920 2008 2052 2200  1080 1084 1089 1125 +hsync +vsync (
(II) AMDGPU(0): Modeline "1920x1080"x59.9  148.35  1920 2008 2052 2200  1080 1084 1089 1125 +hsync +vsync (
(II) AMDGPU(0): Modeline "1920x1080i"x60.0   74.25  1920 2008 2052 2200  1080 1084 1094 1125 interlace +hsy
(II) AMDGPU(0): Modeline "1920x1080i"x50.0   74.25  1920 2448 2492 2640  1080 1084 1094 1125 interlace +hsy
(II) AMDGPU(0): Modeline "1920x1080i"x59.9   74.18  1920 2008 2052 2200  1080 1084 1094 1125 interlace +hsy
(II) AMDGPU(0): Modeline "1280x1024"x60.0  108.00  1280 1328 1440 1688  1024 1025 1028 1066 +hsync +vsync (
(II) AMDGPU(0): Modeline "1280x960"x60.0  108.00  1280 1376 1488 1800  960 961 964 1000 +hsync +vsync (60.0
(II) AMDGPU(0): Modeline "1280x720"x60.0   74.25  1280 1390 1430 1650  720 725 730 750 +hsync +vsync (45.0 
(II) AMDGPU(0): Modeline "1280x720"x59.9   74.18  1280 1390 1430 1650  720 725 730 750 +hsync +vsync (45.0 
(II) AMDGPU(0): Modeline "1024x768"x60.0   65.00  1024 1048 1184 1344  768 771 777 806 -hsync -vsync (48.4 
(II) AMDGPU(0): Modeline "800x600"x60.3   40.00  800 840 968 1056  600 601 605 628 +hsync +vsync (37.9 kHz 
(II) AMDGPU(0): Modeline "720x480"x60.0   27.03  720 736 798 858  480 489 495 525 -hsync -vsync (31.5 kHz e
(II) AMDGPU(0): Modeline "720x480"x59.9   27.00  720 736 798 858  480 489 495 525 -hsync -vsync (31.5 kHz e
(II) AMDGPU(0): Modeline "640x480"x60.0   25.20  640 656 752 800  480 490 492 525 -hsync -vsync (31.5 kHz e
(II) AMDGPU(0): Modeline "640x480"x59.9   25.18  640 656 752 800  480 490 492 525 -hsync -vsync (31.5 kHz e

Вот это же место из лога Ubuntu:

(II) AMDGPU(0): EDID (in hex):
(II) AMDGPU(0): 	00ffffffffffff0020a3210301000000
(II) AMDGPU(0): 	0c190103805932780acf74a3574cb023
(II) AMDGPU(0): 	09484c210800d1c081c0814081800101
(II) AMDGPU(0): 	01010101010108e80030f2705a80b058
(II) AMDGPU(0): 	8a00ba882100001e023a801871382d40
(II) AMDGPU(0): 	582c4500ba882100001e000000fd0032
(II) AMDGPU(0): 	4b0f873c000a202020202020000000fc
(II) AMDGPU(0): 	0048454334304b3332310a2020200175
(II) AMDGPU(0): 	02031cf2440304106123090707830100
(II) AMDGPU(0): 	006a030c003000383c000000023a8018
(II) AMDGPU(0): 	71382d40582c4500ba882100001e011d
(II) AMDGPU(0): 	80d0721c1620102c2580c48e2100009e
(II) AMDGPU(0): 	011d8018711c1620582c2500c48e2100
(II) AMDGPU(0): 	009e0000000000000000000000000000
(II) AMDGPU(0): 	00000000000000000000000000000000
(II) AMDGPU(0): 	000000000000000000000000000000cb
(--) AMDGPU(0): HDMI max TMDS frequency 300000KHz
(II) AMDGPU(0): Printing probed modes for output HDMI-A-0
(II) AMDGPU(0): Modeline "3840x2160"x60.0  594.00  3840 4016 4104 4400  2160 2168 2178 2250 +hsync +vsync (135.0 kHz eP)
(II) AMDGPU(0): Modeline "3840x2160"x59.9  593.41  3840 4016 4104 4400  2160 2168 2178 2250 +hsync +vsync (134.9 kHz e)
(II) AMDGPU(0): Modeline "1920x1200"x60.0  594.00  1920 4016 4104 4400  1200 2168 2178 2250 +hsync +vsync (135.0 kHz e)
(II) AMDGPU(0): Modeline "1920x1080"x60.0  148.50  1920 2008 2052 2200  1080 1084 1089 1125 +hsync +vsync (67.5 kHz e)
(II) AMDGPU(0): Modeline "1920x1080"x59.9  148.35  1920 2008 2052 2200  1080 1084 1089 1125 +hsync +vsync (67.4 kHz e)
(II) AMDGPU(0): Modeline "1600x1200"x60.0  594.00  1600 4016 4104 4400  1200 2168 2178 2250 +hsync +vsync (135.0 kHz e)
(II) AMDGPU(0): Modeline "1680x1050"x60.0  594.00  1680 4016 4104 4400  1050 2168 2178 2250 +hsync +vsync (135.0 kHz e)
(II) AMDGPU(0): Modeline "1280x1024"x60.0  108.00  1280 1328 1440 1688  1024 1025 1028 1066 +hsync +vsync (64.0 kHz e)
(II) AMDGPU(0): Modeline "1440x900"x60.0  594.00  1440 4016 4104 4400  900 2168 2178 2250 +hsync +vsync (135.0 kHz e)
(II) AMDGPU(0): Modeline "1280x960"x60.0  108.00  1280 1376 1488 1800  960 961 964 1000 +hsync +vsync (60.0 kHz e)
(II) AMDGPU(0): Modeline "1280x800"x60.0  594.00  1280 4016 4104 4400  800 2168 2178 2250 +hsync +vsync (135.0 kHz e)
(II) AMDGPU(0): Modeline "1280x720"x60.0   74.25  1280 1390 1430 1650  720 725 730 750 +hsync +vsync (45.0 kHz e)
(II) AMDGPU(0): Modeline "1280x720"x59.9   74.18  1280 1390 1430 1650  720 725 730 750 +hsync +vsync (45.0 kHz e)
(II) AMDGPU(0): Modeline "1024x768"x60.0   65.00  1024 1048 1184 1344  768 771 777 806 -hsync -vsync (48.4 kHz e)
(II) AMDGPU(0): Modeline "800x600"x60.3   40.00  800 840 968 1056  600 601 605 628 +hsync +vsync (37.9 kHz e)
(II) AMDGPU(0): Modeline "720x480"x60.0   27.03  720 736 798 858  480 489 495 525 -hsync -vsync (31.5 kHz e)
(II) AMDGPU(0): Modeline "720x480"x59.9   27.00  720 736 798 858  480 489 495 525 -hsync -vsync (31.5 kHz e)
(II) AMDGPU(0): Modeline "640x480"x60.0   25.20  640 656 752 800  480 490 492 525 -hsync -vsync (31.5 kHz e)
(II) AMDGPU(0): Modeline "640x480"x59.9   25.18  640 656 752 800  480 490 492 525 -hsync -vsync (31.5 kHz e)

Оба читают один и тот же edid. Буква-в-букву. Только в Ubuntu из него получаются Modeline 3840x2160, а в Fedora нет.
Зато Ubuntu откуда-то выдумывает Modeline 1920x1200, а честная Fedora честно ничего не выдумывает, чего нет в edid.

Deleted ()
Ответ на: комментарий от Deleted

И можно ли полные логи выложить? Вдруг там чего интересного есть.

Zubok ★★★★★ ()
Ответ на: комментарий от Zubok

Ubuntu 18

$ uname -a
Linux omsiz97 4.15.0-13-generic #14-Ubuntu SMP Sat Mar 17 13:44:27 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

$ sudo X -version
X.Org X Server 1.19.6
Release Date: 2017-12-20
X Protocol Version 11, Revision 0
Build Operating System: Linux 4.4.0-101-generic x86_64 Ubuntu
Current Operating System: Linux omsiz97 4.15.0-13-generic #14-Ubuntu SMP Sat Mar 17 13:44:27 UTC 2018 x86_64
Kernel command line: BOOT_IMAGE=/boot/vmlinuz-4.15.0-13-generic.efi.signed root=UUID=afab467f-1b69-46a7-9e82-76d74b7bb72b ro drm.edid_firmware=HDMI-A-1:edid/hecmod.bin
Build Date: 13 March 2018  10:09:13AM
xorg-server 2:1.19.6-1ubuntu3 (For technical support please see http://www.ubuntu.com/support) 
Current version of pixman: 0.34.0
	Before reporting problems, check http://wiki.x.org
	to make sure that you have the latest version.

Fedora 27

$ uname -a
Linux omsiz97.berg 4.15.14-300.fc27.x86_64 #1 SMP Thu Mar 29 16:13:44 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

$ sudo X -version
X.Org X Server 1.19.6
Release Date: 2017-12-20
X Protocol Version 11, Revision 0
Build Operating System:  4.14.11-300.fc27.x86_64 
Current Operating System: Linux omsiz97.berg 4.15.14-300.fc27.x86_64 #1 SMP Thu Mar 29 16:13:44 UTC 2018 x86_64
Kernel command line: BOOT_IMAGE=/boot/vmlinuz-4.15.14-300.fc27.x86_64 root=UUID=cea26e78-9e6e-474b-8431-e9c22ef57e41 ro drm.edid_firmware=HDMI-A-1:edid/hecmod.bin
Build Date: 13 February 2018  05:19:13PM
Build ID: xorg-x11-server 1.19.6-5.fc27 
Current version of pixman: 0.34.0
	Before reporting problems, check http://wiki.x.org
	to make sure that you have the latest version.

Там ещё и parse-edid всё неоднозначно, оказывается. Тоже по-разному рисуют в Fedora и в Ubuntu. Правда, возможно, просто версии разные. Сижу вот код читаю. Увлекательно.

//hehe... there's been at least 2 bugs in the old parse-edid the whole time - somebody caught the htimings one, and I just caught two problems right here...

Deleted ()
Ответ на: комментарий от Zubok

Поскольку X одинаковый, то и amdgpu-18.0.1-1 у обоих(обеих?) одинаковый.

Вот Mesa разная.

Ubuntu 18:

$ inxi -Gxx
Graphics:  Card: Advanced Micro Devices [AMD/ATI] Baffin [Polaris11] bus-ID: 02:00.0 chip-ID: 1002:67ff
           Display Server: x11 (X.Org 1.19.6 ) drivers: amdgpu (unloaded: modesetting)
           Resolution: 1920x1200@59.95hz, 3840x2160@60.00hz
           OpenGL: renderer: Radeon RX 550 Series (POLARIS11 / DRM 3.23.0 / 4.15.0-13-generic, LLVM 6.0.0)
           version: 4.5 Mesa 18.0.0-rc5 (compat-v: 3.0) Direct Render: Yes

Fedora 27:

$ inxi -Gxx
Graphics:  Card: Advanced Micro Devices [AMD/ATI] Baffin [Radeon RX 550 640SP / RX 560]
           bus-ID: 02:00.0 chip-ID: 1002:67ff
           Display Server: x11 (X.org 119.6 ) driver: amdgpu Resolution: 1920x1200@59.95hz, 1920x1080@60.00hz
           OpenGL: renderer: Radeon RX 550 Series (POLARIS11 / DRM 3.23.0 / 4.15.14-300.fc27.x86_64, LLVM 5.0.1)
           version: 4.5 Mesa 17.3.6 (compat-v: 3.0) Direct Render: Yes

Собственно 3840x2160@60.00hz vs 1920x1080@60.00hz.

Честно сказать, мне кажется, уже настал тот момент, когда «да и ладно». Вроде я нигде не ошибся в edid. Жаль в Solus вообще отключен флаг ядра, позволяющий подгружать edid, не проверить там. А Fedora... ну, пойду, наверное 28ю ставить чтоли.

Deleted ()
Ответ на: комментарий от Deleted

Ну вот не знаю. Вот у людей, похоже, такая же проблема. И дело в ядреном драйвере.

https://bugs.freedesktop.org/show_bug.cgi?id=101026

https://community.amd.com/thread/200952

http://blog.stuffedcow.net/2017/08/amd-polaris-rx550-linux/

AMD display code (DC/DAL)

Although the amdgpu module in a sufficiently-new mainline kernel works, it is missing some new features. Last I heard, some of these features already exist in the form of some patches (named DC or DAL) AMD has been trying to merge into the mainline kernel. These features include HDMI 2.0 (to support high-resolution displays over HDMI), audio over HDMI and DisplayPort, and display output for the new Vega GPUs.

Without DC, I could only use my 4K display at 3840×2160 30Hz over HDMI (3840×2160 60Hz over DisplayPort is not affected and works even without the DC/DAL patches).

Zubok ★★★★★ ()
Ответ на: комментарий от Zubok

Да, что-то не то делаю. Обновил до F8. Ничего не поменялось. И ядро свежее, и Mesa 18 теперь, а 4к всё никак не выходит в 60Гц.

Итого, из четырех моих параллельных линуксов:
В Ubuntu 18 и в SUSE Tumbleweed - работает, как прошу, всё прекрасно и замечательно.
В Fedora не работает.
В Solus нет возможности проверить. Там ребята феншуй в коде наводят, им некогда ядра собирать с флагами как у всех больших дядек.

Не и работает, и не работает. Проехали и забыли.

Спасибо вам за участие.

Deleted ()
Ответ на: комментарий от Deleted

В разных дистрибутивах даже одинаковые версии софта не гарантируют что всё будет одинаково. Учитывать надо всё начиная с ядер. А уж ядра в дистрибутивах зачастую оооочень разные. Точнее говоря основа то да одна - ванильное ядро. А вот то что кроме этой общей ванильной основы вот оно может добавлять столько случайных как положительных так и отрицательных эффектов.

init_6 ★★★★★ ()
Ответ на: комментарий от Zubok

Пробежал по интернетским исходникам ядер - вроде у всех, даже у Solus, стоит этот флаг сборки ядра в конфигурации.

На freedesktop говорят про staging, т.е. про «собери-себе-сам-ядро», а не про дистрибутивы для домашнего десктопа, в которые почти наверняка включают все новомодные фишки, какие только можно, на всякий случай.

Тоже думаю потом поставить себе какой-нибудь из Ъ-дистрибутивов, в котором, как в старых FreeBSD, на каждую хотелку - включай флаг и пересобирай ядро. Там будет актуально посмотреть на эту опцию. Но пока не созрел.

Deleted ()
Ответ на: комментарий от steemandlinux

О, нет, пожалуйста, давайте не будем всё сначала начинать. Извините.
Тут и так уже целый роман написан про карты и прочее.
Zubok очень помог в понимании где/что. Всё обсудили, всё посмотрели, всё попробовали. Тему закрыли. На нет и суда нет. На самом деле - то что Fedora в 1920х1080 выходит при загрузке - тоже хорошо. А то с железным edid из телевизора она совсем какие-то ужасные 2050х2160 рисовала.

Deleted ()
Ответ на: комментарий от Deleted

Еще про одну опцию говорится: CONFIG_DRM_AMD_DC_PRE_VEGA=y

Я даже уверен, что в этом дело. В Fedora в ядре 4.15 опция выключена, а в Arch и в Ubuntu 18.04 (то же ядро 4.15) опция CONFIG_DRM_AMD_DC_PRE_VEGA включена (у тебя как раз pre-VEGA):

#
# Display Engine Configuration
#
CONFIG_DRM_AMD_DC=y
CONFIG_DRM_AMD_DC_PRE_VEGA=y

Эта опция atomic modesetting реализует. И почти все сообщают, что 4k начинает работать только после включения DC.

Zubok ★★★★★ ()
Последнее исправление: Zubok (всего исправлений: 3)
Ответ на: комментарий от Zubok

Эта опция atomic modesetting реализует.

Вот слово modesetting меня, действительно, сегодня засмущало.

Если еще раз посмотреть тут несколько сообщений выше - в выводе inxi у Fedora «driver: amdgpu», а у Ubuntu «drivers: amdgpu (unloaded: modesetting)».
Так вот я тут и подумал - что и выдуманные 1920х1200, и 3840х2160 в Ubuntu - это как раз modesetting делал. Сначала он промодосетил, а потом уже амд пришел на готовое... Ну... Боюсь ерунду говорю.. Но как-то так..

Немного поковырялся с этим. Безуспешно. Ни из Ubuntu его вытащить полностью не смог, чтоб проверить. Ни в Fedora, наоборот, втащить не получилось.

Deleted ()
Ответ на: комментарий от Zubok

Да, вы оказались совершенно правы.
Пересобрал ядро Fedora с включенным CONFIG_DRM_AMD_DC_PRE_VEGA=y, и всё заработало.

Ей-богу, сам бы плюнул и забыл. Не так велика нужда. Сугубо спортивный интерес.

Но неловко стало, что ваше время тратил, поэтому и пересобрал.

$ uname -a
Linux omsiz97.berg 4.16.0-300.toxo1.fc28.x86_64 #1 SMP Sat Apr 7 01:45:17 +07 2018 x86_64 x86_64 x86_64 GNU/Linux
$ xrandr
Screen 0: minimum 320 x 200, current 5760 x 2160, maximum 16384 x 16384
DisplayPort-0 connected primary 1920x1200+0+0 (normal left inverted right x axis y axis) 518mm x 324mm
   1920x1200     59.95*+
   1920x1080     60.00  
   1600x1200     60.00  
   1680x1050     59.95  
   1280x1024     60.02  
   1440x900      59.95  
   1280x960      60.00  
   1280x800      59.95  
   1280x720      59.95  
   1024x768      60.00  
   800x600       60.32  
   640x480       59.94  
   720x400       70.08  
HDMI-A-0 connected 3840x2160+1920+0 (normal left inverted right x axis y axis) 698mm x 392mm
   3840x2160     60.00*+  59.94  
   1920x1200     60.00  
   1920x1080     60.00    59.94  
   1600x1200     60.00  
   1680x1050     60.00  
   1280x1024     60.02  
   1440x900      60.00  
   1280x960      60.00  
   1280x800      60.00  
   1280x720      60.00    59.94  
   1024x768      60.00  
   800x600       60.32  
   720x480       60.00    59.94  
   640x480       60.00    59.94

3840x2160 60.00*+ 59.94

Deleted ()

Использую телевизор Hisense, как монитор по HDMI. Он отдает не точную информацию о себе. Под Windows это обходится подменой monitor.inf с чужим edid (от Самсунга изначально)

Прошей нужный EDID в монитор один раз и для всех ОС сразу: https://github.com/ChalkElec/write-edid
Предварительно номер шины можно узнать пробежавшись i2cdump, ну и поставить размер 128+ если необходимо

frame ★★★ ()
Ответ на: комментарий от frame

Порча EDID (на флеше), если что - показатель плохого питания контроллера

frame ★★★ ()
Ответ на: комментарий от frame

Спасибо. Да, пытался. Если память не изменяет - не этот скрипт, другой с GitHub, на python был. Но код там примерно такой же. Всё равно в итоге i2cset, на каком языке его не вызывай.
Не получилось у меня.

Думал попытаться прям байтики в файле-прошивке всего телевизора поправить. Теоретически могло бы сработать, наверное: найти последовательность байт EDID, которую он сейчас отдаёт, заменить на нужные байтики от EDID который хочу, и обратно обновить его OS (а у него там OperaTV) встроенными средствами.

Но в явном виде таких байтиков не нашел в его upgrade_loader.pkg файлах. Возможно, это не RAW - запаковано чем-то. Не смог разобраться, что там за алгоритм паковки.

Да и потом - даже если я не наврал, и оно действительно где-то в прошивке у него - прилетят обновления по сети к нему, и он же всё равно обратно перепишет этот колхоз на то, что с завода шьют.

В общем - с той стороны пытался, но не осилил. С принимающей стороны подменять как-то проще вышло.

Deleted ()
Ответ на: комментарий от frame

Тоже имел проблемы с edid монитора . Перешить не смог . Поясните пожалуйста , ножка флешки стоявшей в мониторе 24с02 WP (Write Protect) подключена к основной м.с. - контроллеру , то есть он управляет доступом к записи . Там надо входить в инженерное меню монитора ? Или каким образом это всё шьётся ?

anonymous ()
Ответ на: комментарий от anonymous

Я никуда не входил, т.к. на момент прошивки монитор (W2284F-PF) вообще не включался. Загрузился с другого монитора, подключённого по DisplayPort, подключил пациента по DVI и начал снимать данные через i2cdump с шин 0-8 (портов видеокарты) методом перебора: с одного из них вышли данные по Dell, на другом пошли битые данные DVI-порта LG, куда и залил корректную прошивку через write-edid.
Тут важен момент: у каждого вывода монитора свой EDID, т.е. для VGA один, для DVI другой и т.п., т.е. при прошивке нужно подключать и шить именно тот вывод, который требуется.
Конкретно в моём случае проблема была в том, что высохла 5v обвязка (электролиты) платы, что портило первые 16 байт флеша даже после прошивки, поэтому рекомендую заменить все электролиты по мере возможности

frame ★★★ ()
Ответ на: комментарий от Deleted

Контроллер EDID сидит на выходах монитора, не думаю, что его кто-то трогает при обновлении основной прошивки.

В общем - с той стороны пытался, но не осилил. С принимающей стороны подменять как-то проще вышло.

На любителя, да. Хотя как по мне - лучше один раз зашить в железо, скажем, те же микрокоды CPU через UEFI Tool, чем надеяться на корректность конфигурации ОС

frame ★★★ ()
Ответ на: комментарий от anonymous

Так и у меня было, главное - добудь корректный EDID или поправь редактором существующий для нужного порта

frame ★★★ ()
12 июля 2018 г.
Ответ на: комментарий от Zubok

При этом в Fedora эту опцию включат только в 4.17

Докладываю. Пришло ядро 4.17. Теперь моё китайское 4К работает на 60Гц само в fedora, как и запрошено в edid.
Да, включили CONFIG_DRM_AMD_DC_PRE_VEGA в drivers/gpu/drm/adm/display/Kconfig стоит «default y».

Там вообще как-то очень много изменений в коде вокруг amdgpu, как мне показалось. По крайней мере amdgpu_device.c прям не узнать. )

Deleted ()

Кто в современных 4К ТВ шарит?

У них матрицы физически поддерживают 60Гц?
Сколько не смотрю спеки на всякие ЛыЖы, Самы - везде приписывают 50Гц.

Кто-то может на пальцах пояснить?
Или таки оно электроникой хавает на 60, а в матрицу 50 выдаёт?
Я, честно говоря, запутался.

50 или 60Гц я на глаз отличаю, оно таки блымает, протестировано на коробочке с андроидом, у которой настраиваются параметры видео выхода.

\\ возможно в этом топике я уже это спрашивал?
\\ ничего страшного, ответ всё равно забыл :)
^^^ пролистал - не спрашивал.

Deleted ()
Последнее исправление: RTP (всего исправлений: 2)

На ноутбуке у меня какой-то странный дефект — почти незаметно мерцает матрица, если смотреть под углом. На некоторых дистрах мерцало (Федора), на некоторых (Арч, Убунту) нет.

После долгого расследования выяснил, что дело в ядерном драйвере, а конкретно в DC. Причём до 4.17 должен был быть включён флаг и для pre-Vega, но после — хорошо работает и без него. Часы пересборок ядра не ушли впустую.

Вот так с помощью Линукса можно починить очевидно аппаратную проблему.

Thetan ★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.