Вопрос или проблема
Недавно я купил LCD-панель для устройства отображения на Raspberry Pi, которое я создаю. Raspberry Pi выводит HDMI-видео на драйвер дисплея для панели. Он выводит 1366x768 @ 60hz
.
Проблема в том, что примерно на 800 пикселей слева появляется странный оранжево-синий эффект размытости, а затем экран полностью повторяет последние 50-100 пикселей. Это также происходит, когда я пытаюсь использовать его в качестве второго монитора на своем ноутбуке с Ubuntu. Когда я использую его как второй монитор на Windows, этой проблемы не возникает, хотя в Windows также указано, что выводится 1366x768 @ 60hz
. Вот изображение:
Секция с магентовым квадратом вокруг нее — это место, где наблюдается размытость оранжевого и синего. Секция с циановым квадратом — это место, где полностью повторяется конец изображения экрана (обратите внимание на два X в верхнем правом углу окна просмотра изображений). Кто-нибудь когда-либо видел что-то подобное? Что Windows отправляет на драйвер дисплея, чего не делают операционные системы Linux?
Похоже, что экран требует настраиваемых таймингов или настраиваемого дисплея в дереве устройств.
Пример из источника 2 для Linux devicetree.dts:
/* MXC frame buffer on HDMI, RGB24, разрешение 1920x1080 на 60MHz, 32 бита на цвет, использовать внутренние часы как pixclk */
/* (c) 2020 Digi International Inc. Все права защищены. */
mxcfb1: fb@0 {
совместимый = "fsl,mxc_sdc_fb";
disp_dev = "hdmi";
interface_pix_fmt = "RGB24";
mode_str ="1920x1080M@60";
default_bpp = <32>;
int_clk = <0>;
late_init = <0>;
status = "okay";
};
Пример из источника 1 для нового Pi config.txt:
# Устанавливает разрешение дисплея 800x480 на 60Hz для обоих HDMI-портов с конкретными параметрами времени
# (c) 2024 Newhaven Display International. Все права защищены.
[HDMI:0]
hdmi_timings=800 0 40 24 72 480 0 13 3 29 0 0 0 60 0 32000000 6
[HDMI:1]
hdmi_timings=800 0 40 24 72 480 0 13 3 29 0 0 0 60 0 32000000 6
Ответ или решение
Проблема с «призраками» пикселей на дисплее: Анализ на Linux и Windows
Введение
Недавно вы приобрели LCD-панель для вашего проекта на базе Raspberry Pi, и вы столкнулись с проблемой отображения пикселей. Ваше устройство выводит изображение через HDMI при разрешении 1366×768 и частоте 60 Гц. Однако вы заметили неоднородности в отображении на Linux, которые не появляются в Windows. В этой статье мы подробно рассмотрим возможные причины проблемы и методы их решения.
Описание проблемы
Проблема проявляется в виде «призраков» различных цветов на экране, а также повторения изображения на краевых участках. Ваша платформа на Linux испытывает это поведение как при подключении к отдельному дисплею, так и при использовании в качестве второго монитора на ноутбуке. Однако переход к Windows устраняет эти артефакты, что указывает на наличие различий в передаваемых данных между двумя операционными системами.
Возможные причины проблемы
-
Необходимые настройки дисплея:
- Дисплеям может требоваться точная настройка временных параметров, чтобы избежать графических артефактов. Windows, возможно, адаптирует эти параметры автоматически, чего может не происходить на Linux.
- Проверьте и измените
config.txt
для Raspberry Pi, установив пользовательские временные параметры HDMI. Пример настройки:hdmi_timings=1366 0 40 24 72 768 0 13 3 29 0 0 0 60 0 32000000 6
-
Обновления и драйвера:
- Убедитесь, что у вас установлены все последние обновления для вашего дистрибутива Linux, особенно в отношении графических драйверов. Неправильно работающие или устаревшие драйвера могут приводить к визуальным сбоям.
- Проверьте, используете ли вы проприетарные драйвера или открытые графические драйвера, такие как Nouveau для NVIDIA.
-
Установка параметров устройства:
- В зависимости от используемого драйвера в Linux вы можете настроить параметры устройства, используя файл device tree (dts). Образец настройки может выглядеть так:
mxcfb1: fb@0 { compatible = "fsl,mxc_sdc_fb"; disp_dev = "hdmi"; interface_pix_fmt = "RGB24"; mode_str ="1366x768M@60"; default_bpp = <32>; int_clk = <0>; late_init = <0>; status = "okay"; };
- В зависимости от используемого драйвера в Linux вы можете настроить параметры устройства, используя файл device tree (dts). Образец настройки может выглядеть так:
-
Глубина цвета и частота обновления:
- Хотя и Linux, и Windows показывают одинаковое разрешение и частоту обновления, может возникнуть путаница из-за глубины цвета, что также может повлиять на корректное отображение. Убедитесь, что параметры bpp (bits per pixel) совпадают в обоих системах.
Заключение
Представленная проблема с дисплеем, вызванная «призраками» пикселей, может иметь несколько причин — от неправильных временных настроек до несовместимости драйверов и параметров оборудования. Рассмотренные шаги по Diagnostics и корректировке конфигурации могут помочь устранить артефакты при работе на Linux. Настройка HDMI и использование правильных драйверов, а также глубокая проверка конфигураций и параметров устройства значительно увеличат шансы на успешное разрешение проблемы.
Если проблема все еще сохраняется после выполнения всех шагов, может быть полезно обратиться к сообществу Raspberry Pi или форумам поддержки для дальнейшего анализа.