Hi,
we are testing the SDK 9.1 filesystem without System on Module and have noticed that the weston service often fails to start. During investigation, it was discovered that the problem seems far more likely to occur on dual-core chips than quad core. This leads me to believe there is a race condition between the weston service and one of its required predecessors.
Jan 01 00:00:19 am62xx-evm weston[444]: wayland.freedesktop.org
Jan 01 00:00:19 am62xx-evm weston[444]: Bug reports to: gitlab.freedesktop.org/.../
Jan 01 00:00:19 am62xx-evm weston[444]: Build: 10.0.2
Jan 01 00:00:19 am62xx-evm weston[444]: [00:00:19.592] Command line: /usr/bin/weston --modules=systemd-notify.so
Jan 01 00:00:19 am62xx-evm weston[444]: [00:00:19.592] OS: Linux, 6.1.33-g40c32565ca, #1 SMP PREEMPT Thu Jul 6 14:17:24 UTC 2023, aarch64
Jan 01 00:00:19 am62xx-evm weston[444]: [00:00:19.592] Flight recorder: enabled
Jan 01 00:00:19 am62xx-evm containerd[429]: time="1970-01-01T00:00:19.583199575Z" level=info msg="loading plugin \"io.containerd.runtime.v2.task\"..." type=io.containerd.runtime.v2
Jan 01 00:00:19 am62xx-evm containerd[429]: time="1970-01-01T00:00:19.593908705Z" level=info msg="loading plugin \"io.containerd.monitor.v1.cgroups\"..." type=io.containerd.monitor.v1
Jan 01 00:00:19 am62xx-evm weston[444]: [00:00:19.595] Using config file '/etc/xdg/weston/weston.ini'
Jan 01 00:00:19 am62xx-evm weston[444]: [00:00:19.601] Output repaint window is 7 ms maximum.
Jan 01 00:00:19 am62xx-evm weston[444]: [00:00:19.603] Loading module '/usr/lib/libweston-10/drm-backend.so'
Jan 01 00:00:19 am62xx-evm containerd[429]: time="1970-01-01T00:00:19.604346900Z" level=info msg="loading plugin \"io.containerd.service.v1.tasks-service\"..." type=io.containerd.service.v1
Jan 01 00:00:19 am62xx-evm containerd[429]: time="1970-01-01T00:00:19.604891600Z" level=info msg="loading plugin \"io.containerd.grpc.v1.introspection\"..." type=io.containerd.grpc.v1
Jan 01 00:00:19 am62xx-evm containerd[429]: time="1970-01-01T00:00:19.605151825Z" level=info msg="loading plugin \"io.containerd.internal.v1.restart\"..." type=io.containerd.internal.v1
Jan 01 00:00:19 am62xx-evm weston[444]: [00:00:19.614] initializing drm backend
Jan 01 00:00:19 am62xx-evm weston[444]: [00:00:19.614] Trying logind launcher...
Jan 01 00:00:19 am62xx-evm weston[444]: [00:00:19.631] logind: session control granted
Jan 01 00:00:19 am62xx-evm weston[444]: [00:00:19.640] logind: TakeDevice on 226:0 failed.
Jan 01 00:00:19 am62xx-evm weston[444]: [00:00:19.640] logind: TakeDevice on /dev/dri/card0 failed, error=No such device
Jan 01 00:00:19 am62xx-evm containerd[429]: time="1970-01-01T00:00:19.645149550Z" level=info msg="loading plugin \"io.containerd.grpc.v1.containers\"..." type=io.containerd.grpc.v1
Jan 01 00:00:19 am62xx-evm weston[444]: [00:00:19.648] logind: TakeDevice on 226:1 failed.
Jan 01 00:00:19 am62xx-evm weston[444]: [00:00:19.648] logind: TakeDevice on /dev/dri/card1 failed, error=No such device
Jan 01 00:00:19 am62xx-evm weston[444]: [00:00:19.648] no drm device found
Jan 01 00:00:19 am62xx-evm weston[444]: [00:00:19.649] BUG: layer_list is not empty after shutdown. Calls to weston_layer_fini() are missing somwhere.
Jan 01 00:00:19 am62xx-evm weston[444]: [00:00:19.649] fatal: failed to create compositor backend
Jan 01 00:00:19 am62xx-evm weston[444]: Internal warning: debug scope 'drm-backend' has not been destroyed.
Jan 01 00:00:19 am62xx-evm containerd[429]: time="1970-01-01T00:00:19.656452775Z" level=info msg="loading plugin \"io.containerd.grpc.v1.content\"..." type=io.containerd.grpc.v1
Jan 01 00:00:19 am62xx-evm containerd[429]: time="1970-01-01T00:00:19.656978410Z" level=info msg="loading plugin \"io.containerd.grpc.v1.diff\"..." type=io.containerd.grpc.v1
Jan 01 00:00:19 am62xx-evm containerd[429]: time="1970-01-01T00:00:19.657403995Z" level=info msg="loading plugin \"io.containerd.grpc.v1.events\"..." type=io.containerd.grpc.v1
Jan 01 00:00:19 am62xx-evm containerd[429]: time="1970-01-01T00:00:19.657715555Z" level=info msg="loading plugin \"io.containerd.grpc.v1.healthcheck\"..." type=io.containerd.grpc.v1
Jan 01 00:00:19 am62xx-evm systemd[1]: weston.service: Main process exited, code=exited, status=1/FAILURE
Jan 01 00:00:19 am62xx-evm systemd[1]: weston.service: Failed with result 'exit-code'.
Jan 01 00:00:19 am62xx-evm systemd[1]: Failed to start Weston, a Wayland compositor, as a system service.
As you can see in the log excerpt above, the display is not there... I'm guessing maybe the firmware has not finished loading for the DSS by the time weston tries to start?
I have recreated this issue on the EVM by using the maxcpus=2 boot arg.