imx8mp hdmi 4k 显示

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

imx8mp hdmi 4k 显示

2,836 Views
andy9
Contributor I

我现在使用imx8mp evk开发板,linux内核版本是linux-imx-5.10.9。使用HDMI接口,发现默认输出为1080p@60,请问怎么修改内核使HDMI输出为4K。

0 Kudos
Reply
12 Replies

2,830 Views
Zhiming_Liu
NXP TechSupport
NXP TechSupport

HMDI显示分辨率是自适应的,你试一下L5.10.35_2.0.0的demo images

0 Kudos
Reply

2,827 Views
andy9
Contributor I

我烧写了L5.10.35_2.0.0的demo images,分别在2K和4K的屏幕上试过,还是只能显示1080p。

使用modetest检查HDMI最大为1920x1080@60,并没有4k的分辨率

0 Kudos
Reply

2,820 Views
Zhiming_Liu
NXP TechSupport
NXP TechSupport

我能看到一样的现象,稍后给你解决方法

0 Kudos
Reply

2,228 Views
mengfei
Contributor III

有解决方案吗? 我现在还遇到一个问题,lvds 和 hdmi共享同一个drm框架生成的fb0节点,lvds和hdmi都被连接上后,hdmi显示的图像大小跟lvds是一样大的,没有铺满整个hdmi显示器,这是怎么回事?

0 Kudos
Reply

2,223 Views
Zhiming_Liu
NXP TechSupport
NXP TechSupport

测过了,可以自动识别4K。

lvds 和 hdmi共享同一个drm框架生成的fb0节点

--》这不是只能有一个分辨率吗?在你共享fb0的情况下,LVDS和HDMI屏幕分辨率是一样的吗?

0 Kudos
Reply

2,218 Views
mengfei
Contributor III

我们是想实现双屏同显,qt向fb0写图像数据,希望fb0中的图像数据能够在1200*768的lvds和1920*1080的hdmi上同时显示。你认为这是做不到的吗? 现在qt那边用的是eglfs的形式,要想同显必须是eglfs-kms这种直接操作drm生成的cardx节点的才行吗?

0 Kudos
Reply

2,213 Views
Zhiming_Liu
NXP TechSupport
NXP TechSupport

我还以为hdmi会自适应切换分辨率

-->基于DRM API可以实现不同CRTC下的buffer分配,但是直接写fb0的话,就是会出现这种显示不匹配的问题。你在应用层分配的buffer肯定是针对某个屏幕,比如LVDS分辨率大小的buffer,那你写进去了,底层驱动只是直接把这块buffer丢进lcd控制器,驱动层很傻的不会自适应。你丢进去多大分辨率的buffer,他就原封不动显示这么大。

0 Kudos
Reply

2,206 Views
mengfei
Contributor III

我是没动你们内核中关于fb0生成的源码,现在是跟你们bsp里面一模一样的,你们的源码里面就是用drm框架最后生成了一个fb0,就这一个,不管插几个屏幕也是就这一个fb

0 Kudos
Reply

2,204 Views
Zhiming_Liu
NXP TechSupport
NXP TechSupport

桌面系统不使用fb0,使用drm节点,即使fb0是可以用的,我们也不推荐,主流就是drm框架。

0 Kudos
Reply

2,200 Views
mengfei
Contributor III

嗯,谢谢。

问题的关键在于我们是医疗设备公司,之前的用户界面是QT 开发的,平台是你们的imx6 imx7,现在高端产品线用你们的8了。之前所有的代码都是基于fb的,如果现在换到drm,代价很大............算了,我再研究下吧,看看能不能修改你们那部分源码,实现根据插拔的显示器数量创建不同个数的fbx

0 Kudos
Reply

2,209 Views
mengfei
Contributor III

也就是说lvds 和 hdmi都插着的情况下,虽然这两个分辨率不一样,但是内核申请的buffer是按照lvds的分辨率来的,hdmi和lvds显示的时候也都是用的这一个buffer,所以导致了现在hdmi显示异常喽? 那就难搞了..........

0 Kudos
Reply

2,220 Views
mengfei
Contributor III

我现在lvds屏幕是1200*768的,hdmi支持的分辨率最大是1920*1080的。所以你意思是如果要lvds和hdmi显示正常的话,hdmi的分辨率也要手动设置为1200*768这种或者相近的分辨率才行吗? 我还以为hdmi会自适应切换分辨率,我从hdmi显示器设置里看到现在的屏幕显示分辨率是1920*1080的,同时hdmi上显示的图像也是只有左上角有一块,且大小跟lvds大小相近

0 Kudos
Reply