本文硬件平台以飞凌嵌入式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中。