This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] Linux/processor-SDK-AM335X:启动屏幕中的颜色不匹配

Guru**** 2943350 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/663831/linux-processor-sdk-am335x-color-mismatch-in-splash-screen

器件型号:PROCESSOR-SDK-AM335X

工具/软件:Linux

我的闪屏颜色不正确。 我正在使用闪屏工具(连接在此线程中)。  我按照以下步骤来构建闪屏工具。

使用软件包中包含的./make-image-header.sh 脚本、使用新映像创建新的头文件:(您需要先安装 libgdk-pixbuf2.0-dev 库)
make-image-header.sh

注 参数可以是您想要的任何参数、但为了最快的方法、您应该使用"poky"、因为默认情况下在 pplash.c 文件中使用此参数。 遗憾的是、这是不可配置的、如果您希望使用不同的名称、则必须手动编辑文件。

-以上命令将生成包含映像内容的头文件( -img.h)。
-打开 pplash.c 文件并替换文件顶部以下行中的文件名:
#include "pplash-poki-img.h"
使用
#include " -img.h"

导出所需的变量、然后配置和构建闪屏:

导出 cross_compile=arm-linux-gnueabihf-
导出 arch=arm
导出路径=$path:$HOE/ti-sdk-am335x-evm-06.00.00.00.00.00.00.00.00.00.linux-devkit/sysroots/i686-Arago-linux/usr/bin
autogen.sh --host=arm-linux cc=arm-linux-gnueabihf-gcc
制造

3.将根文件系统中的/usr/bin/psplash 文件替换为生成的 psplash 文件。

并按照以下步骤从 systemd 调用 psplash 工具。

要在引导时显示启动映像,请将 psplash-start.service psplash-stop.service 添加 lib/systemd/system/,然后键入 systemctl enable psplash-start psplash-stop systemctl daemon-reload
要使进度条正常工作、请使用闪屏写入"MSG message"闪屏写入"progress Number"命令计算和设计进度条填充服务、您可以绘制进度条并将消息写入闪屏。

psplash-start.service
[单位]
Description=启动屏幕
DefaultDependencies=no

[服务]
execStartPre=/bin/mount tmpfs -t tmpfs /mnt/.psplash -o, size=40k
ExecStart=/usr/bin/psplash

[安装]
WantedBy=sysinit.target

psplash-stop.service
[单位]
Description=终止启动屏幕
after = psplash-start.service

[服务]
type=OneShot
ExecStartPre=/usr/bin/psplash-write "quit"
ExecStart=/bin/umount /mnt/.psplash
TimeoutSec =20秒

[安装]
WantedBy=多用户目标

内核版本- 4.9.41-ge3a80a1c5c

U-boot 版本- 2014.01-RC2

我希望显示以下图片

但我在我的 LCD 上看到了以下图片

请指导我解决此问题!!!e2e.ti.com/.../psplash_2D00_master.zip

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您是否仅在启动屏幕中看到此不匹配? 引导内核时颜色是否正常?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

     要在启动时显示启动映像、我按照上述步骤操作。  完成引导时间后、我将得到下面给出的相同图片。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    请阅读 AM335x 勘误表使用说明3.1.1、并检查您的显示颜色分配是否正确连接。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Biser、
    我使用3.14内核检查了我的显示屏。 它提供了正确的颜色。 我在4.9内核中面临此问题。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我收到以下引导日志错误消息
    [DRM]已初始化
    [DRM]支持 vblank 时间戳缓存修订版2 (2013年10月21日)。
    [DRM]不支持 vblank 时间戳查询的驱动程序。
    tilcdc 4830e000。lcdc:tilcdc_crtc_IRQ (0x00000044):同步丢失
    tilcdc 4830e000。lcdc:tilcdc_crtc_IRQ (0x00000004):同步丢失
    tilcdc 4830e000。lcdc:tilcdc_crtc_IRQ (0x00000004):同步丢失
    tilcdc 4830e000。lcdc:tilcdc_crtc_IRQ (0x00000004):同步丢失
    tilcdc 4830e000。lcdc:tilcdc_crtc_IRQ (0x00000004):同步丢失
    tilcdc 4830e000。lcdc:tilcdc_crtc_IRQ (0x00000004):同步丢失
    tilcdc 4830e000。lcdc:tilcdc_crtc_IRQ (0x00000004):同步丢失
    tilcdc 4830e000。lcdc:tilcdc_crtc_IRQ (0x00000004):同步丢失
    tilcdc 4830e000。lcdc:tilcdc_crtc_IRQ (0x00000004):同步丢失
    ------ [在此处剪切]-----
    警告:CPU:0 PID:1位于 drivers/GPU/DRM/DRM_at原 子_helper.c:1140 DRM_at原 子_helper_wait_for_vbers+0x260/0x270
    [CRTC:24] vblank 等待超时
    链接的模块:

    我已检查显示设置。 没错。
    原因可能是什么? 这是因为 uboot 版本- 2014.01-RC2。? 如果是...、如何...?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    有人能帮我解决这个问题吗?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    同步丢失错误和颜色不匹配是两个单独的问题。 颜色不匹配可能是由于 AM3上的 RGB 问题造成的。 AM335x 上有芯片勘误表-请参阅芯片勘误表文档 www.ti.com/.../getliterature.tsp 中的3.1.1节

    根据设置的不同、您可能有 BGR16或 BGR32、但期望它是 RGB。 检查 Documentation/devicetree/bindings/sdisplay/tilcdc/tilcdc 文档。 您需要在 DTS 文件中为您的硬件添加另一个条目、以进行"蓝线和红线"。  

    查看此 wiki 页面-

    请检查此项

    同步丢失错误。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    大家好、Manisha、

    我使用3.14内核尝试了相同的设置、并且显示颜色正确。 但在4.9内核中、蓝色阴影只可见。 红色、黄色... 即将推出。 我签 入 了 Documentation/devicetree/bindings/sdisplay/tilcdc/tilcdc doc、他们为 fb 器件提供了这些选项。 我的是 DRM。

    4.9和3.14显示驱动程序之间的唯一区别是4.9具有 DRM 原子模式支持、3.14模式支持中没有。

    我尝试了 modetest 命令、

    莫德特

    正在尝试打开设备'i915'...失败

    正在尝试打开设备'Radeoneon'...失败

    尝试打开设备'nouve'失败

    尝试打开设备'vmwgfx'...失败

    正在尝试打开设备'omapdrm'...失败

    正在尝试打开设备'exynos'...失败

    正在尝试打开设备'tilcdc'...done

    编码器:

    ID   CRTC  类型  可能的 crtcs 可能的克隆

    25   24   LVDS  0x00000001   0x00000000

    连接器:

    ID   编码器状态      名称       尺寸(mm)   模式 编码器

    26   25   已连接   LVDS-1      0x0       1 25.    

     模式:

        名称刷新(Hz) hdisp HSS HSE htot vdisp VSS VSE vtot)

     480x272 57 480 488 532 272 276 286 298个标志:phsync、pvsync;type:preferred、driver

     道具:

        1 EDID:

            flags:不可改变的 blob

            BLOB:

            值:

        2 DPMS:

            flags:枚举

            枚举:ON = 0待机= 1挂起= 2关闭= 3

            值:0

    CRC:

    Id   fb   pos  大小

    24   29   (0、0) (480x272)

     480x272 57 480 488 532 272 276 286 298个标志:phsync、pvsync;type:preferred、driver

     道具:

    平面:

    ID   CRTC  fb   CRTC x、y    x、y  伽马大小   可能的 crtcs

    23   24   29   0、0       0、0  、0        0x00000001

     格式:RG16 RG24 XR24

     道具:

        5类型:

            flags:不可 mutable 枚举

            枚举:overlay=0 Primary =1 Cursor =2

            值:1.

    帧缓冲器:

    ID   大小  间距

    请找到 DTS 条目

    面板{

    兼容="ti、tilcdc、panel ";

    pinctrl-names ="default"、"sleep";

    pinctrl-0 =<&LCD_PINS_DE_DISABLE>;

    pinctrl-1 =<&LCD_PINS_SLEEP>;

    状态="正常";

    面板信息{

    交流偏置      =<255>;

    AC-BIAS-INtrpt  =<0>;

    dma-burse-SZ   =<16>;

    bpp        =<32>;(也尝试了24次、3.14内核以 bpp 为32)

    FDD        =<0x80>;

    同步边沿     =<0>;

    同步控制     =<1>;

    栅格顺序   =<0>;

    FIFO- TH      =<0>;

    };

    显示时序{

    480x272{

    主动     =<480>;

    Vactive     =<272>;

    后沿  =<43>;

    前沿  =<8>;

    HSYNC-LEN   =<1>;

    后沿  =<12>;

    垂直前沿  =<4>;

    vsync-len   =<10>;

    时钟频率=<9000000>;

    HSYNC-ACTIVE  =<1>;

    vsync-active  =<1>;

    像素时钟激活=<1>;

    };

    };

    };

    根据 tilcdc doc 和 AM335X 芯片勘误表(如下所示)、我修改了蓝色和红色接线="交叉";但问题仍然相同。

    此属性涉及 LCDC 修订版2 (可在 AM335x 上找到)

     颜色勘误表[1]。

      -"直向"表示支持 RGB565的正常接线、

       BGR888和 XBGR8888颜色格式。

      -“交叉”表示电线为蓝色和红色

       交叉。 此设置支持 BGR565、RGB888和 XRGB8888

       格式。

      -如果该属性不存在或其值不被识别

       假定采用传统模式。 该配置支持 RGB565、

       RGB888和 XRGB8888格式。 但是、根据接线的不同、红色表示

       在16位或24位颜色模式下交换蓝色。

    请建议。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    有人能帮我解决这个问题吗?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    以下几项说明-

    1.内核启动后是否看到此颜色交换?是在 u-boot 时间内看到此颜色交换? 如果是在内核驱动程序启动之前、则需要重点查看 u-boot 设置。  

    如果是在内核启动之后-  

    2.电路板是否连接了蓝色和红色的交叉线或直线?   直向表示正常布线、其中24位格式为 BGR 和16位 RGB。 交叉是另一种方法

    3.我在 DTS 文件中看不到“蓝线和红线”设置。 有关如何设置属性的示例、请查看 AM335x-bonebblack.dts 和 AM335x-evm.dts。 设置属性本身不会执行任何操作。 硬件需要支持该接线机制。 您共享的 modeset 输出表明 DTS 文件中缺少该设置  

    4.或者,您也可以将颜色模式 从16位更改为24/32位或24/32位更改为16位,然后尝试。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    大家好、Manisha、

    我尝试包括"蓝色和红色接线=交叉线"(我也尝试了直接)、我尝试更改16/24/32、因为所有更改都没有改进显示。

    请回答这个问题、

    1.采用3.14内核并启用 tilcdc DRM,在 dts 中添加了值,工作简单。 与我在4.9内核中尝试执行的相同、为什么它不会出现? 从这一点可以清楚地看出、我不需要检查/更正硬件连接。

    正如我在上一个主题中提到的、我在3.14和4.9的显示驱动程序中发现的差异是 DRM Atomic modeset 支持。 我也会遇到与 DRM_풭 ퟓ 相关的引导错误。 我觉得问题不是因为环境问题,因为3.14工作正常。 DRM 原子模式可能存在问题。

    是否有任何特定的4.9内核设置需要使 DRM 显示正常工作、这不在3.14...中?

    我很困惑、请帮助我解决此问题。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    同步丢失错误与颜色不匹配是分开的。 请检查此 wiki 页面、并确保您的代码中包含此链接中提到的补丁
    processors.wiki.ti.com/.../Linux_Core_LCD_Controller_User_Guide

    您在 u-boot 中或内核启动后看到的颜色不匹配?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    内核中发生颜色不匹配。

    您提供的链接具有 uboot-2016.05的补丁。 我的 uboot 版本是2014.07。 此外、我的问题是内核问题。 可能是我需要内核的补丁来解决此问题。 如果您有一个链接来获取内核补丁。 请提供。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Madhu、

    2014.07是非常旧的 u-boot。 我们不支持这一点。 该补丁在 ti2017.01版本中提供。 您必须将补丁从 ti2017.01版本回退到2014.07版本、或迁移到最新的 u-boot 版本。

    我曾多次提到、同步丢失错误与颜色不匹配是一个单独的问题。 此 u-boot 补丁可修复同步丢失错误。 通过 Google "AM335x DMA FIFO 下溢"了解更多相关信息。

    此致、
    Manisha
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    大家好、Manisha、

    感谢您的响应。

    由于同步丢失错误与颜色不匹配问题无关。 我不想花时间在 uboot 中。

    请告诉我解决颜色不匹配问题的解决方案。 我几乎检查了 DTS 和硬件中的所有设置。 我希望4.9内核中一定会有问题。 请建议。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    颜色不匹配已解决。

    之前我在 DTS 中的面板信息下添加了蓝色和红色的 wring =交叉参考。 现在我包含在 LCDC 中。

    LCDC{
    蓝色和红色接线="交叉";
    状态="正常";
    };
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    很高兴问题现在得到解决。