[RK3566-Android11] 关于2K (2560x1440)分辨率支持问题

问题描述

使用2K-2560x1440显示器,发现设置->显示->HDMI->分辨率里面只有1920x1080 1280x720 720x480。没有2560x1440分辨率显示。
根据文档我在kernel\drivers\gpu\drm\drm_edid.c中添加了2560x1440分辨率信息,如下:

/* 2560x1440@60Hz */ { DRM_MODE("2560x1440", DRM_MODE_TYPE_DRIVER, 268500, 2560, 2608,
2640, 2720, 0, 1440, 1441, 1444, 1500, 0,
DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_NVSYNC) },

/* 128 - 2560x1440@100Hz 64:27 */
{ DRM_MODE("2560x1440", DRM_MODE_TYPE_DRIVER, 268500, 2560, 2608,
           2640, 2720, 0, 1440, 1441, 1444, 1500, 0,
           DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC),
      .vrefresh = 60, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_64_27, },

在device\rockchip\common\resolution_white.xml和device\rockchip\rk356x\rk3566_r\resolution_white.xml分辨率白名单中分别添加了对应分辨率,如下

<resolution> <!-- 2560x1440@60Hz -->
<clock>268500</clock>
<hdisplay>2560</hdisplay>
<hsync_start>2608</hsync_start>
<hsync_end>2640</hsync_end>
<htotal>2720</htotal>
<hskew>0</hskew>
<vdisplay>1440</vdisplay>
<vsync_start>1441</vsync_start>
<vsync_end>1444</vsync_end>
<vtotal>1500</vtotal>
<vscan>0</vscan>
<vrefresh>60</vrefresh>
<flags>5</flags>
<vic>128</vic>
</resolution>

加入以上修改后,重新烧录软件,设置->显示->HDMI->分辨率中还是没有2560x1440的分辨率。
此时cat /sys/class/drm/card0-HDMI-A-1/modes,edid信息中有2560x1440分辨率,如下:

130|console:/ # cat /sys/class/drm/card0-HDMI-A-1/modes
2560x1440
1920x1200
1920x1080
1920x1080
1920x1080
1920x1080i
1920x1080i
1920x1080i
1920x1080
1920x1080
1920x1080i
1680x1050
1600x900
1280x1024
1280x1024
1440x900
1152x864
1280x720
1280x720
1280x720
1280x720
1024x768
1024x768
1024x768
800x600
800x600
800x600
800x600
720x576
720x576
720x480
720x480
720x480
720x480
720x480
640x480
640x480
640x480
640x480
640x480
640x480
720x400

那么如何在设置->显示->HDMI->分辨率中增加2K-2560x1440分辨率支持呢?


解决方案:

我们只需要不编译device\rockchip\common\resolution_white.xml和device\rockchip\rk356x\rk3566_r\resolution_white.xml 这个分辨率白名单,去掉分辨率过滤功能就可以。这样所有分辨率都会显示出来。将device/rockchip/common/device.mk中与resolution_white.xml相关的代码屏蔽了就可以了。

# ifneq ($(filter atv box, $(strip $(TARGET_BOARD_PLATFORM_PRODUCT))), )
#     PRODUCT_COPY_FILES += \
#       $(LOCAL_PATH)/resolution_white.xml:/system/usr/share/resolution_white.xml \
#       $(LOCAL_PATH)/tv/permissions/privapp-permissions-tv-common.xml:system/etc/permissions/privapp-permissions-tv-common.xml
# endif
# USE_PRODUCT_RESOLUTION_WHITE := $(shell test -f $(TARGET_DEVICE_DIR)/resolution_white.xml && echo true)
# ifeq ($(strip $(USE_PRODUCT_RESOLUTION_WHITE)), true)
#   PRODUCT_COPY_FILES += \
#       $(TARGET_DEVICE_DIR)/resolution_white.xml:/system/usr/share/resolution_white.xml
# else
#   PRODUCT_COPY_FILES += \
#       $(LOCAL_PATH)/resolution_white.xml:/system/usr/share/resolution_white.xml
# endif
  • 7
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Rockchip RK3566是一款由Rockchip推出的高性能应用处理器,其集成了四核ARM Cortex-A55 CPU和ARM Mali-G52 GPU。在移植U-Boot 2023.04时,我们需要考虑以下几个方面的工作: 1. 了解RK3566芯片的硬件架构和技术规格,包括处理器核心、内存控制器、外设接口等。这将有助于理解U-Boot如何与硬件交互,并进行相应的配置。 2. 下载并准备U-Boot 2023.04的源代码。在Rockchip官方网站或开源社区中可以找到最新的U-Boot源代码。将其下载并解压到开发机上。 3. 设置交叉编译环境。因为U-Boot是一个跨平台的项目,所以需要配置适合RK3566的交叉编译器,确保能够正确编译U-Boot源代码。 4. 配置U-Boot。根据RK3566的硬件架构和技术规格,需要进行相应的配置,包括处理器、内存、外设等设置。这些设置在U-Boot的配置文件中进行,可以根据需求进行修改。 5. 编译U-Boot。在配置好U-Boot后,使用交叉编译器编译U-Boot源代码。编译完成后,将生成的U-Boot二进制文件烧录到RK3566的启动设备上,如eMMC或SD卡。 6. 测试U-Boot。将准备好的启动设备插入RK3566开发板中,根据开发板的启动方式,进入U-Boot命令行界面。在命令行界面中可以进行各种操作和调试,如加载内核、启动操作系统等。 7. 调试和优化。在移植和测试U-Boot过程中,可能会出现一些问题和不稳定的情况。需要通过调试和优化来解决这些问题,确保U-Boot的正常运行和稳定性。 总之,移植U-Boot 2023.04到Rockchip RK3566需要了解芯片的硬件架构和技术规格,配置和编译U-Boot源代码,进行测试和调试。这样可以确保U-Boot能够与RK3566正常交互,并为后续的操作系统加载和启动提供基础支持

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值