How to write configuration file for X11 – Layout section for selecting a screen

According to this output from /var/log/Xorg.0.log when I want to start X by writing

startx

Then the output shows.

X.Org X Server 1.21.1.11
X Protocol Version 11, Revision 0
[  1198.198] Current Operating System: Linux stm32-os 6.1.82 #1 PREEMPT Tue Sep 10 21:04:28 CEST 2024 armv7l
[  1198.199] Kernel command line: root=PARTUUID=e91c4e10-16e6-4c0e-bd0e-77becf4a3582 rootwait rw   console=ttySTM0,115200
[  1198.199] xorg-server 2:21.1.12-1ubuntu1 (For technical support please see http://www.ubuntu.com/support) 
[  1198.199] Current version of pixman: 0.42.2
[  1198.199]    Before reporting problems, check http://wiki.x.org
    to make sure that you have the latest version.
[  1198.199] Markers: (--) probed, (**) from config file, (==) default setting,
    (++) from command line, (!!) notice, (II) informational,
    (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
[  1198.200] (==) Log file: "/var/log/Xorg.0.log", Time: Fri Apr 19 14:44:17 2024
[  1198.202] (==) Using config directory: "/etc/X11/xorg.conf.d"
[  1198.202] (==) Using system config directory "/usr/share/X11/xorg.conf.d"
[  1198.204] (==) No Layout section.  Using the first Screen section.
[  1198.205] (**) |-->Screen "DefaultScreen" (0)
[  1198.205] (**) |   |-->Monitor "<default monitor>"
[  1198.206] (**) |   |-->Device "Mali FBDEV"
[  1198.206] (==) No monitor specified for screen "DefaultScreen".
    Using a default monitor configuration.
[  1198.206] (**) Allowing byte-swapped clients
[  1198.206] (==) Automatically adding devices
[  1198.206] (==) Automatically enabling devices
[  1198.207] (==) Automatically adding GPU devices
[  1198.207] (==) Automatically binding GPU devices
[  1198.207] (==) Max clients allowed: 256, resource mask: 0x1fffff
[  1198.207] (WW) The directory "/usr/share/fonts/X11/cyrillic" does not exist.
[  1198.207]    Entry deleted from font path.
[  1198.207] (WW) The directory "/usr/share/fonts/X11/100dpi/" does not exist.
[  1198.207]    Entry deleted from font path.
[  1198.207] (WW) The directory "/usr/share/fonts/X11/75dpi/" does not exist.
[  1198.207]    Entry deleted from font path.
[  1198.207] (WW) The directory "/usr/share/fonts/X11/100dpi" does not exist.
[  1198.207]    Entry deleted from font path.
[  1198.207] (WW) The directory "/usr/share/fonts/X11/75dpi" does not exist.
[  1198.207]    Entry deleted from font path.
[  1198.208] (==) FontPath set to:
    /usr/share/fonts/X11/misc,
    /usr/share/fonts/X11/Type1,
    built-ins
[  1198.208] (==) ModulePath set to "/usr/lib/xorg/modules"
[  1198.208] (II) The server relies on udev to provide the list of input devices.
    If no devices become available, reconfigure udev or disable AutoAddDevices.
[  1198.208] (II) Loader magic: 0x5a9008
[  1198.208] (II) Module ABI versions:
[  1198.208]    X.Org ANSI C Emulation: 0.4
[  1198.208]    X.Org Video Driver: 25.2
[  1198.208]    X.Org XInput driver : 24.4
[  1198.208]    X.Org Server Extension : 10.0
[  1198.213] (--) using VT number 2

[  1198.213] (II) systemd-logind: logind integration requires -keeptty and -keeptty was not provided, disabling logind integration
[  1198.219] (II) xfree86: Adding drm device (/dev/dri/card0)
[  1198.220] (II) Platform probe for /sys/devices/platform/soc/5a001000.display-controller/drm/card0
[  1198.221] (II) no primary bus or device found
[  1198.221]    falling back to /sys/devices/platform/soc/5a001000.display-controller/drm/card0
[  1198.221] (II) LoadModule: "glx"
[  1198.223] (II) Loading /usr/lib/xorg/modules/extensions/libglx.so
[  1198.232] (II) Module glx: vendor="X.Org Foundation"
[  1198.232]    compiled for 1.21.1.11, module version = 1.0.0
[  1198.232]    ABI class: X.Org Server Extension, version 10.0
[  1198.232] (II) LoadModule: "armsoc"
[  1198.233] (II) Loading /usr/lib/xorg/modules/drivers/armsoc_drv.so
[  1198.234] (II) Module armsoc: vendor="X.Org Foundation"
[  1198.234]    compiled for 1.21.1.3, module version = 1.4.1
[  1198.235]    Module class: X.Org Video Driver
[  1198.235]    ABI class: X.Org Video Driver, version 25.2
[  1198.235] (II) ARMSOC: Driver for ARM Mali compatible chipsets
[  1198.237] (WW) Falling back to old probe method for armsoc
[  1198.237] (II) No BusID or DriverName specified - opening /dev/dri/card0
[  1198.237] (II) Got BusID 5a001000.display-controller
[  1198.238] (II) Opened DRM
[  1198.238] (II)    DeviceName is [/dev/dri/card0]
[  1198.238] (II)    bus_id is [5a001000.display-controller]
[  1198.238] (II)    DriverName is [stm]
[  1198.238] (II)    version is [1.0.0]
[  1198.238] (II) Screen:0,  CRTC:-1
[  1198.238] (WW) VGA arbiter: cannot open kernel arbiter, no multi-card support
[  1198.239] (II) ARMSOC(0): Creating default Display subsection in Screen section
    "DefaultScreen" for depth/fbbpp 24/32
[  1198.239] (**) ARMSOC(0): Depth 24, (--) framebuffer bpp 32
[  1198.239] (==) ARMSOC(0): RGB weight 888
[  1198.239] (==) ARMSOC(0): Using gamma correction (1.0, 1.0, 1.0)
[  1198.239] (==) ARMSOC(0): Default visual is TrueColor
[  1198.239] (II) No BusID or DriverName specified - opening /dev/dri/card0
[  1198.239] (II) Got BusID 5a001000.display-controller
[  1198.239] (II) Opened DRM
[  1198.239] (II)    DeviceName is [/dev/dri/card0]
[  1198.240] (II)    bus_id is [5a001000.display-controller]
[  1198.240] (II)    DriverName is [stm]
[  1198.240] (II)    version is [1.0.0]
[  1198.240] (II) UnloadModule: "armsoc"
[  1198.240] (EE) Screen(s) found, but none have a usable configuration.
[  1198.241] (EE) Fatal server error:
[  1198.241] (EE) no screens found(EE) 
[  1198.241] (EE) Please consult the The X.Org Foundation support at http://wiki.x.org for help. 
[  1198.241] (EE) Please also check the log file at "/var/log/Xorg.0.log" for additional information.
[  1198.241] (EE) 
[  1198.243] (EE) Server terminated with error (1). Closing log file.

The problem here is that it cannot find the layout section. So, instead, it using a default screen, which seems not to work because it has a usable configuration.

[  1198.202] (==) Using config directory: "/etc/X11/xorg.conf.d"
[  1198.202] (==) Using system config directory "/usr/share/X11/xorg.conf.d"
[  1198.204] (==) No Layout section.  Using the first Screen section.
[  1198.205] (**) |-->Screen "DefaultScreen" (0)
[  1198.205] (**) |   |-->Monitor "<default monitor>"
[  1198.206] (**) |   |-->Device "Mali FBDEV"
[  1198.206] (==) No monitor specified for screen "DefaultScreen". Using a default monitor configuration.

Question:

How can I create a configuration file, that my linux kernel or what ever going to read that file, when I’m writing startx to get the graphical screen loaded up?

  1. How should the file look like?
  2. Where should it be placed?
  3. What should the file contain?

Edit:

This occurs on Ubuntu 24.04 LTS armhf