How to mirror serial output ttyS0 to the HDMI /dev/dri/card0?
2
votes
1
answer
79
views
When I starting my single board computer, I can face the output from the
UART
, or even called /dev/ttyS0
. I want to mirror everything to my HDMI
port which is placed on /dev/dri/card0
.
How can I achieve that? Here I'm running the command drm_info
. I'm using Ubuntu 24.04 LTS.
>> drm_info
[?2004l
Node: /dev/dri/card0
├───Driver: stm (STMicroelectronics SoC DRM) version 1.0.0 (20170330)
│ ├───DRM_CLIENT_CAP_STEREO_3D supported
│ ├───DRM_CLIENT_CAP_UNIVERSAL_PLANES supported
│ ├───DRM_CLIENT_CAP_ATOMIC supported
│ ├───DRM_CLIENT_CAP_ASPECT_RATIO supported
│ ├───DRM_CLIENT_CAP_WRITEBACK_CONNECTORS supported
│ ├───DRM_CAP_DUMB_BUFFER = 1
│ ├───DRM_CAP_VBLANK_HIGH_CRTC = 1
│ ├───DRM_CAP_DUMB_PREFERRED_DEPTH = 0
│ ├───DRM_CAP_DUMB_PREFER_SHADOW = 0
│ ├───DRM_CAP_PRIME = 3
│ ├───DRM_CAP_TIMESTAMP_MONOTONIC = 1
│ ├───DRM_CAP_ASYNC_PAGE_FLIP = 0
│ ├───DRM_CAP_CURSOR_WIDTH = 64
│ ├───DRM_CAP_CURSOR_HEIGHT = 64
│ ├───DRM_CAP_ADDFB2_MODIFIERS = 1
│ ├───DRM_CAP_PAGE_FLIP_TARGET = 0
│ ├───DRM_CAP_CRTC_IN_VBLANK_EVENT = 1
│ ├───DRM_CAP_SYNCOBJ = 0
│ └───DRM_CAP_SYNCOBJ_TIMELINE = 0
├───Device: platform st,stm32-ltdc
│ └───Available nodes: primary
├───Framebuffer size
│ ├───Width: [0, 2048]
│ └───Height: [0, 2048]
├───Connectors
│ └───Connector 0
│ ├───Object ID: 32
│ ├───Type: HDMI-A
│ ├───Status: connected
│ ├───Physical size: 1210x680 mm
│ ├───Subpixel: unknown
│ ├───Encoders: {0}
│ ├───Modes
│ │ ├───1920x1080@30.00 driver phsync pvsync 16:9
│ │ ├───1920x1080@25.00 driver phsync pvsync 16:9
│ │ ├───1920x1080@24.00 driver phsync pvsync 16:9
│ │ ├───1280x720@60.00 driver phsync pvsync
│ │ ├───1280x720@60.00 driver phsync pvsync 16:9
│ │ ├───1280x720@50.00 driver phsync pvsync 16:9
│ │ ├───720x576@50.00 driver nhsync nvsync 16:9
│ │ ├───720x576@50.00 driver nhsync nvsync 4:3
│ │ ├───720x480@59.94 driver nhsync nvsync 16:9
│ │ └───720x480@59.94 driver nhsync nvsync 4:3
│ └───Properties
│ ├───"EDID" (immutable): blob = 44
│ ├───"DPMS": enum {On, Standby, Suspend, Off} = On
│ ├───"link-status": enum {Good, Bad} = Good
│ ├───"non-desktop" (immutable): range [0, 1] = 0
│ ├───"TILE" (immutable): blob = 0
│ ├───"CRTC_ID" (atomic): object CRTC = 0
│ └───"dithering": enum {Off, On} = Off
├───Encoders
│ └───Encoder 0
│ ├───Object ID: 31
│ ├───Type: DPI
│ ├───CRTCS: {0}
│ └───Clones: {0}
├───CRTCs
│ └───CRTC 0
│ ├───Object ID: 38
│ ├───Legacy info
│ │ └───Gamma size: 256
│ └───Properties
│ ├───"ACTIVE" (atomic): range [0, 1] = 0
│ ├───"MODE_ID" (atomic): blob = 0
│ ├───"OUT_FENCE_PTR" (atomic): range [0, UINT64_MAX] = 0
│ ├───"VRR_ENABLED": range [0, 1] = 0
│ ├───"GAMMA_LUT": blob = 0
│ └───"GAMMA_LUT_SIZE" (immutable): range [0, UINT32_MAX] = 256
└───Planes
├───Plane 0
│ ├───Object ID: 34
│ ├───CRTCs: {0}
│ ├───Legacy info
│ │ ├───FB ID: 0
│ │ └───Formats:
│ │ ├───ARGB8888 (0x34325241)
│ │ ├───XRGB8888 (0x34325258)
│ │ ├───RGB888 (0x34324752)
│ │ ├───RGB565 (0x36314752)
│ │ ├───ARGB1555 (0x35315241)
│ │ ├───XRGB1555 (0x35315258)
│ │ ├───ARGB4444 (0x32315241)
│ │ ├───XRGB4444 (0x32315258)
│ │ └───C8 (0x20203843)
│ └───Properties
│ ├───"type" (immutable): enum {Overlay, Primary, Cursor} = Primary
│ ├───"FB_ID" (atomic): object framebuffer = 0
│ ├───"IN_FENCE_FD" (atomic): srange [-1, INT32_MAX] = -1
│ ├───"CRTC_ID" (atomic): object CRTC = 0
│ ├───"CRTC_X" (atomic): srange [INT32_MIN, INT32_MAX] = 0
│ ├───"CRTC_Y" (atomic): srange [INT32_MIN, INT32_MAX] = 0
│ ├───"CRTC_W" (atomic): range [0, INT32_MAX] = 0
│ ├───"CRTC_H" (atomic): range [0, INT32_MAX] = 0
│ ├───"SRC_X" (atomic): range [0, UINT32_MAX] = 0
│ ├───"SRC_Y" (atomic): range [0, UINT32_MAX] = 0
│ ├───"SRC_W" (atomic): range [0, UINT32_MAX] = 0
│ ├───"SRC_H" (atomic): range [0, UINT32_MAX] = 0
│ ├───"IN_FORMATS" (immutable): blob = 35
│ │ └───DRM_FORMAT_MOD_LINEAR (0x0)
│ │ ├───ARGB8888 (0x34325241)
│ │ ├───XRGB8888 (0x34325258)
│ │ ├───RGB888 (0x34324752)
│ │ ├───RGB565 (0x36314752)
│ │ ├───ARGB1555 (0x35315241)
│ │ ├───XRGB1555 (0x35315258)
│ │ ├───ARGB4444 (0x32315241)
│ │ ├───XRGB4444 (0x32315258)
│ │ └───C8 (0x20203843)
│ ├───"alpha": range [0, UINT16_MAX] = 65535
│ └───"zpos" (immutable): range [0, 0] = 0
└───Plane 1
├───Object ID: 39
├───CRTCs: {0}
├───Legacy info
│ ├───FB ID: 0
│ └───Formats:
│ ├───ARGB8888 (0x34325241)
│ ├───RGB888 (0x34324752)
│ ├───RGB565 (0x36314752)
│ ├───ARGB1555 (0x35315241)
│ ├───ARGB4444 (0x32315241)
│ └───C8 (0x20203843)
└───Properties
├───"type" (immutable): enum {Overlay, Primary, Cursor} = Overlay
├───"FB_ID" (atomic): object framebuffer = 0
├───"IN_FENCE_FD" (atomic): srange [-1, INT32_MAX] = -1
├───"CRTC_ID" (atomic): object CRTC = 0
├───"CRTC_X" (atomic): srange [INT32_MIN, INT32_MAX] = 0
├───"CRTC_Y" (atomic): srange [INT32_MIN, INT32_MAX] = 0
├───"CRTC_W" (atomic): range [0, INT32_MAX] = 0
├───"CRTC_H" (atomic): range [0, INT32_MAX] = 0
├───"SRC_X" (atomic): range [0, UINT32_MAX] = 0
├───"SRC_Y" (atomic): range [0, UINT32_MAX] = 0
├───"SRC_W" (atomic): range [0, UINT32_MAX] = 0
├───"SRC_H" (atomic): range [0, UINT32_MAX] = 0
├───"IN_FORMATS" (immutable): blob = 40
│ └───DRM_FORMAT_MOD_LINEAR (0x0)
│ ├───ARGB8888 (0x34325241)
│ ├───RGB888 (0x34324752)
│ ├───RGB565 (0x36314752)
│ ├───ARGB1555 (0x35315241)
│ ├───ARGB4444 (0x32315241)
│ └───C8 (0x20203843)
├───"alpha": range [0, UINT16_MAX] = 65535
└───"zpos" (immutable): range [1, 1] = 1
[?2004hroot@stm32-os:~#
Asked by euraad
(219 rep)
Sep 30, 2024, 09:32 PM
Last activity: Oct 1, 2024, 05:46 AM
Last activity: Oct 1, 2024, 05:46 AM