首页专栏详情
打赏
RK3568评估板应用:UI Graphics 开发
RK3568评估板应用:UI Graphics 开发
易百纳技术社区 一休摸鱼 2022-09-26 11:51:17

易百纳社区

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

易百纳社区

我们也可以使用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 -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)
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 -M rockchip -a -w 92:hue:60


声明:本文内容由易百纳平台入驻作者撰写,文章观点仅代表作者本人,不代表易百纳立场。如有内容侵权或者其他问题,请联系本站进行删除。

1016
收藏
点赞
打赏
给作者打赏,鼓励他抓紧创作吧~
评论
0个
内容存在敏感词
相关专栏
打赏作者
易百纳技术社区
一休摸鱼
您的支持将鼓励我继续创作!
打赏金额:
¥1 易百纳技术社区
¥5 易百纳技术社区
¥10 易百纳技术社区
¥50 易百纳技术社区
¥100 易百纳技术社区
支付方式:
微信支付
支付宝支付
易百纳技术社区 微信支付
易百纳技术社区
打赏成功!

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

审核成功

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

审核失败

失败原因
备注
Loading...
易百纳技术社区
确定要删除此文章、专栏、评论吗?
确定
取消
易百纳技术社区
易百纳技术社区
在专栏模块发布专栏,可获得其他E友的打赏
易百纳技术社区
回答悬赏问答,被题主采纳后即可获得悬赏金
易百纳技术社区
在上传资料时,有价值的资料可设置为付费资源
易百纳技术社区
达到一定金额,收益即可提现~
收益也可用来充值ebc,下载资料、兑换礼品更容易
易百纳技术社区
活动规则
  • 1.周任务为周期性任务,每周周一00:00刷新,上周完成的任务不会累计到本周,本周需要从头开始任务,当前任务完成后才可以完成下一个任务
  • 2.发布的专栏与资料需要与平台的板块有相关性,禁止注水,专栏/资料任务以审核通过的篇数为准
  • 3.任务完成后,现金奖励直接打款到微信账户;EBC/收益将自动发放到个人账户,可前往“我的钱包”查看;其他奖励请联系客服兑换
  • 4.每周最后三个任务将会有以下奖品掉落:社区热卖开发板、小米音响、视频年度会员、京东卡、华为手机等等
易百纳技术社区
升级提醒
易百纳技术社区

恭喜您由入门

社区送出礼品一份

请填写您的收件地址,礼品将在3个工作日寄出

易百纳技术社区