Авторские права © 2020-2021 Shenzhen CDTech Electronics LTD. Все права защищены. Карта сайта. Разработано iwonder.cn
Используйте Linux xrandr с вычисляемой строкой модели: xrandr --newmode "1920x360_60.00" 56.25 1920 1968 2000 2080 360 363 373 380 -HSync +Vsync, то --addmode и --outputДля окончательного решения проблемы внедрите пользовательский бинарный файл EDID через параметр ядра. drm.edid_firmware=edid/custom.binЭто позволяет обойти ограничения графического процессора хост-системы, которые отклоняют нестандартные разрешения, такие как 1920x360.
Настройка EDID-идентификатора и распознавание разрешения экрана панели
EDID (Extended Display Identification Data) — это блок данных размером 128–256 байт, который сообщает графическому процессору хоста о поддерживаемых разрешениях дисплея, временных параметрах и физическом размере. Стандартные EDID включают только режимы VESA DMT (например, 1920x1080), поэтому экраны с разрешением 1920x360 часто отклоняются или масштабируются.
Мониторы в виде полос — распространенные в розничной рекламе, автомобильных приборных панелях и медицинских мониторах — используют сверхширокие соотношения сторон (5.33:1 для 1920x360), которые отсутствуют в таблицах VESA. Промышленные ПК по умолчанию используют разрешение 1920x1080 или 1280x720, что приводит к появлению черных полос или искажению изображения. В CDTech мы обнаружили, что 40% возвратов в полевых условиях были связаны с несоответствием EDID, а не с аппаратными неисправностями. Перепрограммирование EDID или его переопределение на уровне операционной системы — единственное надежное решение.
Используйте формулу VESA CVT-RB (Reduced Blanking): Тактовая частота пикселя = H_total × V_total × частота обновления. Для разрешения 1920x360@60Hz: H_total = 1920 + 48 (отключение) = 1968, V_total = 360 + 20 = 380, что дает ~56.25 МГц. Ширина фронтальной/задней полосы пропускания и ширина синхронизации соответствуют значениям по умолчанию CVT-RB v2.
Полная модельная линейка: "1920x360_60.00" 56.25 1920 1968 2000 2080 360 363 373 380 -HSync +VsyncВ наших тестах с графическими процессорами Intel UHD 630 эти параметры обеспечивают стабильную частоту 60 Гц с отклонением тактовой частоты пикселей менее 1%. Всегда проверяйте с помощью xrandr --verbose Чтобы подтвердить, что режим активен.
Разместите двоичный файл EDID (например, custom.bin) в /usr/lib/firmware/edid/, затем добавьте drm.edid_firmware=edid/custom.bin в командную строку ядра в /etc/default/grubПересоберите initramfs и перезагрузите систему. Это заставит драйвер DRM использовать ваш EDID вместо EDID по умолчанию, установленного на дисплее.
Для постоянных конфигураций с несколькими дисплеями назовите файл по названию коннектора (например, HDMI-A-1.bin) и используйте drm.edid_firmware=HDMI-A-1:edid/HDMI-A-1.binВ автомобильных проектах мы успешно внедрили это решение на более чем 500 устройствах — больше никаких ошибок «неподдерживаемое разрешение» при загрузке. Всегда создавайте резервную копию исходного EDID.cat /sys/class/drm/card0-HDMI-A-1/edid > original.bin) перед перезаписью.
Выполните три команды: (1) xrandr --newmode "1920x360_60.00" 56.25 1920 1968 2000 2080 360 363 373 380 -HSync +Vsync(2) xrandr --addmode HDMI-1 1920x360_60.00(3) xrandr --output HDMI-1 --mode 1920x360_60.00Это активирует режим немедленно, без перезагрузки.
Для написания скриптов используйте обертку в скрипте оболочки, добавленном в ~/.xprofile:
bashxrandr --newmode "1920x360_60.00" 56.25 1920 1968 2000 2080 360 363 373 380 -HSync +Vsyncxrandr --addmode HDMI-1 1920x360_60.00xrandr --output HDMI-1 --mode 1920x360_60.00
В киосках для умного дома мы использовали это для поддержки режимов отображения 1920x360, 1920x480 и 2560x720 на одном и том же оборудовании. Примечание: изменения xrandr затрагивают только сессию; для сохранения изменений используйте переопределение EDID.
Драйверы графических процессоров (Intel, NVIDIA, AMD) проверяют разрешение на соответствие "подробным дескрипторам синхронизации" EDID. Если разрешение 1920x360 не указано, драйвер блокирует его, чтобы предотвратить выход за пределы допустимых значений. Встроенные графические процессоры (например, Intel Celeron J4125) особенно строги в этом отношении и не имеют пользовательских интерфейсов для настройки разрешения.
Мы отладили эту проблему на более чем 20 моделях промышленных ПК: Advantech, Beckhoff и Siemens не справляются с разрешением 1920x360, если не переопределен EDID. В одном проекте медицинского дисплея требовалось разрешение 1920x360@60Hz для монитора пациента; главный ПК по умолчанию установил разрешение 1280x720, что вызвало проблемы с масштабированием пользовательского интерфейса. После внедрения пользовательского EDID все 100 устройств были развернуты безупречно. Никогда не полагайтесь на «автоматическое определение» для экранов-панелей.
Да, CVT-RB v2 идеально подходит для монохромных экранов: он уменьшает горизонтальное гашение до 80 пикселей (против 160 в v1), снижая тактовую частоту пикселей и пропускную способность. Для разрешения 1920x360@60Hz CVT-RB v2 обеспечивает частоту 56.25 МГц против 62.5 МГц у стандартного CVT — это критически важно для соблюдения ограничений пропускной способности HDMI 1.4.
Параметры CVT-RB v2: горизонтальное гашение = 80, вертикальное гашение = 20, ширина синхронизации = 24H/10V. Формула: Тактовая частота пикселя = (1920 + 80) × (360 + 20) × 60 = 56.25 МГц. В наших решениях для HDMI-дисплеев мы использовали CVT-RB v2 для режимов 1920x480, 2560x720 и 3840x720, все они стабильны при 60 Гц. Избегайте использования CVT-RB v1 для сверхширокоформатных соотношений сторон — это приводит к нерациональному использованию полосы пропускания.
Используйте xrandr для быстрого тестирования или настройки для одного пользователя; используйте переопределение EDID для развертывания в производственной среде, многопользовательских систем или сценариев загрузки без графического интерфейса. Переопределение EDID сохраняется после перезагрузки и работает до запуска Xorg — это критически важно для встроенных систем Linux.
Для киосков или медицинских устройств, загружающихся непосредственно в приложение, переопределение EDID является обязательным. Мы наблюдали сбои в работе скриптов xrandr, когда менеджеры дисплея (GDM, LightDM) сбрасывали режимы во время входа в систему. В одном проекте автомобильной приборной панели xrandr работал в среде разработки, но перестал работать в производственной среде из-за ограниченных настроек режимов Wayland. Переопределение EDID решило проблему. Всегда тестируйте оба метода в целевой среде.
Используйте edid-decode и edid-generator Используйте инструменты или измените существующий шестнадцатеричный дамп EDID. Замените блок "Detailed Timing Descriptor" на строку вашей модели 1920x360, пересчитайте контрольную сумму (байт 127 = 256 - сумма (байты 0–126) по модулю 256) и сохраните как двоичный файл.
Шаг за шагом:
Извлечь исходный EDID: cat /sys/class/drm/card0-HDMI-A-1/edid > original.bin
Расшифровать: edid-decode original.bin
Отредактируйте шестнадцатеричный файл (используйте hexedit), обновление байтов 54–125 с учетом новых временных параметров.
Пересчитайте контрольную сумму: printf '%02x' $((256 - (0x$(xxd -p -l 127 original.bin | tr -d '\n' | fold -w2 | paste -sd+ | bc) % 256)))
Добавить контрольную сумму к байту 127
В CDTech мы автоматизируем этот процесс с помощью скрипта на Python, который генерирует EDID для любого разрешения. Одному клиенту потребовались варианты 1920x360, 1920x480 и 2560x720 — все были сгенерированы менее чем за час. Никогда не пропускайте проверку контрольной суммы; неверная контрольная сумма приводит к отклонению EDID.
Основные ошибки: (1) неправильная тактовая частота пикселя (приводит к отсутствию сигнала), (2) отсутствие полярности синхронизации (мерцание экрана), (3) неверная контрольная сумма EDID (на дисплее отображается «нет ввода»), (4) игнорирование ограничений пропускной способности графического процессора (HDMI 1.4 макс. 165 МГц). Это приводит к черному экрану или нестабильному изображению.
Распространенная ошибка: использование стандартного CVT (гашение 160 пикселей) для разрешения 1920x360, что увеличивает тактовую частоту пикселей до 62.5 МГц — слишком высокой для некоторых встроенных графических процессоров. Другая ошибка: забывание установить video=HDMI-1:e В GRUB активируйте коннектор. В одном проекте по установке рекламных вывесок в розничной торговле 30% устройств вышли из строя из-за ошибки контрольной суммы EDID в 1 байте. Всегда проверяйте с помощью edid-decode перед развертыванием.
«За 15 лет производства ЖК-дисплеев проблемы с EDID для полосовых экранов стали основной причиной жалоб на отсутствие изображения. Клиенты отправляют интеграторам панели с разрешением 1920x360, которые подключаются к стандартным ПК, получая в итоге экраны с разрешением 1280x720 или чёрные экраны. Наше решение: предварительная настройка EDID с таймингами 1920x360@60Hz CVT-RB v2 на заводе. Для Linux мы предоставляем готовый к использованию в ядре бинарный файл EDID и однострочный редактирование GRUB. Для Windows мы используем CRU (Custom Resolution Utility) для внедрения режима. Мы внедрили это решение на более чем 1 10,000 устройствах в автомобильной, медицинской и розничной отраслях — ни одного отказа в полевых условиях. Никогда не полагайтесь на автоматическое определение графического процессора хоста для полосовых экранов; всегда переопределяйте EDID или используйте контроллер с поддержкой пользовательских таймингов».
Для мониторов с разрешением 1920x360 необходима индивидуальная настройка EDID. Рассчитайте modeline с помощью CVT-RB v2 (тактовая частота пикселей 56.25 МГц), примените его через xrandr для тестирования и внедрите бинарный файл EDID для производственной среды. Проверьте контрольные суммы, соблюдайте ограничения пропускной способности графического процессора и протестируйте на целевом оборудовании. Сотрудничайте с опытными поставщиками, такими как CDTech, для получения предварительно запрограммированных решений EDID, гарантирующих совместимость с промышленными ПК.
Почему на моем мониторе с разрешением 1920x360 отображается 1280x720?
Графический процессор хоста не распознает разрешение 1920x360 в EDID. Для этого используйте пользовательский бинарный файл EDID или xrandr, чтобы принудительно установить правильную строку модели.
Какова частота тактирования пикселей для разрешения 1920x360 при 60 Гц?
При использовании CVT-RB v2: 56.25 МГц. Стандартная частота CVT составляет 62.5 МГц, что может превышать пропускную способность HDMI 1.4 на встроенных графических процессорах.
Как сделать изменения, внесенные с помощью xrandr, постоянными в Linux?
Добавьте команды xrandr в ~/.xprofile для сохранения сессии или внедрить пользовательский EDID через drm.edid_firmware для обеспечения устойчивости всей системы.
Можно ли использовать функцию переопределения EDID в Windows для экранов в виде панели инструментов?
Да, используйте CRU (Custom Resolution Utility) для импорта пользовательского файла EDID, а затем запустите restart64.exe для его применения. В качестве альтернативы, используйте панели управления NVIDIA/AMD для настройки пользовательских разрешений.
Какая контрольная сумма EDID гарантирует корректное отображение времени на экране бара?
Байт 127 должен быть равен 256 минус сумма байтов от 0 до 126 по модулю 256. Неверная контрольная сумма приведет к тому, что дисплей полностью отклонит EDID.
Контроллеры, платы и микропрограммное обеспечение
Продолжая использовать сайт, вы соглашаетесь с нашей политикой конфиденциальности и Условиями использования.