分享-RK3399支持多种屏幕接口如何进行屏幕切换控制

本文硬件平台以飞凌嵌入式OK3399-C开发板为基础进行讲解,其它RK3399产品,由于各个厂家设置不同会有所差异,请参考使用。本文详细介绍了RK3399开发板屏幕切换控制的两种方式,uboot菜单动态控制、内核设备树指定。


屏幕切换


飞凌RK3399系列主板支持MIPI DSI、HDMI、eDP、DP等多种屏幕接口,同时可以进行两个屏幕的同显和异显,可灵活指定其中一个接口支持4K输出。目前屏幕切换控制方式有两种:uboot菜单动态控制;内核设备树指定。


1、uboot菜单动态控制


该方式在现有已支持屏幕的基础上不需要重新编译和烧写,即可切换屏幕。

在uboot自启动过程中串口终端按下ctrl+c,即可弹出控制选项:

终端输入2,进入屏幕控制子菜单:

其中Primary代表主屏幕,Secondary代表副屏幕;@l代表该接口不具备4K能力,@b代表该接口支持4K(接口和屏幕都要具备4K)。

终端输入1可进入主屏幕配置子菜单:

终端输入数字1到5对应屏幕接口,输入1代表eDP屏幕,输入2代表MIPI屏幕,输入3代表HDMI屏幕;6代表主屏幕接口具有4K能力,7代表主屏幕接口不具有4K能力。选择的同时Primary会有相应变化。如果Primary(主屏幕)具备4K能力(@b),Secondary(副屏幕)自动变为不具备4K能力(@l)。如果主屏幕选择和副屏幕相同,自动关闭副屏幕。

选择完成后终端输入0,返回上级菜单,根据需要配置Secondary(副屏幕):

在该菜单按下2,进入Secondary(副屏幕)配置:

主屏幕已经选择的接口,Secondary菜单中不会再显示。如果Primary(主屏幕)不具备4K能力,Secondary(副屏幕)自动使能4K能力。输入对应的数字即可实现屏幕的选择,同时Secondary提示会有变化。

选择完成后,按复位键重新启动,自启动后生效。


2、内核设备树指定


该方式不需要RK3399主板连接串口终端,系统镜像默认为所期望的配置选择,适合量产。但需要手工修改设备树,重新生成一次系统镜像。该方式优先级高于uboot屏幕选单。

内核源码中,打开设备dts文件,找到如下节点:

 

该节点默认disabled状态,需要改为okay使能节点。primary-display根据主屏幕需求更改,secondary-display根据扩展屏幕需求更改。保存后,重新编译生成镜像。

举例:主屏幕为eDP支持4K,副屏幕为MIPI DSI最大1080P。

 

对于MIPI屏幕种类多,可能现有时序和控制字不能满足要求,需要自行更改dsi节点下的display-timings。但任何和显示相关的节点status属性,均按照默认处理,程序会自动控制。


3、扩展显示设置


Forlinx Desktop支持双屏同显、扩展显示。当RK3399主板使用双屏同显、扩展显示时,系统会默认非热插拔显示设备作为主屏,而非uboot菜单指定的主屏,不过应用层可以使用xrandr进行管理。

输入xrandr查看系统屏幕状态:

 

检测到有两个显示设备,eDP-1为主屏,DSI-1为副屏,默认DSI-1屏幕在eDP-1的右侧。如果想让DSI-1作为主屏,可以进行如下设置:

$ xrandr --output eDP-1 --right-of DSI-1 --auto

如果想设置为同显,可以设置为:

$ xrandr --output eDP-1 --same-as DSI-1 --auto

如果想作为默认配置,可以将命令写在/home/forlinx/.profile中。