chromium black screen issue

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

chromium black screen issue

134 Views
fsong
Contributor II

The system is based on NXP i.mx8m mini som and our function board. The image on board is fsl-image-af-littlekernel, with added chromium-ozone-wayland (v101) package. 

We are facing black screen issue while running chromium. Here is the detail: 

After board bootup, the weston service works fine, launching the wayland clients such as weston-flower/weston-terminal can show windows on the screen as expected.

But after launching chromium, the windows are gone and the screen becomes black. By my understanding, chromium should not impact to other working wayland clients. Now it happens. The weston process is still running, but likely works abnormally since launching weston-flower doesn't show anything on the screen.

The weston service functions well again after restart.

The chromium command is:  # chromium --enable-features=UseOzonePlatform --ozone-platform=wayland --no-sandbox

From chromium log, I can see the frames generated:

[776:802:0627/090350.714520:VERBOSE1:skia_output_surface_impl_on_gpu.cc(523)] total showed 1 frames, total time 1 ms, fps is 1e+06

[776:802:0627/090350.781601:VERBOSE1:skia_output_surface_impl_on_gpu.cc(523)] total showed 2 frames, total time 67363 ms, fps is 29.6899

[776:802:0627/090350.815464:VERBOSE1:skia_output_surface_impl_on_gpu.cc(523)] total showed 3 frames, total time 103623 ms, fps is 28.9511

[776:802:0627/090350.871022:VERBOSE1:skia_output_surface_impl_on_gpu.cc(523)] total showed 4 frames, total time 159941 ms, fps is 25.0092

[776:802:0627/090350.905303:VERBOSE1:skia_output_surface_impl_on_gpu.cc(523)] total showed 5 frames, total time 189915 ms, fps is 26.3276

And the weston log:

Date: 2024-07-02 UTC
[07:47:45.043] weston 11.0.1
https://wayland.freedesktop.org
Bug reports to: https://gitlab.freedesktop.org/wayland/weston/issues/
Build: lf-6.1.22-2.0.0+
[07:47:45.046] Command line: /usr/bin/weston --log=/run/user/0/weston.log --modules=systemd-notify.so
[07:47:45.046] OS: Linux, 6.1.22+g85cdcd13b5cc, #1 SMP PREEMPT Mon Jun 12 12:31:27 UTC 2023, aarch64
[07:47:45.046] Flight recorder: enabled
[07:47:45.047] Using config file '/etc/xdg/weston/weston.ini'
[07:47:45.049] Output repaint window is 16 ms maximum.
[07:47:45.052] Loading module '/usr/lib/libweston-11/drm-backend.so'
[07:47:45.069] initializing drm backend
[07:47:45.069] Trying logind launcher...
[07:47:45.084] logind: session control granted
[07:47:45.097] using /dev/dri/card1
[07:47:45.097] DRM: supports atomic modesetting
[07:47:45.097] DRM: does not support GBM modifiers
[07:47:45.097] DRM: supports picture aspect ratio
[07:47:45.099] Loading module '/usr/lib/libweston-11/g2d-renderer.so'
[07:47:45.189] event0 - 30370000.snvs:snvs-powerkey: is tagged by udev as: Keyboard
[07:47:45.189] event0 - 30370000.snvs:snvs-powerkey: device is a keyboard
[07:47:45.231] libinput: configuring device "30370000.snvs:snvs-powerkey".
[07:47:45.232] DRM: head 'DSI-1' updated, connector 35 is connected, EDID make 'unknown', model 'unknown', serial 'unknown'
Supported EOTF modes: SDR
[07:47:45.232] DRM: head 'DSI-1' found, connector 35 is connected, EDID make 'unknown', model 'unknown', serial 'unknown'
Supported EOTF modes: SDR
[07:47:45.232] Registered plugin API 'weston_drm_output_api_v1' of size 32
[07:47:45.232] Color manager: no-op
[07:47:45.233] Module '/usr/lib/libgbm.so' already loaded
[07:47:45.233] Output 'DSI-1' attempts EOTF mode: SDR
[07:47:45.233] Output 'DSI-1' using color profile: built-in default sRGB SDR profile
[07:47:45.303] Initialized backlight for head 'DSI-1', device /sys/class/backlight/32e10000.mipi_dsi.0
[07:47:45.308] Output DSI-1 (crtc 33) video modes:
1080x1920@55.0, preferred, current, 121.0 MHz
[07:47:45.308] associating input device event0 with output DSI-1 (none by udev)
[07:47:45.308] Output 'DSI-1' enabled with head(s) DSI-1
[07:47:45.309] Compositor capabilities:
arbitrary surface rotation: yes
screen capture uses y-flip: yes
cursor planes: yes
arbitrary resolutions: no
view mask clipping: yes
explicit sync: yes
color operations: no
presentation clock: CLOCK_MONOTONIC, id 1
presentation clock resolution: 0.000000001 s
[07:47:45.322] Loading module '/usr/lib/weston/desktop-shell.so'
[07:47:45.325] Loading module '/usr/lib/weston/systemd-notify.so'
[07:47:45.331] info: add 1 socket(s) provided by systemd
[07:47:45.332] launching '/usr/libexec/weston-keyboard'
[07:47:45.336] launching '/usr/libexec/weston-desktop-shell'
[07:50:35.673] caught signal 15
[07:50:35.673] panel surface gone
[07:50:35.673] background surface gone
[07:50:35.683] event0 - 30370000.snvs:snvs-powerkey: device removed
Date: 2024-07-02 UTC
[07:50:36.345] weston 11.0.1

I don't see errors likely related to this issue from kern.log.

Let me post these logs.  Any tips are appreciated.

 

Thanks,

Frank Song

Labels (1)
0 Kudos
Reply
3 Replies

117 Views
fsong
Contributor II

Let me provide additional info:

When run same image (actually same SD card) on imx8mm EVK, Chromium works as it can show the window as expected.

The difference is, I use original evk-rm67199.dtb for running on EVK, and use modified imx8mm-ab2-af-rpc.dtb for running on our board.

And I compared the usage info of CPU/memory/GPU on the two boards by viewing the top/gputop command output. There are no obvious difference.

Here is the top output(part) :

root@imx8mmab2af:~# top
top - 01:22:47 up 10 min, 3 users, load average: 0.53, 0.20, 0.06
Tasks: 157 total, 1 running, 156 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.7 us, 0.3 sy, 0.0 ni, 98.8 id, 0.0 wa, 0.1 hi, 0.1 si, 0.0 st
MiB Mem : 1157.9 total, 392.5 free, 543.6 used, 341.3 buff/cache
MiB Swap: 0.0 total, 0.0 free, 0.0 used. 614.3 avail Mem

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
604 root 20 0 16.6g 155740 111724 S 2.6 13.1 0:06.18 chromium-bin
523 avahi 20 0 6084 2932 2540 S 0.7 0.2 0:03.66 avahi-daemon
544 root 20 0 359804 22976 14968 S 0.7 1.9 0:00.80 weston
590 root 20 0 11696 7820 6448 S 0.3 0.7 0:00.07 sshd
758 root 20 0 0 0 0 I 0.3 0.0 0:00.01 kworker/0:0-mm_percpu_wq
760 root 20 0 7212 4336 2300 R 0.3 0.4 0:00.19 top
1 root 20 0 165068 9252 6436 S 0.0 0.8 0:03.72 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.01 kthreadd

And gputop output:

Clients attached to GPU | 0 / 6 (sample_mode: TIME - 1.0 secs)
Galcore version:6.4.11.658245, gpuperfcnt:e4ba456abd29, 1.4
3D:GC600,Rev:4653 Core: 499 MHz, Shader: 499 MHz UNKNOWN:GC520,Rev:5341
3D Cores:1,2D Cores:0,VG Cores:0

IMX8_DDR0: read-cycles:632.16,write-cycles:23.94
IMX8_DDR1:

PID RES(kB) CONT(kB) VIRT(kB) Non-PGD(kB) Total(kB) CMD
604 39011 40140 0 0 79151 chromium-bin
544 705 8964 0 0 9669 weston

TOT: 39717 49104 0 0 88821
TOT_CON: - - - - 4154586

It looks like chromium and weston are working all the time, but nothing can be seen from the screen.

 

 

  

 

 

0 Kudos
Reply

61 Views
fsong
Contributor II

Update - an interesting observation:

 

While the screen is black, I captured the screen using weston-screenshooter command. The image captured looks fine. 

Likely the composited frame provided by weston is correct.

 

0 Kudos
Reply

17 Views
fsong
Contributor II

Update - the chromium window starts to appear on the screen

 

When set the pixel clock from original 121M to 60M (I intend to decrease the display refresh rate),  I can see the chromium window appearing on the screen, though the display is a bit yellow and with flicker after chromium launching.  Please see attached.

The code snippet in panel-raydium-rm67191.c (this panel is driven by rm67199) for specifying the pixel clock rate is as below:

static const struct drm_display_mode default_mode = {
           .clock = 60000,
           .hdisplay = 1080,
           .hsync_start = 1080 + 60,
           .hsync_end = 1080 + 60 + 10,
           .htotal = 1080 + 60 + 10 + 80,
           .vdisplay = 1920,
           .vsync_start = 1920 + 15,
           .vsync_end = 1920 + 15 + 5,
           .vtotal = 1920 + 15 + 5 + 8,
           .width_mm = 68,
           .height_mm = 121,
            ... ...
};   

There are 2 questions:

1. Is there guideline on how to set pixel clock? I tried some values, such as 70M, 69M, 68M, 66M, 64M, 63M, and etc. Most of them result in abnormal display, such as wrong color, blink, flicker ......

2. Basically under the situation of normal display, the screen would suddenly become black once chromium starts. What's the possible cause? Actually I tried Qt quick nano browser, and got the same issue.

The viv samples and gpu-sdk demos run well on the board.

 

Thanks,

Frank

 

 

 

0 Kudos
Reply