Edge 2 - Android 13 - Image Distorted on Display Connected to Display Port dp0 (USB-C to HDMI)

Edge 2 - Image Distorted on Display Connected to Display Port dp0 (USB-C to HDMI)

Which system do you use? Android, Ubuntu, OOWOW or others?

Android 13

Which version of system do you use? Please provide the version of the system here:

OS Images showing the issue:

  1. edge2-android-13-v240611.img
  2. Self-built Android 13 (android_manifest/default.xml at khadas-edge2-android13 · khadas/android_manifest · GitHub)

OS Images NOT showing the issue:

  1. Self-built Android 12.1 (Edge2 Android with Dual Independent Displays (HDMI + DP [ + DSI ]))
  2. edge2-android-14-v240725-beta.img

Please describe your issue below:

We want to upgrade our khadas-boards from Android 12.1 to Android 13 (or even better 14).
However, we need to hook up two displays, one through the HDMI port and one through the USB-C port. A HDM-to-USB-C adapter is used to connect the Display’s HDMI-Port.
We are facing the issue that the image and the second display is distorted.
We tries displays of different vendors but the image is always not ok.
Changing the resolution via Settings/Display/HDMI to something not 1920x1080 fixes the imgage.
Sometimes the issue gets fixed by setting an unwanted resolution and then switch back to 1920x1080@60 as desired.
The issue doesn’t happen with Android 12.1 and Android 14 in the same HW setup.
Is there a way to fix this issue?

Post a console log of your issue below:

07-29 14:05:50.939 0 0 I : Kernel command line: storagemedia=emmc androidboot.storagemedia=emmc androidboot.mode=normal androidboot.dtb_idx=0 androidboot.dtbo_idx=0 androidboot.verifiedbootstate=orange androidboot.serialno=00100029B000F9 khadas_mipi_id=0 is_mipi_lcd_exit=0 hdmimode=1920x1080 console=ttyFIQ0 firmware_class.path=/vendor/etc/firmware init=/init rootwait ro loop.max_part=7 androidboot.console=ttyFIQ0 androidboot.wificountrycode=CN androidboot.hardware=rk30board androidboot.boot_devices=fe2e0000.mmc androidboot.selinux=permissive buildvariant=userdebug earlycon=uart8250,mmio32,0xfeb50000 irqchip.gicv3_pseudo_nmi=0
07-29 14:05:51.523 1 1 I rockchip-hdptx-phy-hdmi fed60000.hdmiphy: hdptx phy init success
07-29 14:05:51.564 1 1 I rockchip-drm display-subsystem: bound fdd90000.vop (ops vop2_component_ops)
07-29 14:05:51.565 1 1 I dwhdmi-rockchip fde80000.hdmi: registered ddc I2C bus driver
07-29 14:05:51.565 1 1 I rockchip-drm display-subsystem: bound fde80000.hdmi (ops dw_hdmi_rockchip_ops)
07-29 14:05:51.565 1 1 I rockchip-drm display-subsystem: bound fde50000.dp (ops dw_dp_component_ops)
07-29 14:05:51.673 1 1 I dwhdmi-rockchip fde80000.hdmi: use tmds mode
07-29 14:05:51.673 1 1 E dwhdmi-rockchip fde80000.hdmi: i2c read err!
07-29 14:05:51.673 1 1 I dwhdmi-rockchip fde80000.hdmi: use tmds mode
07-29 14:05:51.691 1 1 I rockchip-drm display-subsystem: [drm] fb0: rockchipdrmfb frame buffer device
07-29 14:05:51.691 1 1 I : [drm] Initialized rockchip 3.0.0 20140818 for display-subsystem on minor 0
07-29 14:05:51.696 1 1 I dw-hdmi-qp-hdcp.3.auto: dw_hdcp_qp_hdcp_probe success
07-29 14:05:53.709 1 1 I input : rockchip-hdmi0 rockchip-hdmi0 as /devices/platform/hdmi0-sound/sound/card1/input9
07-29 14:05:54.080 1 1 I : #1: rockchip-hdmi0
07-29 14:05:54.104 1 1 D : hdmimode=1920x1080
07-29 14:05:54.488 1 1 W init : Overriding previous property ‘ro.build.display.id’:‘kedge2-userdebug 13 TQ3C.230805.001.B2 eng.hlm.20240611.092005 release-keys’ with new value ‘Edge2-android-13-v20240611’
07-29 14:05:56.113 303 303 I dwhdmi-rockchip fde80000.hdmi: use tmds mode
07-29 14:05:56.186 303 303 I rockchip-vop2 fdd90000.vop: [drm:vop2_crtc_atomic_enable] Update mode to 1920x1080p60, type: 11(if:800, flag:0x0) for vp0 dclk: 148500000
07-29 14:05:56.186 303 303 I rockchip-hdptx-phy-hdmi fed60000.hdmiphy: hdptx_ropll_cmn_config bus_width:16a8c8 rate:1485000
07-29 14:05:56.186 303 303 E rockchip-hdptx-phy-hdmi fed60000.hdmiphy: hdptx phy pll locked!
07-29 14:05:56.186 303 303 I dwhdmi-rockchip fde80000.hdmi: final tmdsclk = 148500000
07-29 14:05:56.186 303 303 I dwhdmi-rockchip fde80000.hdmi: don’t use dsc mode
07-29 14:05:56.186 303 303 I dwhdmi-rockchip fde80000.hdmi: dw hdmi qp use tmds mode
07-29 14:05:56.186 303 303 I rockchip-hdptx-phy-hdmi fed60000.hdmiphy: bus_width:0x16a8c8,bit_rate:1485000
07-29 14:05:56.186 303 303 E rockchip-hdptx-phy-hdmi fed60000.hdmiphy: hdptx phy lane locked!
07-29 14:05:56.205 303 303 I rockchip-vop2 fdd90000.vop: [drm:vop2_crtc_atomic_enable] Update mode to 1920x1080p60, type: 10(if:200, flag:0x0) for vp2 dclk: 148500000
07-29 14:05:56.470 303 303 I dwhdmi-rockchip fde80000.hdmi: use tmds mode
07-29 14:05:57.570 303 303 I dwhdmi-rockchip fde80000.hdmi: use tmds mode
07-29 14:05:55.924 548 574 I SystemConfig: Reading permissions from /system/etc/permissions/com.android.media.remotedisplay.xml
07-29 14:05:55.927 548 574 I SystemConfig: Reading permissions from /system/etc/permissions/rockchip.software.display.xml
07-29 14:05:55.934 548 574 I SystemConfig: Reading permissions from /vendor/etc/permissions/android.hardware.hdmi.cec.xml
07-29 14:05:55.964 548 548 W PowerProfile: screen.on is deprecated! Use screen.on.display0 instead.
07-29 14:05:55.964 548 548 W PowerProfile: screen.full is deprecated! Use screen.full.display0 instead.
07-29 14:05:56.007 548 548 D SystemServerTiming: StartDisplayOffloadService
07-29 14:05:56.007 548 548 V SystemServerTiming: StartDisplayOffloadService took to complete: 0ms
07-29 14:05:56.007 548 548 D SystemServerTiming: StartDisplayManager
07-29 14:05:56.007 548 548 I SystemServiceManager: Starting com.android.server.display.DisplayManagerService
07-29 14:05:56.009 548 548 V SystemServerTiming: StartDisplayManager took to complete: 2ms
07-29 14:05:56.009 548 548 D SystemServerTiming: WaitForDisplay
07-29 14:05:56.010 548 548 D SystemServerTiming: OnBootPhase_100_com.android.server.display.DisplayManagerService
07-29 14:05:56.011 548 570 E LocalDisplayAdapter: Can’t find display mode with id -1
07-29 14:05:56.011 548…

@jkoehler edge2-android-13-v231123 Could you please help me try this version and see what the phenomenon is?

@goenjoy thanks for your prompt feedback. edge2-android-13-v231123 also shows the same symptoms.

The problem can be temporarily fixed (Picture on second screen distorted after boot):

  • Go to Settings->Display->HDMI->DisplayPort->Resolution
  • switch to 1920x1080@59.94 → Screen turns black
  • switch to Auto or 1920x1080@60 → Screen shows graphics correctly

Unfortunately, rebooting the board brings the error situation back.

@jkoehler From these two sentences of information, we can roughly understand the reason. It is estimated that your issue can be resolved through whitelisting. Please try operating according to the following method.

C:\Users\25348>adb root && adb remount
restarting adbd as root
remount succeeded

C:\Users\25348>adb push resolution_white.xml system/usr/share/resolution_white.xml
W:\edge2-android13-sdk\device\khadas\rk3588\kedge2\resolution_white.xml: 1 file pushed, 0 skipped. 1.0 MB/s (5757 bytes in 0.006s)

C:\Users\25348>adb shell sync

C:\Users\25348>adb reboot

C:\Users\25348>

@goenjoy, thanks for the info about the whitelist-file.
I tried your advice but I observed the following:
The first reboot after pushing resolution_white.xml, the display hooked up to DP1 came up with a resolution that looked strange (left):

In HDMI settings there are resolutions available for HDMI but not for DisplayPort:

HDMI

Display Port

Subsequent boots the display gets distorted again

I need to run both displays at 1920x1080.

@jkoehler That means there is a compatibility issue with Android 13 version. Can you switch to Android 14? Because we will increase our efforts in maintaining the latest SDK in the future. If you want to use Android 13 version, can you try the following methods to see if they are effective?

C:\Users\25348>adb root && adb remount
C:\Users\25348>adb shell "rm system/usr/share/resolution_white.xml"
C:\Users\25348>adb shell sync
C:\Users\25348>adb reboot
##Go to Settings->Display->HDMI->DisplayPort->Resolution
##switch to 1920x1080@60
C:\Users\25348>adb shell sync
C:\Users\25348>adb reboot

Dear @goenjoy,
thanks for your continued support.

In my opinion, the issue with the display should happen with any Full-HD display connected to the USB-C port of the Edge2 board with Android 13.
Could you try to reproduce this issue on your end?

I’d love to use Android 14. However, I am using Khadas Edge2 boards for developing on Google’s Automotive OS (AAOS). I build AAOS based on the sources provided by Khadas at GiuHub. Could you share the same for Android 14 with me?

Thank you very much.

@jkoehler I have verified that there is no problem with 4K, but there is indeed a problem with 1080p. I will follow up on this issue. The Android 14 code is ready and an announcement will be released @xiong.

Thanks, looking forward!
:+1: :smile:

Hi @goenjoy,
are there any updates on this topic?
Thx!

@jkoehler edge2-android13-v240805.img - Google Drive
Try this firmware version and see if it still doesn’t work, then you can only wait for the edge2-android14 version code to be uploaded. The responsible colleague is not ready to upload the code yet.

The firmware fixes the issue. Thank you so much!
I need to build my own image. Is the patch on github or can you please provide the one?

@jkoehler The patch code has been uploaded to GitHub, please synchronize.

1 Like

Hi @jkoehler Did you build aaos on android13 successfully?

Hi @overflow, @goenjoy,

I couldn’t build it yet because github has a problem with LFS quota:

00:12:58.310 batch response: This repository is over its data quota. Account responsible for LFS bandwidth should purchase more data packs to restore access. 00:12:58.310 error: failed to fetch some objects from ‘https://github.com/khadas/android_external_camera_engine_rkaiq.git/info/lfs

I also meet this problem when pull LFS,can you fix it or provide a drive ? @goenjoy