首页 > 技术知识 > 正文

RK3568评估板应用:UI Graphics 开发-rk3568b2功耗

Rockchip Linux平台的Graphics,是应用DRM和DMA-BUF的ARMLinux平台。优势是,通用的架构,在基于此架构进行客制化开发比较容易,可以利用很多现有组件,现有很多基础开源项目的开发,都开始基于Rockchip平台来作为ARM端的适配平台。

一、双屏异显异音功能的介绍

Rockchip Linux在Debian/Buildroot平台上对DP/HDMI/MIPI/eDP/LVDS等显示接口可以任意组合,支持双屏同显或异显的功能。当双屏异显时,一个显示接口当主屏,另一个当副屏。同时也支持不同声卡在不同显示上播放,下面主要介绍双屏异显和双屏异声功能

二、Debian双屏显示功能介绍

在Debian使用X11系统,可以使用xrandr去设置双屏同显和异显功能。

“xrandr”是一款官方的RandR(Resize and Rotate)Wikipedia:X Window System扩展配置工具。它可以设置屏幕显示的大小、方向、镜像等。对多显示器的情况请参考Multihead页面。

1. 系统的显示设备及设备名

支持命令行和界面下对双屏显示模式进行设置。

菜单界面:使用鼠标点击menu->Preferences->Monitor Settings:

RK3568评估板应用:UI Graphics 开发-rk3568b2功耗1

命令行:

su linaro -c “DISPLAY=:0 xrandr”

输出:

root@linaro-alip:~# su linaro -c “DISPLAY=:0 xrandr” Screen 0: minimum 320 x 200, current 1280 x 800, maximum 8192 x 8192 eDP-1 connected primary 1280×800+0+0 (normal left inverted right x axis y axis) 0mm x 0mm 1280×800 59.53*+ HDMI-1 connected 1920×1080+0+0 (normal left inverted right x axis y axis) 708mm x 398mm 1920×1080 60.00*+ 50.00 59.94 30.00 24.00 29.97 23.98 1920x1080i 60.00 50.00 59.94 1280×1024 60.02 1440×900 59.90 1360×768 60.02 1280×720 60.00 50.00 59.94 1024×768 60.00 800×600 60.32 720×576 50.00 720x576i 50.00 720×480 60.00 59.94 720x480i 60.00 59.94 640×480 60.00 59.94

可以看到当前系统有两个显示设备,设备名分别为HDMI-1和eDP-1。

2. 双屏显示模式设置

双屏支持双屏同显,双屏异显模式。异显模式下支持 On right、Above、On left、Below 四种模式。菜单界面:在Display Settings中设置设备的Position,则可以切换双屏的显示模式:

RK3568评估板应用:UI Graphics 开发-rk3568b2功耗2

命令行:

su linaro -c “DISPLAY=:0 xrandr –output HDMI-1 –above eDP-1”

其中–above参数可以设置为right-of, left-of, below, same-as切换双屏的显示模式。Default/same-as 模式下为双屏同显。

三、Buildroot 双屏显示功能介绍

Buildroot SDK的Weston 支持多屏同异显及热拔插等功能,不同显示器屏幕的区分根据drm的name(通过Weston启动log或者/sys/class/drm/card0-<name>获取),相关配置通过环境变量设置,如:

#/etc/init.d/S50launcher start) … export WESTON_DRM_PRIMARY=HDMI-A-1 # 指定主显为HDMI-A-1 export WESTON_DRM_MIRROR=1 # 使用镜像模式(多屏同显),不设置此环境变量即为异显 export WESTON_DRM_KEEP_RATIO=1 #镜像模式下缩放保持纵横比,不设置此变量即为强制 全屏 export WESTON_DRM_PREFER_EXTERNAL=1 # 外置显示器连接时自动关闭内置显示器 export WESTON_DRM_PREFER_EXTERNAL_DUAL=1 # 外置显示器连接时默认以第一个外显为主显 weston –tty=2 -B=drm-backend. so –idle-time=0& …

镜像模式缩放显示内容时需要依赖RGA加速。同时也支持在weston.ini的output段单独禁用指定屏幕:

#/etc/xdg/weston/weston.ini [output] name=LVDS-1 mode=off # off|current|preferred|<WIDTHxHEIGHT@RATE>四、Debian双屏异音功能介绍

1. 在Debian系统Sound&Video—->PulseAudio Volume Control,然后对应声卡进行播放,比下图:

RK3568评估板应用:UI Graphics 开发-rk3568b2功耗3

我们也可以使用aplay来确认声卡和选择声卡播放。

root@linaro-alip:~# aplay -l ****List of PLAYBACK Hardware Devices **** card 0: rockchiprk809co [rockchip, rk809-codec], device 0: fe410000. i2s-rk817-hifi rk817-hifi-0 [fe410000. i2s-rk817-hifi rk817-hifi-0] Subdevices:1/1 Subdevice #0: subdevice #0 card 1: rockchiphdmi [rockchip, hdmi], device 0: rockchip, hdmi i2s-hifi-0 [rockchip, hdmi i2s-hifi-0] Subdevices: 1/1 Subdevice #0: subdevice #0

2. 打开一个音乐歌曲从主屏拖到副屏,然后在主屏中同样方式选择一个声卡来播放。比如下:

RK3568评估板应用:UI Graphics 开发-rk3568b2功耗4

五、Buildroot双屏异音功能介绍

Buildroot 上应用还没开发对应功能,可以在qfm/oem/piano2-CoolEdit.mp3进行播放,声卡可以通过如下命令进行切换:RK809声卡:

aplay -D plughw:0, 0 /dev/urandom

HDMI声卡测试:

aplay -D plughw:1, 0 /dev/urandom

六、屏幕参数调整

在Linux平台上可以通过modetest对屏幕的色调、饱和度、对比度和亮度(hue,saturation,contrastandbrightness)等参数进行调整。需要libdrm和kernel的drm驱动去支持atomic属性。

libdrm

modetest:Add option to enable atomic capabilities

Kernel

drm/rockchip:dsi: add support legacy api to set property

drm/bridge: analogix_dp: add support legacy api to set property

drm/rockchip: lvds: add support legacy api to set property

drm/rockchip: rgb: add support legacy api to set property

使用modetest和modetest -w选项设置-w <obj_id>:<prop_name>:相关属性。

比如设置EDP屏幕的色调:

root@linaro-alip:/usr/local/bin# modetest -M rockchip Encoders:id crtc type possible crtcs possible clones 149 0 Virtual 0x00000003 0x00000000 151 115 TMDS 0x00000002 0x00000000 153 0 TMDS 0x00000001 0x00000000 Connectors: id encoder status name size (mm) modes encoders 152 151 connected eDP-1 0x0 1 151 modes: name refresh (Hz) hdisp hss hse htot vdisp vss vse vtot) 1280×800 60 1280 1380 1416 1516 800 810 821 831 75000 flags: nhsync, nvsync; type: preferred, driver props: 1 EDID: flags: immutable blob blobs: value: 2 DPMS: flags: enum enums: On=0 Standby=1 Suspend=2 Off=3 value: 0 5 link-status: flags: enum enums: Good=0 Bad=1 value: 0 6 non-desktop: flags: immutable range values: 0 1 value: 0 46 brightness: flags: range values: 0 100 value: 50 47 contrast: flags: range values: 0 100 value: 50 50 saturation: flags: range values: 0 100 value: 50 51 hue: flags: range values: 0 100 value: 50 …
<

设置eDP屏幕的hue值为60,默认hue值是50,可以调整范围是0~100:

modetest -M rockchip -a -w 92:hue:60

猜你喜欢