1 找到在要编译的rk3288-evb-android-rk808-edp.dts
调试思路先将edp和lvd的配置其dts分别点亮后,最后将两个屏幕的dts合
在rk3288-evb- android-rk808-edp.dts中添加最终的edp屏和lvds屏的dts配置如下:
。。。。。。。。。。
//为edp start添加《《《
&edp {
status = “okay”;
};
&edp_phy {
状态=“好的”;
};
&route_edp {
status = “好的”;
};
//rk3288 有两路通道vopb(4K) vopl(2K) ,这里异显设vopb通道是edp,vopl通道是lvds
&edp_in_vopb {
status = “okay”;
};
&edp_in_vopl {
状态=“禁用”;
};
&edp_panel {
// 兼容 = “simple-panel”;
// 背光 = 《&backlight》; //这里异显如果发光,只需要配置一个发光
power-supply = 《&vcc_lcd》;
状态=“好的”;
disp_timings: display-timings {
native-mode = 《&edp_panel_name》;
edp_panel_name:timing0 {
时钟频率 = 《158000000》;
hactive = 《1920》;
活跃 = 《1080》;
hfront-porch = 《48》;
hsync-len = 《4》;
hback-porch = 《310》;
vfront-porch = 《3》;
vsync-len = 《4》;
hsync-active = 《0》;
垂直同步主动 = 《0》;
停用 = 《0》;
像素clk-active = 《0》;
};
};
};
// 添加 edp end 》》》
// 添加用于 lvds start 《《《
&route_lvds {
status = “okay”;
};
&lvds {
状态=“好的”;
};
//rk3288 有两路通道vopb(4K) vopl(2K) ,这里异显设vopb通道是edp,vopl通道是lvds
&lvds_in_vopl {
status = “okay”;
};
&lvds_in_vopb {
状态=“禁用”;
};
&
lvds_panel {状态=“好的”;
;
背光 = 《&背光》; //这里异显如果使用ME,只需要配置一个亮度
// bus-format = 《DIA_BUS_FMT_RGB666_1X18》; 《MEDIA_BUS_FMT_RGB888_1X24》;
// 总线格式 = 《MEDIA_BUS_FMT_RGB888_1X24》;
启用-gpios = 《&gpio7 3 GPIO_ACTIVE_HIGH》;
// 启用 = 《&gpio7 3 GPIO_ACTIVE_HIGH》;
启用延迟毫秒 = 《10》;
// 电源 = 《&vcc_lcd》;
Rockchip,数据映射=“vesa”;
// rockchip,data-mapping = “jeida”;
Rockchip,数据宽度= 《24》;
Rockchip,输出=“duallvds”;
显示时序 {
原生模式 = 《&lvds_panel_name》;
屏幕类型 = 《SCREEN_DUAL_LVDS》;
lvds 格式 = 《LVDS_8BIT_2》;
外观 = 《OUT_P888》;
时钟频率 = 《148000000》;
hactive = 《1920》;
活跃 = 《1080》;
hback-porch = 《100》;
hfront-porch = 《160》;
vback 门廊 = 《25》;
vfront-porch = 《10》;
hsync-len = 《1》;
垂直同步长度 = 《1》;
hsync-active = 《20》;
停用 = 《0》;
像素clk-active = 《0》;
};
};
};
// 添加 lvds end 《《《 。。。。。。或者
。。。。。
注意:如果配置VOPL(2K)通道是eDPDSI(mipi屏),上层还需要关掉AFBC,打上下面的补丁
wangxd@ build-server-100:~/work/dsy/rk3288-Android-7.0/hardware/rockchip/libgralloc((3bb0f11.。.))$ git diff Android.mk
diff --git a/Android.mk b/Android. mk
index 52387b9..00863f8 100755
--- a/Android.mk
+++ b/Android.mk
@@ -153,16 +153,19 @@ endif
ifeq ($(strip $(TARGET_BOARD_PLATFORM_GPU)), mali-t860 )
MALI_AFBC_GRALLOC := 1
-USE_AFBC_LAYER = 1
+USE_AFBC_LAYER = 0
LOCAL_CFLAGS += -DMALI_PRODUCT_ID_T86X=1
endif
2 属性在/device/rockchip/rk3288/system.prop文件中配置好主副屏的
wangxd@build-server-100:~/work/dsy/rk3288-Android-7.0/device/rockchip/rk3288(( f3c5a0a.。.))$ git diff system.prop
diff --git a/system.prop b/system.prop
旧模式 100644
新模式 100755
索引 be3f161..ce6c558
--- a/system.prop
+++ b/ system.prop
@@ -28,7 +28,8 @@ sys.wallpaper.rgb565=0
sf.power.control=2073600
sys.rkadb.root=0
ro.sf.fakerotation=false
ro.rk.MassStorage=false
ro.rk.systembar.voiceicon=true
ro.rk.systembar.tabletUI=false
@@ -42,6 +43,36 @@ wifi.supplicant_scan_interval=15
ro.factory.tool=0
ro.kernel.android.checkjni= 0
ro.sf.lcd_density=160
ro.adb.secure=0
ro.rk.displayd.enable=false
+ #主屏是eDP
+ sys.hwc.device.primary=eDP
+ #副屏是LVDS
+ sys.hwc.device .extend=LVDS
+#主屏主屏正常设置与主屏主屏一致
+ #副屏
主屏
+p.sys.resolution.main=1920x1080 +
#副屏
persist.sys.resolution.aux=1920x1080
+#副屏是否全屏显示
+persist.sys.rotation.efull = true
+#主屏的旋转方向(设置的值为0 90 180 270)
+ ro.sf.hwrotation=0
+#副屏输出旋转0 / 90 / 180 / 270(设置的方向值是0 1 2 3)
+ persist.sys.rotation.einit =0
+ #副屏是否随着g-sensor旋转(只关注方向) ,黑边不关注)
+ ro.sys.rotation.sensor = true
+#主副屏的方向是否相同
+ ro.same.orientation=false
+#副屏是否随主旋转
+ro.rotation.external=true
+#设置 sys.dual_screen.keycodes 来属性的方式来修改相应的屏幕同步显示
+ sys.dual_screen.keycodes=24, 25
3 寻找 RK 申请屏幕异显的异同
**主要是按照双上框架和 cts 目录层的提供显着接口
合入目录** 4 提供的双屏应用框架和 cts 分配后以下显着
操作
(1 )打开设置的显示-》HDMI中打开如下图片中的双显开关,
(2)用adb输入触发输入keyevent 24 25 可以看到双命令屏显
5 可以用谷歌以下google展示类实现异显的pk测试异显功能
1 找到在要编译的rk3288-evb-android-rk808-edp.dts
调试思路先将edp和lvd的配置其dts分别点亮后,最后将两个屏幕的dts合
在rk3288-evb- android-rk808-edp.dts中添加最终的edp屏和lvds屏的dts配置如下:
。。。。。。。。。。
//为edp start添加《《《
&edp {
status = “okay”;
};
&edp_phy {
状态=“好的”;
};
&route_edp {
status = “好的”;
};
//rk3288 有两路通道vopb(4K) vopl(2K) ,这里异显设vopb通道是edp,vopl通道是lvds
&edp_in_vopb {
status = “okay”;
};
&edp_in_vopl {
状态=“禁用”;
};
&edp_panel {
// 兼容 = “simple-panel”;
// 背光 = 《&backlight》; //这里异显如果发光,只需要配置一个发光
power-supply = 《&vcc_lcd》;
状态=“好的”;
disp_timings: display-timings {
native-mode = 《&edp_panel_name》;
edp_panel_name:timing0 {
时钟频率 = 《158000000》;
hactive = 《1920》;
活跃 = 《1080》;
hfront-porch = 《48》;
hsync-len = 《4》;
hback-porch = 《310》;
vfront-porch = 《3》;
vsync-len = 《4》;
hsync-active = 《0》;
垂直同步主动 = 《0》;
停用 = 《0》;
像素clk-active = 《0》;
};
};
};
// 添加 edp end 》》》
// 添加用于 lvds start 《《《
&route_lvds {
status = “okay”;
};
&lvds {
状态=“好的”;
};
//rk3288 有两路通道vopb(4K) vopl(2K) ,这里异显设vopb通道是edp,vopl通道是lvds
&lvds_in_vopl {
status = “okay”;
};
&lvds_in_vopb {
状态=“禁用”;
};
&
lvds_panel {状态=“好的”;
;
背光 = 《&背光》; //这里异显如果使用ME,只需要配置一个亮度
// bus-format = 《DIA_BUS_FMT_RGB666_1X18》; 《MEDIA_BUS_FMT_RGB888_1X24》;
// 总线格式 = 《MEDIA_BUS_FMT_RGB888_1X24》;
启用-gpios = 《&gpio7 3 GPIO_ACTIVE_HIGH》;
// 启用 = 《&gpio7 3 GPIO_ACTIVE_HIGH》;
启用延迟毫秒 = 《10》;
// 电源 = 《&vcc_lcd》;
Rockchip,数据映射=“vesa”;
// rockchip,data-mapping = “jeida”;
Rockchip,数据宽度= 《24》;
Rockchip,输出=“duallvds”;
显示时序 {
原生模式 = 《&lvds_panel_name》;
屏幕类型 = 《SCREEN_DUAL_LVDS》;
lvds 格式 = 《LVDS_8BIT_2》;
外观 = 《OUT_P888》;
时钟频率 = 《148000000》;
hactive = 《1920》;
活跃 = 《1080》;
hback-porch = 《100》;
hfront-porch = 《160》;
vback 门廊 = 《25》;
vfront-porch = 《10》;
hsync-len = 《1》;
垂直同步长度 = 《1》;
hsync-active = 《20》;
停用 = 《0》;
像素clk-active = 《0》;
};
};
};
// 添加 lvds end 《《《 。。。。。。或者
。。。。。
注意:如果配置VOPL(2K)通道是eDPDSI(mipi屏),上层还需要关掉AFBC,打上下面的补丁
wangxd@ build-server-100:~/work/dsy/rk3288-Android-7.0/hardware/rockchip/libgralloc((3bb0f11.。.))$ git diff Android.mk
diff --git a/Android.mk b/Android. mk
index 52387b9..00863f8 100755
--- a/Android.mk
+++ b/Android.mk
@@ -153,16 +153,19 @@ endif
ifeq ($(strip $(TARGET_BOARD_PLATFORM_GPU)), mali-t860 )
MALI_AFBC_GRALLOC := 1
-USE_AFBC_LAYER = 1
+USE_AFBC_LAYER = 0
LOCAL_CFLAGS += -DMALI_PRODUCT_ID_T86X=1
endif
2 属性在/device/rockchip/rk3288/system.prop文件中配置好主副屏的
wangxd@build-server-100:~/work/dsy/rk3288-Android-7.0/device/rockchip/rk3288(( f3c5a0a.。.))$ git diff system.prop
diff --git a/system.prop b/system.prop
旧模式 100644
新模式 100755
索引 be3f161..ce6c558
--- a/system.prop
+++ b/ system.prop
@@ -28,7 +28,8 @@ sys.wallpaper.rgb565=0
sf.power.control=2073600
sys.rkadb.root=0
ro.sf.fakerotation=false
ro.rk.MassStorage=false
ro.rk.systembar.voiceicon=true
ro.rk.systembar.tabletUI=false
@@ -42,6 +43,36 @@ wifi.supplicant_scan_interval=15
ro.factory.tool=0
ro.kernel.android.checkjni= 0
ro.sf.lcd_density=160
ro.adb.secure=0
ro.rk.displayd.enable=false
+ #主屏是eDP
+ sys.hwc.device.primary=eDP
+ #副屏是LVDS
+ sys.hwc.device .extend=LVDS
+#主屏主屏正常设置与主屏主屏一致
+ #副屏
主屏
+p.sys.resolution.main=1920x1080 +
#副屏
persist.sys.resolution.aux=1920x1080
+#副屏是否全屏显示
+persist.sys.rotation.efull = true
+#主屏的旋转方向(设置的值为0 90 180 270)
+ ro.sf.hwrotation=0
+#副屏输出旋转0 / 90 / 180 / 270(设置的方向值是0 1 2 3)
+ persist.sys.rotation.einit =0
+ #副屏是否随着g-sensor旋转(只关注方向) ,黑边不关注)
+ ro.sys.rotation.sensor = true
+#主副屏的方向是否相同
+ ro.same.orientation=false
+#副屏是否随主旋转
+ro.rotation.external=true
+#设置 sys.dual_screen.keycodes 来属性的方式来修改相应的屏幕同步显示
+ sys.dual_screen.keycodes=24, 25
3 寻找 RK 申请屏幕异显的异同
**主要是按照双上框架和 cts 目录层的提供显着接口
合入目录** 4 提供的双屏应用框架和 cts 分配后以下显着
操作
(1 )打开设置的显示-》HDMI中打开如下图片中的双显开关,
(2)用adb输入触发输入keyevent 24 25 可以看到双命令屏显
5 可以用谷歌以下google展示类实现异显的pk测试异显功能
举报