Firefly开源社区

打印 上一主题 下一主题

[Android] RK3568三屏异显异触控技术案例

765

积分

0

威望

0

贡献

技术大神

Rank: 3Rank: 3

积分
765
发表于 2022-3-16 09:31:59      楼主
junyeer 发表于 2022-3-15 23:33
请问,固件对于eDP输出的屏幕是否支持,如果不支持,能否告知eDP怎么实现HDMI+eDP的双屏异显

此案例固件仅支持HDMI、DM-M10R800 V2 MIPI屏模模组、DM-M10R800 LVDS屏幕模组做三屏异显,不支持edp,如果想实现HDMI+eDP做双屏异显,要做到以下三步,前提是eDP屏已经调试好,如果未调试可以参考,kernel/arch/arm64/boot/dts/rockchip/rk3568-firefly-aioj-edp_M156X40.dts, 以下说明,基于此dts做说明
第一步:VP的挂载,hdmi和edp均支持挂载在vp0和vp1,因此有两种方案,分别是hdmi(vp0)+edp(vp1)和hdmi(vp1)+edp(vp0),以hdmi(vp0)+edp(vp1)做示例,在dts下添加如下:
  1. &edp_phy {
  2.         status = "okay";
  3. };

  4. &route_edp {
  5.         status = "okay";
  6.     connect = <&vp1_out_edp>;
  7. };

  8. &edp_in_vp0 {
  9.         status = "disabled";
  10. };

  11. &edp_in_vp1 {
  12.         status = "okay";
  13. };

  14. &route_hdmi {
  15.     status = "okay";
  16.     connect = <&vp0_out_hdmi>;
  17. };

  18. &hdmi {
  19.     status = "okay";
  20. };

  21. &hdmi_in_vp0 {
  22.     status = "okay";
  23. };

  24. &hdmi_in_vp1 {
  25.     status = "disabled";
  26. };
复制代码


第二步:配置主副屏
可以配置HDMI做主屏或者edp做主屏,以下是HDMI主屏,EDP做副屏,补丁如下:
  1. diff --git a/device/rockchip/rk356x/rk3568_firefly_aioj/rk3568_firefly_aioj.mk b/device/rockchip/rk356x/rk3568_firefly_aioj/rk3568_firefly_aioj.mk
  2. index 538b45b..5d5ef42 100644
  3. --- a/device/rockchip/rk356x/rk3568_firefly_aioj/rk3568_firefly_aioj.mk
  4. +++ b/device/rockchip/rk356x/rk3568_firefly_aioj/rk3568_firefly_aioj.mk
  5. @@ -42,6 +42,7 @@ PRODUCT_AAPT_PREF_CONFIG := mdpi
  6. ## add Rockchip properties
  7. #
  8. PRODUCT_PROPERTY_OVERRIDES += vendor.hwc.device.primary=HDMI-A
  9. +PRODUCT_PROPERTY_OVERRIDES += vendor.hwc.device.extend=eDP
  10. PRODUCT_PROPERTY_OVERRIDES += ro.sf.lcd_density=280
  11. PRODUCT_PROPERTY_OVERRIDES += ro.wifi.sleep.power.down=true
复制代码


第三步:添加DoubleScreen 异显demo app编译
  1. diff --git a/device/rockchip/rk356x/rk3568_firefly_aioj/rk3568_firefly_aioj.mk b/device/rockchip/rk356x/rk3568_firefly_aioj/rk3568_firefly_aioj.mk
  2. index 538b45b..bc7e110 100644
  3. --- a/device/rockchip/rk356x/rk3568_firefly_aioj/rk3568_firefly_aioj.mk
  4. +++ b/device/rockchip/rk356x/rk3568_firefly_aioj/rk3568_firefly_aioj.mk
  5. @@ -54,6 +54,9 @@ PRODUCT_PROPERTY_OVERRIDES += persist.dhcpserver.enable=1
  6. BOARD_HAVE_DONGLE := true
  7. #BOARD_HAS_RK_4G_MODEM := true

  8. +PRODUCT_PACKAGES += \
  9. +       DoubleScreen
  10. +
  11. #for gnss
  12. BOARD_HAS_GPS := false
复制代码


最后是编译固件,命令仅供参考,根据实际调试编译固件
  1. ./FFTools/make.sh -d rk3568-firefly-aioj-edp_M156X40 -j8 -l rk3568_firefly_aioj-userdebug
  2. ./FFTools/mkupdate/mkupdate.sh -l rk3568_firefly_aioj-userdebug
复制代码

烧录新的固件,打开DoubleScreen app就可以看到hdmi和edp播放不同的内容了
回复

使用道具 举报

765

积分

0

威望

0

贡献

技术大神

Rank: 3Rank: 3

积分
765
发表于 2022-3-16 14:13:21      沙发
wx_欢乐马_JQ7 发表于 2022-3-16 13:20
1.ROC-RK3568-PC这个固件 刷到DM-M10R800 V2 MIPI屏模模组 上会很卡,请问有什么解决方法吗?
2.DM-M10R80 ...

1. 卡是指系统卡顿还是单单触摸V2 屏幕卡顿呢
2. 如需DM-M10R800 LVDS屏幕模组(带TF-101-DISPLAY V2.5 转接板),可以联系销售sales@t-firefly.com
回复

使用道具 举报

765

积分

0

威望

0

贡献

技术大神

Rank: 3Rank: 3

积分
765
发表于 2022-3-17 14:42:48      板凳
wx_欢乐马_JQ7 发表于 2022-3-17 09:40
系统的桌面  系统的设置就非常卡顿,单击和长按等常规操作都不能分清,请官方亲试并更新,谢谢

这边测试是没有卡顿的,free -m 看下运行内存是否过低导致的系统卡顿,方便的话可以抓一份log出来,这边分析一下
回复

使用道具 举报

765

积分

0

威望

0

贡献

技术大神

Rank: 3Rank: 3

积分
765
发表于 2022-3-18 09:30:55      地板
junyeer 发表于 2022-3-18 00:23
你好,我验证了双屏启动(eDP+HDMI),按您说的方法,似乎驱动还有问题,没有找到eDP设备,我有个log,麻 ...

1.首先得将edp转HDMI验证好,再去验证双屏异显才有意义,不然你edp转HDMI都不能正常显示,异显肯定不行的,从log看都没有获取到modes,要先把edp转HDMI调好,再去验证异显
2. cat /sys/kernel/debug/gpio 看下hpd的io口是否有拉高, 还有看下cat /d/dri/0/summary, 发出来看下
3.麻烦另外提一个帖子,在另外的帖子回复你
回复

使用道具 举报

765

积分

0

威望

0

贡献

技术大神

Rank: 3Rank: 3

积分
765
发表于 2022-3-30 16:10:18      5#
本帖最后由 luwy 于 2022-3-30 16:11 编辑


我们采用的是第二种方案, 也可以通过命令实现简单的异显:
  1. am start --display <display_id> <activity_name>
  2. 例如:am start --display 1 com.android.settings/.Settings(把 settings 界面启动到指定的副屏)
复制代码

display id 可以通过dumpsys display获取
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

友情链接 : 爱板网 电子发烧友论坛 云汉电子社区 粤ICP备14022046号-2
快速回复 返回顶部 返回列表