固件类型:官方提供的固件
固件文件名称:rk3568_firefly_aioj/Android11.0/V1.0.2203172147/
固件下载地址:自行编译
Log日志:eDPbootuplogV20220317.zip
历史回顾:
问:
请问,固件对于eDP输出的屏幕是否支持,如果不支持,能否告知eDP怎么实现HDMI+eDP的双屏异显
luwy回:
此案例固件仅支持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下添加如下:
&edp_phy {
status = "okay";
};
&route_edp {
status = "okay";
connect = <&vp1_out_edp>;
};
&edp_in_vp0 {
status = "disabled";
};
&edp_in_vp1 {
status = "okay";
};
&route_hdmi {
status = "okay";
connect = <&vp0_out_hdmi>;
};
&hdmi {
status = "okay";
};
&hdmi_in_vp0 {
status = "okay";
};
&hdmi_in_vp1 {
status = "disabled";
};
第二步:配置主副屏
可以配置HDMI做主屏或者edp做主屏,以下是HDMI主屏,EDP做副屏,补丁如下:
diff --git a/device/rockchip/rk356x/rk3568_firefly_aioj/rk3568_firefly_aioj.mk b/device/rockchip/rk356x/rk3568_firefly_aioj/rk3568_firefly_aioj.mk
index 538b45b..5d5ef42 100644
--- a/device/rockchip/rk356x/rk3568_firefly_aioj/rk3568_firefly_aioj.mk
+++ b/device/rockchip/rk356x/rk3568_firefly_aioj/rk3568_firefly_aioj.mk
@@ -42,6 +42,7 @@ PRODUCT_AAPT_PREF_CONFIG := mdpi
## add Rockchip properties
#
PRODUCT_PROPERTY_OVERRIDES += vendor.hwc.device.primary=HDMI-A
+PRODUCT_PROPERTY_OVERRIDES += vendor.hwc.device.extend=eDP
PRODUCT_PROPERTY_OVERRIDES += ro.sf.lcd_density=280
PRODUCT_PROPERTY_OVERRIDES += ro.wifi.sleep.power.down=true
第三步:添加DoubleScreen 异显demo app编译
diff --git a/device/rockchip/rk356x/rk3568_firefly_aioj/rk3568_firefly_aioj.mk b/device/rockchip/rk356x/rk3568_firefly_aioj/rk3568_firefly_aioj.mk
index 538b45b..bc7e110 100644
--- a/device/rockchip/rk356x/rk3568_firefly_aioj/rk3568_firefly_aioj.mk
+++ b/device/rockchip/rk356x/rk3568_firefly_aioj/rk3568_firefly_aioj.mk
@@ -54,6 +54,9 @@ PRODUCT_PROPERTY_OVERRIDES += persist.dhcpserver.enable=1
BOARD_HAVE_DONGLE := true
#BOARD_HAS_RK_4G_MODEM := true
+PRODUCT_PACKAGES += \
+ DoubleScreen
+
#for gnss
BOARD_HAS_GPS := false
最后是编译固件,命令仅供参考,根据实际调试编译固件
./FFTools/make.sh -d rk3568-firefly-aioj-edp_M156X40 -j8 -l rk3568_firefly_aioj-userdebug
./FFTools/mkupdate/mkupdate.sh -l rk3568_firefly_aioj-userdebug
烧录新的固件,打开DoubleScreen app就可以看到hdmi和edp播放不同的内容了
问:
非常感谢,我先试试,我这个方案有点特殊,我是使用的eDP转HDMI的转接板,显示1080P的分辨率,我先试试吧,有问题再咨询您~
你好,我验证了双屏启动(eDP+HDMI),按您说的方法,似乎驱动还有问题,没有找到eDP设备,我有个log,麻烦帮忙看看
uboot里面有个错误log:
edp@fe0c0000 disconnected
kernel里面有下面的错误log:
行 512: [ 0.223258] rockchip-drm display-subsystem: Linked as a consumer to fe0c0000.edp
行 514: [ 0.229914] panel-simple edp-panel: Linked as a consumer to regulator.20
行 515: [ 0.229960] panel-simple edp-panel: edp-panel supply vsp not found, using dummy regulator
行 515: [ 0.229960] panel-simple edp-panel: edp-panel supply vsp not found, using dummy regulator
行 516: [ 0.230011] panel-simple edp-panel: Linked as a consumer to regulator.0
行 517: [ 0.230040] panel-simple edp-panel: edp-panel supply vsn not found, using dummy regulator
行 517: [ 0.230040] panel-simple edp-panel: edp-panel supply vsn not found, using dummy regulator
另外Android双屏显示APP的log我也附在了最下面,第一次弄eDP,感谢~~
回:
1.首先得将edp转HDMI验证好,再去验证双屏异显才有意义,不然你edp转HDMI都不能正常显示,异显肯定不行的,从log看都没有获取到modes,要先把edp转HDMI调好,再去验证异显
2. cat /sys/kernel/debug/gpio 看下hpd的io口是否有拉高, 还有看下cat /d/dri/0/summary, 发出来看下
3.麻烦另外提一个帖子,在另外的帖子回复你
tchip_askquestions
eDPbootuplogV20220317.zip (33.5 KB)


