RK3568评估板应用:UI Graphics 开发

RK3568评估板应用:UI Graphics 开发 一休摸鱼 2022-09-26 11:51:17 4255

易百纳社区

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:

易百纳社区

命令行:

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 1280x800+0+0 (normal left inverted right x axis y axis) 0mm x 0mm 1280x800 59.53*+
HDMI-1 connected 1920x1080+0+0 (normal left inverted right x axis y axis) 708mm x 398mm 
1920x1080 60.00*+ 50.00 59.94 30.00 24.00 29.97 23.98
1920x1080i 60.00 50.00 59.94
1280x1024 60.02
1440x900 59.90
1360x768 60.02
1280x720 60.00 50.00 59.94
1024x768 60.00
800x600 60.32
720x576 50.00
720x576i 50.00
720x480 60.00 59.94
720x480i 60.00 59.94
640x480 60.00 59.94

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

2. 双屏显示模式设置

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

易百纳社区

命令行:

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-获取),相关配置通过环境变量设置,如:

#/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,然后对应声卡进行播放,比下图:

易百纳社区

我们也可以使用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. 打开一个音乐歌曲从主屏拖到副屏,然后在主屏中同样方式选择一个声卡来播放。比如下:

易百纳社区

五、Buildroot双屏异音功能介绍

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

aplay&nbsp;-D&nbsp;plughw:0,&nbsp;0&nbsp;/dev/urandom

HDMI声卡测试:

aplay&nbsp;-D&nbsp;plughw:1,&nbsp;0&nbsp;/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 ::相关属性。

比如设置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)
1280x800 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&nbsp;-M&nbsp;rockchip&nbsp;-a&nbsp;-w&nbsp;92:hue:60

声明:本文内容由易百纳平台入驻作者撰写,文章观点仅代表作者本人,不代表易百纳立场。如有内容侵权或者其他问题,请联系本站进行删除。
红包 点赞 收藏 评论 打赏
评论
0个
内容存在敏感词
手气红包
    易百纳技术社区暂无数据
相关专栏
置顶时间设置
结束时间
删除原因
  • 广告/SPAM
  • 恶意灌水
  • 违规内容
  • 文不对题
  • 重复发帖
打赏作者
易百纳技术社区
一休摸鱼
您的支持将鼓励我继续创作!
打赏金额:
¥1 易百纳技术社区
¥5 易百纳技术社区
¥10 易百纳技术社区
¥50 易百纳技术社区
¥100 易百纳技术社区
支付方式:
微信支付
支付宝支付
易百纳技术社区 微信支付
易百纳技术社区
打赏成功!

感谢您的打赏,如若您也想被打赏,可前往 发表专栏 哦~

举报反馈

举报类型

  • 内容涉黄/赌/毒
  • 内容侵权/抄袭
  • 政治相关
  • 涉嫌广告
  • 侮辱谩骂
  • 其他

详细说明

审核成功

发布时间设置
发布时间:
是否关联周任务-专栏模块

审核失败

失败原因
备注
拼手气红包 红包规则
祝福语
恭喜发财,大吉大利!
红包金额
红包最小金额不能低于5元
红包数量
红包数量范围10~50个
余额支付
当前余额:
可前往问答、专栏板块获取收益 去获取
取 消 确 定

小包子的红包

恭喜发财,大吉大利

已领取20/40,共1.6元 红包规则

    易百纳技术社区