【RK3588】正点原子RK3588开发板Android系统屏幕显示方向配置

正点原子RK3588开发板ATK-DLRK3588支持多种屏幕,支持正点原子店铺售卖的5.5寸720x1280、5.5寸1080x1920以及10.1寸800x1280这三款MIPI屏,同时还支持HDMI显示、DP显示;正点原子家的MIPI屏都是物理竖屏,而HDMI显示屏、DP显示屏一般都是物理横屏

Android系统它既支持横屏显示、也支持竖屏显示,如下图所示:

本文基于正点原子RK3588开发板讲一下Android系统如何设置屏幕的显示方向。

1.相关属性介绍

介绍四个属性:

  • vendor.hwc.device.primary
  • vendor.hwc.device.extend
  • persist.sys.rotation.efull-nn是一个数字,譬如1、2、3
  • persist.sys.rotation.einit-nn是一个数字,譬如1、2、3

vendor.hwc.device.primary

该属性用于设置主屏,譬如:

  • vendor.hwc.device.primary=DSI                 #设置MIPI屏为主屏
  • vendor.hwc.device.primary=HDMI-A          #设置HDMI显示屏为主屏
  • vendor.hwc.device.primary=LVDS             #设置LVDS屏为主屏
  • vendor.hwc.device.primary=eDP                #设置eDP显示屏为主屏
  • vendor.hwc.device.primary=DP                  #设置DP显示屏为主屏

备注:主屏通常只有一个、而副屏可以有多个,若系统只有一个逻辑屏,该屏便是逻辑主屏(对应物理主屏)。


vendor.hwc.device.extend

该属性用于设置副屏,譬如:

  • vendor.hwc.device.extend=DSI                   #设置MIPI屏为副屏
  • vendor.hwc.device.extend=HDMI-A            #设置HDMI显示屏为副屏
  • vendor.hwc.device.extend=LVDS                #设置LVDS屏为副屏
  • vendor.hwc.device.extend=eDP                  #设置eDP屏为副屏
  • vendor.hwc.device.extend=DP                    #设置DP显示屏为副屏
  • vendor.hwc.device.extend=DSI,HDMI-A     #设置MIPI屏和HDMI显示屏为副屏

正点原子提供的Android SDK,主屏默认为MIPI屏、副屏默认为HDMI显示屏DP显示屏,用户可根据自己的实际需求进行更改,打开device/rockchip/rk3588/ATK_DLRK3588/ATK_DLRK3588.mk文件:

vi device/rockchip/rk3588/ATK_DLRK3588/ATK_DLRK3588.mk


persist.sys.rotation.einit-n(n=1、2、3、….

该属性用于设置副屏(副屏1、副屏2等)的显示方向,可取值为0/1/2/3,分别表示将副屏显示方向旋转(顺时针)0度、90度、180度、270度,如下图所示:


persist.sys.rotation.efull-n(n=1、2、3、….

该属性用于设置副屏(副屏1、副屏2等)是否全屏显示,可取值为falsetrue,如下图所示:


2.主屏显示方向

主屏的显示方向可通过SF_PRIMARY_DISPLAY_ORIENTATION变量控制,该变量可取值为0、90、180、270,分别表示将主屏显示方向旋转(顺时针旋转)0度、90度、180度以及270度。

打开device/rockchip/rk3588/ATK_DLRK3588/BoardConfig.mk文件:

vi device/rockchip/rk3588/ATK_DLRK3588/BoardConfig.mk

如果我们要将主屏的显示方向旋转90度,可以在该文件末尾添加如下内容:

SF_PRIMARY_DISPLAY_ORIENTATION := 90             #旋转90度

修改完成后,保存退出,在SDK根目录下执行如下命令重新编译Android源码:

source build/envsetup.sh

lunch ATK_DLRK3588-userdebug

./build.sh -A -J10

将编译生成的super.img烧录到开发板上,然后上电启动开发板,进入Android系统后会发现mipi屏(本例中mipi屏为主屏)由竖屏显示变成了横屏显示,如下所示:

3.副屏显示方向

副屏的显示方向可通过persist.sys.rotation.einit-n(n=1、2、3、….)属性控制,第1小节中已经介绍了。我们以MIPI主屏、HDMI副屏为例,如果要将HDMI屏的显示方向旋转90度、并且HDMI屏图像参考MIPI屏的宽高比进行缩放(也就是不强制HDMI全屏显示);要实现这种需求,可以在device/rockchip/rk3588/ATK_DLRK3588/ATK_DLRK3588.mk文件中添加如下内容:

PRODUCT_PROPERTY_OVERRIDES += vendor.hwc.device.primary=DSI

PRODUCT_PROPERTY_OVERRIDES += vendor.hwc.device.extend=HDMI-A

PRODUCT_PROPERTY_OVERRIDES += persist.sys.rotation.einit-1=1

PRODUCT_PROPERTY_OVERRIDES += persist.sys.rotation.efull-1=false

修改完成后,保存退出,在SDK根目录下执行如下命令重新编译Android源码:

source build/envsetup.sh

lunch ATK_DLRK3588-userdebug

./build.sh -A -J10

将编译生成的super.img烧录到开发板上,然后上电启动开发板,连接HDMI显示器,进入Android系统后会发现HDMI屏显示方向旋转了90度,如下所示:

4.recovery模式下屏幕的显示方向

Recovery模式下屏幕的显示方向可通过TARGET_RECOVERY_DEFAULT_ROTATION变量控制,该变量可取值为:ROTATION_NONE、ROTATION_RIGHT、ROTATION_DOWN、ROTATION_LEFT,分别表示recovery模式下屏幕显示方向将旋转0度、90度、180度、270度。

打开device/rockchip/rk3588/ATK_DLRK3588/BoardConfig.mk文件,然后添加如下内容:

TARGET_RECOVERY_DEFAULT_ROTATION := ROTATION_RIGHT   #旋转90度

修改完成后,保存退出,在SDK根目录下执行如下命令重新编译Android源码:

source build/envsetup.sh

lunch ATK_DLRK3588-userdebug

./build.sh -A -J10

将编译生成的recovery.img和misc.img烧录到开发板上,烧录完成会自动重启进入recovery模式(烧录misc.img首次启动将进入recovery模式),此时会发现屏幕显示方向旋转了90度,如下图所示:

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值